最近、Xcode 10にアップグレードし、4.2に切り替えるためにアプリを更新するプロセスを開始しました。1日かそこらのサードパーティフレームワークを再構築し、さまざまな問題に回避策を追加した後、新しいシミュレーターでアプリを実行できました。
ただし、個人用の電話(iOS 12.0 GMを実行)で実行しようとしたときに、タイトルに記載されているようにアプリをインストールするときにエラーが発生しました。
lot of alreadyansweredquestions SOおよびインターネットに関するこのトピックに関する質問ですが、これらのいずれも機能させることができませんでした。
約1日半の間、私をブロックしているので、これをどのように軽減できるかについての洞察が誰かにあるのではないかと思っていました。
ここに、私がこれまでに行った、うまくいかなかった手順を示します(おそらく、将来的に他の人にも役立つでしょう!)。
code sign on copy
がチェックされていることを確認する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つずつ削除してみて、ここで更新します。
最終更新最終的にそれを把握しました。解決策はかなりニッチであることが判明しました(下記参照)が、この質問がこの問題に関連するすべての解決策をまとめたものであることを願っています(笑)。
理解した:
私はcarthageでこの問題に遭遇しました: https://github.com/Carthage/Carthage/issues/2472 。
明らかに、この行は、フレームワークをコピーするときにカルタゴがそれ自体を傷つけ、エラーを引き起こす原因です。問題を修正するために最新バージョンのカルタゴをダウンロードし、EXPANDED_CODE_SIGN_IDENTITY=''
行とすべてが働いた。時間の無駄。
これもあなたのケースであるかどうかはわかりませんが、最近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=()
# ...
Xcode 10.0(10A255)でも同じ問題が発生しました。
無効な署名-封印されたリソースが見つからないか無効です。パス[xxxx.app/xxxxx]のファイルは適切に署名されていません。
xcode 9.4.1(9F2000)は常に問題なくアプリを送信できました。
サポートファイル(txt、json、rtf、html、ttfなど)をすべて削除してから、再度追加することで問題を修正できました。
ファイルなしでビルドを送信することをお勧めします。これが機能する場合、ステップごとに再度追加できます
私の場合、無効なiPhoneXSプロビジョニングとバンドル識別子の競合の両方がありました。私のプロジェクトはXcodeのアップグレード後に試みられ、新しい電話が接続されたと言いました。上記の手順を実行した後(完全に再作成されたキーチェーンとプロファイル、削除された永続フォルダーなど)。
ターゲットプロジェクトの設定:
バンドル識別子の競合のみが、プロビジョニングされたデバイスへのデバイスの通常の自動エントリをブロックしたと確信しています。
プロジェクトターゲットのビルドフェーズ/カルタゴで、カルタゴコマンドを次のように配置します。
EXPANDED_CODE_SIGN_IDENTITY = ''カルタゴコピーフレームワーク
これは一時的な解決策であり、環境変数の取得の問題は解決されています。