Xcodeを最新バージョンに更新しましたが、プロジェクトをコンパイルしようとすると、「Invalid bitcode signature」というエラーが発生します。プロジェクトのビットコードが無効になります。どうすれば修正できますか?ビットコードを正しく署名するには、何を変更すればよいですか?
私のポッドファイル:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target 'MyProjectName' do
pod 'Realm'
pod 'CorePlot'
pod 'GoogleMaps'
end
私はすでにチェックしました、それですべてが順調です。
このエラーは発生しましたが、iOS 10.3 iPad用にビルドした場合にのみ発生しました(iOS 10.3 iPhoneとiOS 11.0 iPad、およびすべてのiOS 10.3および11.0シミュレーターで作業しているにもかかわらず)。苦痛を伴う消去プロセス(および新しいプロジェクトのゼロからの作成)を通じて、Cocoapodに障害がなく、コード署名設定、AppExtension、テスト、「アクティブアーキテクチャのみのビルド」ではないことがわかりました設定、または「ビットコード」という用語に関連するビルド設定。
私のセットアップでは、メインのSwift/iOS Xcodeプロジェクト内にC++ Xcodeプロジェクトがネストされていました。 iOSでの使用を特に意図したものではないため、「iOS Deployment target」は設定されていませんでした(「デフォルト」のままにしておきました)。明示的に10.3に設定すると、問題なく機能しました。
ネストされたC++アプリのプロジェクト設定(iOS展開ターゲットを、サポートする最も低いiOSバージョンに設定します):
ネストされたC++アプリのターゲット設定(参照用):
この種の問題は、新しい静的ライブラリプロジェクトをワークスペースにリンクしたときに発生しました。それを解決するために、Build Active Architecture OnlyとライブラリのBitcode設定の両方をNOに設定しようとしましたが、運はありません。次に、Xcodeがすべての新しいプロジェクトに最新の値を設定したため、ライブラリのDeployment Targetが11.0に設定されていたことに気付きました。設定を5.0に修正すると、問題は解決しました。
ポッドを使用している場合は、すべてのライブラリのバージョンを確認してください。一部のライブラリは新しいバージョンでサポートされていない可能性があります。そのライブラリのポッドファイルを更新する必要があります。
私の場合、展開ターゲットよりも低いiOSバージョンのデバイス用にビルドしようとしていました。
私の場合、アーキテクチャごとに異なるファイルを持つサードパーティの静的ライブラリを使用していたために問題が発生しました
無効なアーキテクチャのバイナリを削除することで問題を修正しました。代わりに、サードパーティの静的ライブラリ用にマルチアーチ FATバイナリ を追加しました
希望は助けます
私の問題は「モジュール」の使用にあることがわかりました。
モジュールをオフにしました(いくつかのヘッダーファイルを更新する必要がありました)が、それで私の問題は解決しました。
この問題を解決するために、ほとんどの回答では、Xcodeワークスペース/プロジェクトをクリーンアップし、Xcodeを閉じ、Derived Data
フォルダー(デフォルトでプロジェクトのルートディレクトリに保持されます)を削除し、最後に再度開くという回避策を推奨していますあなたのプロジェクト。
ただし、上記の手順は動作しない場合があります。これは、プロジェクト構造にエラーがあることを示すヒントです。
プロジェクトのビットコード中間表現がiOS 9.0でリリースされたとき、プロジェクト全体依存関係を含むがビットコードの使用に完全に同意するかどうかの条件でリリースされました。私の経験から、すべてのPods
と含まれるLibraries/Frameworks
を処理し、すべてが同じ設定を使用するようにすることが重要です。 はいまたはいいえ。デフォルトでは、この選択はYesです。
単一の依存関係が目的のビットコード設定と一致しない場合、このエラーがスローされる可能性があります。
依存関係とプロジェクト全体の健全性をチェックする場合、both ProjectとTargetの設定にUse Bitcode
設定があることに注意することが重要です。設定。
私の場合、プロジェクトに含まれるウィジェットがビットコードエラーの原因でした。
これからポッドファイルを変更しました。
target "App" do
pod 'A'
pod 'B'
end
target "App Widget" do
pod 'A'
end
これに:
target "App" do
pod 'A'
pod 'B'
target "App Widget" do
pod 'A'
end
end
私の場合、解決策はC++ライブラリを削除することでした。
このソリューションは私のために機能します。まず、ターミナルコマンドpod deintegrateを使用してすべてのポッドを削除してから、ターミナルコマンドpod installを使用してポッドを再インストールします。
私の場合、Cordova Projectを使用しています。 Xcodeでビルドすると同じ問題が発生し、IOSプラットフォームを削除して追加することで解決しました。
cordova platform remove ios
cordova platform add ios
ココアポッドを使用している場合は、「ポッドアップデート」を実行します
私は静的ライブラリを追加していました。すべてのアーキテクチャを含む同じライブラリのファットバイナリを作成し、プロジェクトに含めました。これで問題が解決しました
これは、ARMのみのためにビルドされたフレームワークを含む場合、シミュレーターのためにビルドするときにも発生する可能性があります。