web-dev-qa-db-ja.com

アプリのインストールに失敗しました。コード署名が見つかりません

最近、Xcode 10にアップグレードし、4.2に切り替えるためにアプリを更新するプロセスを開始しました。1日かそこらのサードパーティフレームワークを再構築し、さまざまな問題に回避策を追加した後、新しいシミュレーターでアプリを実行できました。

ただし、個人用の電話(iOS 12.0 GMを実行)で実行しようとしたときに、タイトルに記載されているようにアプリをインストールするときにエラーが発生しました。

lot of alreadyansweredquestions SOおよびインターネットに関するこのトピックに関する質問ですが、これらのいずれも機能させることができませんでした。

約1日半の間、私をブロックしているので、これをどのように軽減できるかについての洞察が誰かにあるのではないかと思っていました。

ここに、私がこれまでに行った、うまくいかなかった手順を示します(おそらく、将来的に他の人にも役立つでしょう!)。

  1. 派生データの消去
  2. コンピューター上のすべてのプロビジョニングプロファイルを削除して再ダウンロードする
  3. ビルドディレクトリのクリーニング(cmd + k&cmd + shft + k)
  4. 電話から元のアプリを削除する
  5. Xcodeの再起動(バージョン10.0(10A254a)[GM])
  6. Macを再起動する(macOS High Sierraを実行しているMacbook Pro 2018)
  7. デバイスの再起動(iOS 12.0 GMを実行しているiPhone X)
  8. 一度にすべてを含む、上記の多くのさまざまな組み合わせ
  9. Developer.Apple.comでアプリのプロビジョニングプロファイルを再生成します(手動署名を使用します)
  10. Developer.Apple.comでアプリのプロビジョニングプロファイルを削除および再作成する
  11. ティムクックにヤギを殺した
  12. 署名証明書がプロビジョニングプロファイルと一致することを確認する
  13. コンピューターから古いバージョンのXcodeを削除し、コマンドラインツールがxcode 10.0 gmバージョンにあることを確認する
  14. Xcode 10.0 GMの削除と再インストール
  15. コピーされたすべてのフレームワークでcode sign on copyがチェックされていることを確認する
  16. Swift 4.2コンパイラーを使用して、Carthage経由ですべてのフレームワークを再構築します(シミュレーターですべて機能することを思い出してください)。
  17. SDKSettings.plistでコード署名が必須であることをYESに設定します
  18. コンピューター上の古い署名証明書をすべて削除した
  19. Developer.Apple.comで証明書を削除および再作成しました
  20. デバイスを削除してdeveloper.Apple.comに再追加しました
  21. コード署名を手動から自動に変更しました
  22. 署名証明書がDeveloperではなくDistributionであることを確認しました

どんな助けも大歓迎です:)

Update:新しいマシンでゼロから再ダウンロードして再構築しようとすると、同じ問題が発生します。興味深いことに、アプリをうまくアーカイブして検証できます。

また、同じバンドルIDで空のプロジェクトに署名してみましたが、うまくいきました。そのため、問題はサードパーティのフレームワークまたはXcode 9.4からの移行中に有効になった奇妙な設定のいずれかにあります。これをコンパイルできるようになるまで、サードパーティのフレームワークを1つずつ削除し始めます。

Update 2:まだ運がありません。ほとんどのフレームワークを消去し、何も消去しようとしませんでした。以下にデバイスログを示します。Skipping a profile because of error 0xe8008012が何か関係があるのか​​疑問に思います。

https://Gist.github.com/joshuawright11/6889ce1a0872262df77f97d63830baa5

Update 3:だから、ビルド段階でcarthage copy-frameworksスクリプトをコメントアウトすることでインストールすることができました(そしてクリーニング/ナッキング派生そうした後のデータ)。もちろん、これは、これらのフレームワークがないためブート時にクラッシュすることを意味しますが、問題はカルタゴまたはリンクされたカルタゴフレームワークのいずれかにあることを意味します。署名証明書、プロビジョニングプロファイル、またはコードベースではありません。これらのフレームワークを1つずつ削除してみて、ここで更新します。

最終更新最終的にそれを把握しました。解決策はかなりニッチであることが判明しました(下記参照)が、この質問がこの問題に関連するすべての解決策をまとめたものであることを願っています(笑)。

20
Josh

理解した:

私はcarthageでこの問題に遭遇しました: https://github.com/Carthage/Carthage/issues/2472

明らかに、この行は、フレームワークをコピーするときにカルタゴがそれ自体を傷つけ、エラーを引き起こす原因です。問題を修正するために最新バージョンのカルタゴをダウンロードし、EXPANDED_CODE_SIGN_IDENTITY=''行とすべてが働いた。時間の無駄。

8
Josh

これもあなたのケースであるかどうかはわかりませんが、最近iPhoneでReact Nativeアプリを実行しようとしたときにこのエラーが発生しました。統合後、 Lottie library for = React Native

この問題は、ビルドフェーズで追加されたこの実行スクリプトによって発生しました。 http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/ 。スクリプトは"input file (.../Lottie.framework/Lottie) must be a fat file when the -extract option is specifiedを与えるLottie.frameworkからアーキテクチャを抽出できませんでした

これを修正するために、スクリプトに検証を追加して、非脂肪ファイルをスキップしました。

# ...
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

if lipo -info "$FRAMEWORK_EXECUTABLE_PATH" | grep -iq "Non-fat file"
then
echo "This is a non-fat file, skipping"
continue
fi

EXTRACTED_ARCHS=()
# ...
5
mihai1990

Xcode 10.0(10A255)でも同じ問題が発生しました。

無効な署名-封印されたリソースが見つからないか無効です。パス[xxxx.app/xxxxx]のファイルは適切に署名されていません。

xcode 9.4.1(9F2000)は常に問題なくアプリを送信できました。

サポートファイル(txt、json、rtf、html、ttfなど)をすべて削除してから、再度追加することで問題を修正できました。

ファイルなしでビルドを送信することをお勧めします。これが機能する場合、ステップごとに再度追加できます

3
user10389784

私の場合、無効なiPhoneXSプロビジョニングとバンドル識別子の競合の両方がありました。私のプロジェクトはXcodeのアップグレード後に試みられ、新しい電話が接続されたと言いました。上記の手順を実行した後(完全に再作成されたキーチェーンとプロファイル、削除された永続フォルダーなど)。

ターゲットプロジェクトの設定:

  1. バンドルIDをcom.proj.appから他のものに設定します(例:com.proj.app2)
  2. 製品名をProductからProduct123に変更します

バンドル識別子の競合のみが、プロビジョニングされたデバイスへのデバイスの通常の自動エントリをブロックしたと確信しています。

  1. 識別子を通常に戻す(必要な場合)
1
wcribbs

プロジェクトターゲットのビルドフェーズ/カルタゴで、カルタゴコマンドを次のように配置します。

EXPANDED_CODE_SIGN_IDENTITY = ''カルタゴコピーフレームワーク

これは一時的な解決策であり、環境変数の取得の問題は解決されています。

0
user23