web-dev-qa-db-ja.com

デバイスでアプリがクラッシュしますが、シミュレーターiOSで動作します

アプリは私が開発したものではありませんが、いくつかの機能を追加する必要があります。コードをコンパイルすると、シミュレーターで起動が追加されますが、実際のデバイスではすぐにクラッシュします(didFinishLaunchingWithOptionsは呼び出されません)。 Xcodeはエラーを表示しません。問題はポッドとフレームワークにあると思いますが、そうであるかどうかを確認する方法がわかりません。ポッドを再インストールし、プロジェクトでフレームワークの依存関係を再作成しましたが、アプリがクラッシュしません。私はXcodeからこの情報しか持っていません enter image description hereenter image description here

この情報はどのように役立ちますか?助けていただければ幸いです。

UPD1:スタックトレース enter image description here

UPD2:iOS9およびiOS10でアプリがクラッシュするため、NSCameraUsageDescriptionは問題ではありません

8
Ossir

問題はポッドフレームワークにありました。ポッドによって生成されたスクリプトは、一部のフレームワークを正しく埋め込むことができません。 「[CP] EmbedPods Frameworks」スクリプトを削除し、「EmbeddedBinaries」にフレームワークを自分で追加しました。そして問題は解決しました。

4
Ossir

同じ問題があり、シミュレータでは動作しましたがデバイスでは動作しませんでした。この素晴らしいが最小限のスタックトレース「abort_with_payload」を取得しました

Plistに「NSMicrophoneUsageDescription」キーが必要だったことがわかりました

6
PhilippeAuriach

abort_with_payloadエラーが発生した場合、Info.plistにプライバシーキーのUsageDescriptionがない可能性があるため、不足しているものがないか、Appleカメラ、写真の新しいUsageDescriptionが変更/追加されました) 、使用している場所など。

3
Varun Naharia

Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Termination Description: DYLD, Library not loaded: @rpath/libswiftCoreGraphics.dylib | Referenced from: /var/containers/Bundle/Application/7208AD66-5D56-4973-88A9-8D22D7E541DB/myapp.app/myapp | Reason: no suitable image found. Did find: | /private/var/containers/Bundle/Application/7208AD66-5D56-4973-88A9-8D22D7E541DB/myapp.app/Frameworks/libswiftCoreGraphics.dylib: code signing blocked mmap() '/private/var/containers/Bundle/Application/7208AD66-5D56-4973-88A9-8D22D7E541DB/myapp.app/Frameworks/libswiftCoreGraphics.dylib'

'abort_with_payload'でクラッシュすると、コンソールから上記の出力も取得しました。最も重要なメッセージは「コード署名がブロックされたmmap()」であると思います。これは、問題の原因がコード署名である可能性があることを示しています。

私の解決策は、Apple WWDR証明書を削除し、Appleからダウンロードすることでした。証明書を信頼する場合は、「システムのデフォルトを使用する」オプションを使用してください。

enter image description here

次に、XCodeを終了して再度開き、プロジェクトをクリーンアップして再構築しました。わたしにはできる。

1
Jiang Wang