web-dev-qa-db-ja.com

Xcodeのビットコード署名の失敗

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

私はすでにチェックしました、それですべてが順調です。

11

あなたが私と同じ状況を持っているかどうかはわかりません。この問題は、iPhoneデバイスでテストしようとしたときにのみ発生します。 Build Active Architecture Onlyのデバッグ構成がNOに設定されていることがわかります。 YESに設定した後、iPhoneでテストできます。 enter image description here

32
Vincent

このエラーは発生しましたが、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バージョンに設定します):

Nested C++ app's project settings

ネストされたC++アプリのターゲット設定(参照用):

Nested C++ app's target settings

8
Jamie Birch

この種の問題は、新しい静的ライブラリプロジェクトをワークスペースにリンクしたときに発生しました。それを解決するために、Build Active Architecture OnlyとライブラリのBitcode設定の両方をNOに設定しようとしましたが、運はありません。次に、Xcodeがすべての新しいプロジェクトに最新の値を設定したため、ライブラリのDeployment Targetが11.0に設定されていたことに気付きました。設定を5.0に修正すると、問題は解決しました。

3

ポッドを使用している場合は、すべてのライブラリのバージョンを確認してください。一部のライブラリは新しいバージョンでサポートされていない可能性があります。そのライブラリのポッドファイルを更新する必要があります。

3
Rajeev Singh

私の場合、展開ターゲットよりも低いiOSバージョンのデバイス用にビルドしようとしていました。

3
awph

私の場合、アーキテクチャごとに異なるファイルを持つサードパーティの静的ライブラリを使用していたために問題が発生しました

無効なアーキテクチャのバイナリを削除することで問題を修正しました。代わりに、サードパーティの静的ライブラリ用にマルチアーチ FATバイナリ を追加しました

希望は助けます

2
accfews

私の問題は「モジュール」の使用にあることがわかりました。

モジュールをオフにしました(いくつかのヘッダーファイルを更新する必要がありました)が、それで私の問題は解決しました。

設定でモジュールを有効にする

1
LowAmmo

この問題を解決するために、ほとんどの回答では、Xcodeワークスペース/プロジェクトをクリーンアップし、Xcodeを閉じ、Derived Dataフォルダー(デフォルトでプロジェクトのルートディレクトリに保持されます)を削除し、最後に再度開くという回避策を推奨していますあなたのプロジェクト。

ただし、上記の手順は動作しない場合があります。これは、プロジェクト構造にエラーがあることを示すヒントです。

プロジェクトのビットコード中間表現がiOS 9.0でリリースされたとき、プロジェクト全体依存関係を含むがビットコードの使用に完全に同意するかどうかの条件でリリースされました。私の経験から、すべてのPodsと含まれるLibraries/Frameworksを処理し、すべてが同じ設定を使用するようにすることが重要です。 はいまたはいいえ。デフォルトでは、この選択はYesです。

単一の依存関係が目的のビットコード設定と一致しない場合、このエラーがスローされる可能性があります。

依存関係とプロジェクト全体の健全性をチェックする場合、both ProjectとTargetの設定にUse Bitcode設定があることに注意することが重要です。設定。

1
Mapsy

私の場合、プロジェクトに含まれるウィジェットがビットコードエラーの原因でした。

これからポッドファイルを変更しました。

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
1
Micah Benn

私の場合、解決策はC++ライブラリを削除することでした。

1
Oded Harth

このソリューションは私のために機能します。まず、ターミナルコマンドpod deintegrateを使用してすべてのポッドを削除してから、ターミナルコマンドpod installを使用してポッドを再インストールします。

0
Ashish Kanani

ターゲット->ビルド設定->ビルドアクティブアーキテクチャのみ

デバッグ-> YESリリース->NOからYES

私はアプリのアーカイブに関してのみ同じ問題に直面しています。

誰が理由を教えてくれますか?すべての開発者に教えることができます。それは素晴らしいです。

enter image description here

0
jiexishede

私の場合、Cordova Projectを使用しています。 Xcodeでビルドすると同じ問題が発生し、IOSプラットフォームを削除して追加することで解決しました。

cordova platform remove ios

cordova platform add ios

ココアポッドを使用している場合は、「ポッドアップデート」を実行します

0
Kartik 123

私は静的ライブラリを追加していました。すべてのアーキテクチャを含む同じライブラリのファットバイナリを作成し、プロジェクトに含めました。これで問題が解決しました

0
sonali

これは、ARMのみのためにビルドされたフレームワークを含む場合、シミュレーターのためにビルドするときにも発生する可能性があります。

0
ion