XcodeGen + Xcode12 error: Cycle inside Appと戦った

この記事は約4分で読めます。

この記事はXcode12 beta6でビルドした際に発生したエラーを解消したお話です。


XcodeGenに対応したアプリビルド時に、

Xcode11上では発生していなかったエラーがXcode12 beta6で発生する様になっていました。

error: Cycle inside App; building could produce unreliable results.


Showing Recent Messages
Build system information
error: Cycle inside App; building could produce unreliable results.
Cycle details:
→ Target 'App': CodeSign /Users/hiroya/Library/Developer/Xcode/DerivedData/App-fkcbhdapvfgquoegyvqjcaklmjzp/Build/Products/Debug-iphonesimulator/Example.app/Frameworks/Common.framework
○ That command depends on command in Target 'App': script phase “[CP] Embed Pods Frameworks”
○ Target 'App': CodeSign /Users/hiroya/Library/Developer/Xcode/DerivedData/App-fkcbhdapvfgquoegyvqjcaklmjzp/Build/Products/Debug-iphonesimulator/Example.app/Frameworks/Common.framework

こちらの対処法を残しておきます。

対処方法

case: Build Phase の順番

`[CP] Embed Pods Frameworks` の位置を

`[CP] Check Pods Manifest.lock` のすぐ下に移動。

Build Phases
  Dependencies
  [CP] Check Pods Manifest.lock
  [CP] Embed Pods Frameworks        <<< Moved
画像載せようと思ったんですが、NDAに引っかかりそうなので控えました。

この方法だとXcodeGenの管理から外れた操作になってしまい、

チームに共有できないのでこの環境では良くない方法ですね。(XcodeGenを使用してないならこれでもいいかも🤔)

FrameworkのSignを外す

良くみるとFrameworkにCodeSignしようとしている様なので、

XcodeGenのproject.ymlでdependenciesに指定するtargetのcodesignをオフにする。

target: Domain
    codeSign: false
    embed: true

上記を設定したら、xcodegenを実行して、

アプリのメインターゲットの Frameworks, Libraries and Embeded Content

にリストされるframeworkが全て Embed Without Signing

になってればOKです。

画像載せようと思ったんですが、NDAに引っかかりそうなので控えました。

この方法なら、チーム共有できるので問題なさそうです😌

個人アプリをリリースしました。良ければインストールしてみてください🙏

‎Scannable - Simply Recognizer
‎シンプル操作で画像からテキスト解析! 教科書や手紙、レシートをデジタルデータにして保存できます。 日本語・英語に対応しています。

タイトルとURLをコピーしました