XCodeでアプリを起動すると、クラッシュしますがエラーは発生しません
アプリはこのスレッドで停止しています
問題に関する詳細情報を入手するにはどうすればよいですか?
回答:
カスタムフレームワークを使用している場合は、Xcodeプロジェクトの[ターゲット] / [一般]タブにある[埋め込みバイナリ]セクションに配置する必要があります。
私にとってはシンプルClean
でRebuild
整理されています。それが役に立てば幸い。
埋め込まれたバイナリアセットリストにフレームワークを追加すると、これが修正されました。組み込みフレームワークとしてのXcodeGUIでの最終的な形での外部フレームワークのセットアップは次のようになります(Xcode 9.2、個人的には視覚的なパンくずリストの方が好きです;-)):
Appleは意図的にランタイムをクラッシュさせて、iOS開発でApple以外のフレームワークを単純にリンクされたフレームワークとして使用できないという問題を開発者に何らかの形で伝えましたか?ビルドエラーとして表示されたほうがいいと思います...「移動してください」というボタンが表示されます。
Embedded Binariesを使用すると、エンドユーザーがアプリとは別にフレームワークを追加する必要がなくなります(またはインストーラーを使用する必要があります)。iPhone(iOS)の場合、それは不可能ですが、macOSでは可能ですが、すぐに混乱する可能性があります。
エンドユーザーにとっては、アプリをドラッグアンドドロップしてmacOSにインストールする方がはるかに便利です。ここで、埋め込みがメリットになります。埋め込みにより、フレームワークの外部バージョンを管理するという従来の「DLLの競合」も回避されます。(ディスク容量は安いです、私の顧客の時間は貴重です)。
ついに解決!
私にとってうまくいったのは、フレームワークを「必須」ではなく「オプション」にすることでした。
お役に立てば幸いです。
1)実行を続行して、「MyFramework.framework」などのメッセージがデバッガーに表示されないかどうかを確認します。その場合は、次の説明に従ってください:OS Xフレームワークライブラリがロードされていません: '画像が見つかり ません'私にとってこの回答は機能しました:https://stackoverflow.com/a/44796734/4060763
2)「埋め込みバイナリ」セクションからバイナリを追加したことを確認します。
3)ビルドフェーズセクションでフレームワークの署名が有効になっていることを確認します。
4)埋め込まれたフレームワークがシンボリックリンクでないことを確認してください。
5)「バイナリとライブラリのリンク」フェーズでは、リンクされたフレームワークを必須ではなくオプションにすることができます。これにより、iOSは起動時にこれらのフレームワークを検索しないようになります。しかしとにかく、これらのフレームワークを使用するにはエラーを修正する必要があります!
6)すべてのinfo.plistエントリが適切かどうかを確認します。私の場合、iOS用のMacinfo.plistファイルを使用していました。iOSプロジェクトに存在しないxibファイルを探していました。
7)そのような変更があった場合は、クリーンアップしてビルドします。これらのファイルがすでに存在する場合、xcodeはこれらのファイルをコピー/変更しないため、これは必須です。
8)iPadからアプリを削除してからインストールします。7と同じ理由。
Guard Malloc
、正確には。クラッシュが修正される理由を知っている人はいますか?
「問題に関する詳細情報を入手するにはどうすればよいですか?」という元の質問に答えるために、このAppleフォーラムスレッドは非常に簡単なヒントを提供します。クラッシュするアプリをXCodeの外部で実行する(つまり、XCodeから停止してから、手動で実行する)。端末)。これにより、何が起こったかについての詳細を含むクラッシュログが生成されます。次に、XCodeウィンドウメニュー/デバイスとシミュレーター->デバイスログの表示からこのログを確認できます。
Xcode11.3とmacOSCatalina10.15.2で同じ問題に直面しました。アプリはデバイスで正常に実行されていましたが、シミュレーターでは実行されていませんでした。シミュレーターに問題があるようです。回避策は、スレッドサニタイザーを無効にすることです。
参照:https://forums.developer.apple.com/message/397978#397978
お役に立てれば。
同じ署名のエラーが発生し(私のプロジェクトはObj-Cにありました)、適切なフレームワークとのリンクを忘れていたことがわかりました。エラーの検出につながったデバッグログのエラーメッセージは次のとおりです。
dyld:シンボルが見つかりません:_OBJC_CLASS _ $ _ SFSafariViewController
私の特定のエラーについては、ターゲット->ビルドフェーズ->「バイナリとライブラリのリンク」にSafariServices.frameworkを追加することで問題が解決しました。おそらく同じ特定のエラーと解決策はありませんが、デバッグログで手がかりを確認すると便利です。
Xcodeをv10.2.1に更新し、swiftをv5.0に更新した後、この状況が発生しました。carthage+ RxSwiftを使用している場合、新しいRxSwiftはを使用しRxRelay.framework
ます。/ Carthage / Buildディレクトリに移動して、そのフレームワークを見つけ、プロジェクトにドラークする必要があります。あなたにもそれを追加することを忘れないでくださいcarthage copy-frameworks
スクリプトに。
$(SRCROOT)/Carthage/Build/iOS/RxRelay.framework
おかげで解決されました:https: //stackoverflow.com/a/52550148/2493555
私はそれを解決する正しい方法を見つけます。
AppleWWDRCA.cer
システムのデフォルトモードが設定されていることを確認してください。そうすれば、機能します。
plistに権限の指定がないことで解決された同様の問題がありました(奇妙なことですが..)
AVCaptureDeviceを使おうとしましたが、起動時にクラッシュしました(私のアプリは非常に最小限でした)
追加-
私のためにそれPrivacy - Camera Usage Description
をinfo.plist
解決しました。
このエラーが発生する長いリストに追加するために、MacOS11.0に設定された展開ターゲットでMacOS10.15.5を実行しているMacにXCode12.2Beta2を展開しているときに発生します。この状況は、サイドバーの追加でMacCatalystチュートリアルアプリを試していたために発生しました。ターゲットをMacOS10.15.5に切り替えると、エラーが解消され、アプリが正しく起動しました。
ターゲットバージョンよりも新しいiOSバージョンからのみアクセス可能なシステムフレームワークを使用している場合に発生することがあります。このリンクされたフレームワークをオプションとしてマークすることで修正される可能性があります。
たとえば、iOS 11を対象とし、iOS 12のオートフィル機能にAuthenticationServicesを使用しているプロジェクトは、iOS11で説明されている方法でクラッシュします。
実際、11.3.1で問題が発生し、前述のようにスレッドサニタイザーはすでにオフになっています。私の場合の問題は、そのようなアプリケーションフォルダに異なるxCodeバージョンがあったことでした
/Applications/xcode11.3.1/Xcode.app
/Applications/xcode11.3/Xcode.app
/Applications/xcode10.1/Xcode.app
そして
/Applications/Xcode.app - was 11.2
ビルドシステムがデフォルトで/Applications/Xcode.appを参照することを理解するのに2日かかります。したがって、11.3.1を/Applications/Xcode.appに持ち込むと、最終的に問題が解決します。
私は実際のデバイス(iPhone SE)で実行しているときにのみこの問題を経験しました。シミュレータプロジェクトでは、期待どおりに機能しました。
私はこのスレッドとここからすべての修正を試しました:OS Xフレームワークライブラリがロードされていません: '画像が見つかりません' それらのどれも私のために働いていませんでした。
私にとっては、iPhoneを再起動した後に問題が解決しました(原文のまま!)。
やった:
そしてそれはついに機能します。:)
他のすべての解決策が失敗した場合は、それを試すことを忘れないでください。