Carthageでライブラリを追加するときにXcodeのTargetのGeneralタブでframeworkを追加する作業が必要ですが、Xcode11からこのframeworkの追加部分が若干変わっていました。
このように、Xcode10まではLinked Frameworks and Libraries
のセクションのStatus
欄にRequired
とOptional
を設定していたものが、Frameworks, Libraries, and Embedded Content
という旧Linked Frameworks and Libraries
とEmbedded Binaries
とマージしたものになってEmbed
欄にDo Not Embed
, Embed & Sign
, Embed Without Signing
を設定するように変わっていました。(あと関係ないですが、Xcode11では名前順に自動でソートされるようになっていました)
Carthageのドキュメントを読むとDo Not Embed
を選ぶように書いてあります。
Open your application targets’ General settings tab. For Xcode 11.0 and higher, in the "Frameworks, Libraries, and Embedded Content" section, drag and drop each framework you want to use from the Carthage/Build folder on disk. Then, in the "Embed" section, select "Do Not Embed" from the pulldown menu for each item added. For Xcode 10.x and lower, in the "Linked Frameworks and Libraries" section, drag and drop each framework you want to use from the Carthage/Build folder on disk.
ここが気をつけるポイントなのですが、デフォルトではEmbed & Sign
になってしまうので、必ずDo Not Embed
に変更しなければなりません。
Embed & Sign
にしていても普通に手元でビルドしてる分には特に影響がないのですが、ipaファイルを作成する際のビルド時に問題が発生しますのでご注意ください。
Error Domain=IDEDistributionPipelineErrorDomain Code=0 "Code signing "XXX.framework" failed." UserInfo={NSLocalizedDescription=Code signing "XXX.framework" failed., NSLocalizedRecoverySuggestion=View distribution logs for more information.}