XcodeからiOSデバイスにアプリを実行していますが、iOSデバイスでこの画面と黒い画面が表示されます。
コンソールテキスト:
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/mobile/Containers/Bundle/Application/10DB2FE8-EF09-4857-B4AC-0DB2E4419D6F/App-Name.app/App-Name
Reason: image not found
(lldb)
次の行をターゲットのRunpath Search Pathsに追加してみてください。
@executable_path/Frameworks
your_target-> Build Settings-> Linking-> Runpath Search Paths
これと同じ問題がありました。最終的に、フレームワークを次の場所に追加しました。
General > Embedded Binaries
General > Linked Frameworks and Libraries
Build Phases > Link Binaries with Libraries
組み込みバイナリが私にとっての鍵のようです。
私にとっては、@executable_path/Frameworks
をproject Runpath Search Pathsに追加するのに役立ちます。ターゲットではありません。 your_project->ビルド設定->リンク-> Runpath検索パス
他の解決策はどれも私を助けませんでしたが、XcodeのDerived Dataディレクトリを削除することですべてが修正されました。
Obj-C組み込みフレームワークをSwiftオブジェクトで更新した後、Obj-Cアプリを動作させるには、「埋め込みコンテンツにSwiftコードを含む」を「はい」に切り替える必要がありました。
フレームワークターゲット(アプリターゲットではない)で、[ビルド設定]> [ビルドオプション]> [標準Swiftライブラリを常に埋め込む]を[はい]に移動します。
これで問題は解決しました!
コマンドラインプロジェクトでこのエラーが発生しました(Xcode 10.2およびmacOS 10.14.3)
解決策は、macOS 10.14.4に更新することでした
Swiftコマンドラインプロジェクトは、Swift 5コマンドラインツールパッケージのランタイムサポートをインストールしない限り、macOS 10.14.3以前では実行されません。そのパッケージがないと、Swiftコマンドラインプロジェクトが起動時にクラッシュし、「dyld:Library not loaded」エラーが発生します。 (46824656)
〜/ Library/Developer/Xcode/DerivedData
幸運を祈ります!
同じ問題に直面しました。正しいコード署名IDを設定すると、問題が解決しました(ビルド設定->コード署名ID)。
Apple 技術的な質問「iOS 8のリリース後に作成されたすべてのエンタープライズおよび標準のiOS開発者証明書には、Swift言語アプリを許可する適切な場所に新しいチームIDフィールドがあります。走る」
私の場合、この問題は、Swiftフレームワーク(AirWatch SDK)を使用しているObjective-cプロジェクトで発生しています。
解決策:以下の手順に従って、Xcode 9.3および11.0.1 iOSでこの問題を解決しました。
Always Embed Swift Standard LibrariestoYesビルド設定で。
サブパスを設定し、ビルドフェーズで追加したフレームワークのFrameworkとして宛先を選択します>スクリーンショットに示すように、フレームワークを埋め込みます。
それが誰かを助けることを願っています。
私は同じエラーメッセージを持っていました、それが私がそれを解決した方法です:
この問題は、Xcodeによって自動的に生成された証明書に起因しています。これらの証明書は、developer.Apple.comから生成された証明書を取り消す必要がありました。
ソリューションは次のとおりです。-developer.Apple.com/certificatesに移動します->証明書を失効しますOR Xcodeに移動しますdeveloperper.Apple.comの指示に従って新しい証明書を生成します-私のプロジェクトのXcodeで:コード署名IDに移動し、生成された証明書で両方のデバッグ行に署名します-両方のリリース行が「iOS Developer」に設定されますデバイスでビルドして実行する
このエラーメッセージは、現在使用されているSwiftバージョンとは異なるフレームワークビルドを使用している場合にも発生する可能性があります。 Xcodeをアップグレードする場合。
@Saikiranの回答は有効でした。
私の証明書はiOS 8がリリースされる前に生成されました。私はすべての証明書を失効させ、すべてのプロビジョニングプロファイルを再生成し、問題をすぐに解決しました。
@Saikiranの答えに投票するほどの評判はありませんが、それは間違いなく問題の解決に役立ちました。
私にとってはオプションを設定して働いた
ALWAYS_EMBED_Swift_STANDARD_LIBRARIES
[プロジェクト]で[はい]-> [ビルド設定]-> [ビルドオプション]
(CocoapodsによるNamirialフレームワーク)
上記のソリューションはどれもうまくいきませんでした。キーチェーンのiPhone開発者証明書の信頼設定を変更しました。 Always Trustである必要があります。 システムのデフォルトを使用に変更します。キーチェーンの証明書をダブルクリックしてオプション画面を開きます this blogからの発見
私は同じエラーメッセージを持っていました、これは私がそれを解決した方法です:これはバンドル識別子を変更したために起こっています
この問題は、objective-cカスタムフレームワークにSwiftファイルを含めることにより発生したようです。また、関連しているかどうかは不明ですが、私のアプリのターゲットもObjective-Cで構築されました。また、デバッグ中のシミュレーターへのビルド。リリースまたはアーカイブのビルドをまだ確認していません。
さらに、プロジェクトターゲットのRunpath Search設定は、「@ executable_path/Frameworks」および「@ loader_path/Frameworks」に設定されたフレームワークのターゲット設定内で、「@ executable_path/Frameworks」に設定されました。
カスタムフレームワークの再構築とアプリターゲットへの再アタッチ、派生データフォルダーおよびその他のいくつかの提案のクリアを試行した後、最終的には、カスタムフレームワークプロジェクト(アプリターゲットではない)のProjectターゲット内のビルド設定を変更しました: "常に埋め込むSwift標準ライブラリ」から「YES」。アプリのターゲットの設定が何に設定されているかは問題ではないようです。シミュレータをリセットして再構築することでこれを確認しました。これはDaniele Cegliaの回答に似ていますが、コメントを追加することができず、より明確にする必要がありました。
Swiftファイルを含め始めたObjective-Cプロジェクトでも同様の問題がありました。
私の場合、メインプロジェクトに2つのターゲットを作成し、Swift空のファイルを追加しました。このファイルは、ブリッジングヘッダーファイルといくつかの構成を作成しますが、1つのターゲットのメンバーとしてのみマークしました。最初のターゲットは正常に動作しますが、2番目のターゲットは正常に動作せず、ビルド設定の違いがこの設定であることに気付きました。
実行パス検索パス->
$(inherited)
および@executable_path/Frameworks
また、Objective-Cブリッジングヘッダーを前に作成したファイルに参照する必要もありました。
Objective-Cブリッジングヘッダー->
pathTo/Target-Bridging-Header.h
この2つの設定を追加すると、2番目のターゲットが正常に機能し始めました。
ビルドフォルダーをクリーニングしてみてください。同じ問題が発生していましたが、この方法で解決しました。製品->ビルドフォルダーのクリーニング
私にとってプロジェクトをきれいにすると問題は解決します!
Runpath Search Pathsを既に正しく設定していましたが、まだ機能しませんでした。 @Justin Domnitzの答えは、私を正しい方向に導きました。ターゲットのビルド設定で「Always Embed Swift Standard Libraries」をYesに設定すると、私にとってはうまくいきました。
私もそのような問題を手に入れました。他のすべての方法は私を助けることができませんでしたので、私は愚かな方法で新しいプロジェクトを作成し、ポッドを最初からインストールし、それが正しく機能していることを確認した後、すべてのクラスファイルとストーリーボードファイルをコピーしました!それが最後の方法だと思う、あなたを助けるかもしれない
私にとっては、シミュレーターを再起動するとこの問題は解決しました。
_CodeSignature署名フレームワークディレクトリがある場合は、*。frameworkを確認してください。 _CodeSignatureフォルダーがない場合は、ビルドフェーズに移動し、+をクリックして新しいコピーファイルフェーズを追加してコピーファイルを作成します。その後、*。frameworkを参照し、Code Sign On Copyを選択します
以前、iPod touch iOS 9.3でこの問題が発生しました。そして、この post で言及されているすべてのメソッドを使用しましたが、どれも機能しませんでした。プロジェクトの設定を確認しました。そして、他のリンクフラグで、-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null
を追加したことがわかりました。
このフラグは、ジェイルブレイクされた電話でのdyld挿入を防ぎます。このフラグを削除すると、アプリを再度起動できます。なぜ機能したのかわかりません。 iPhone se iOS 10では、この行を削除する必要がないためです。ただし、iPod touch iOS 9.3では動作しました。あなたが私のように同じ状況にあるかどうかを確認してください。
上記のケースを試したところ、問題は解決しなかったようです。プロジェクトにgitとcocoapodsを使用していますが、新しいコミットを行うとすぐにエラーがなくなりました。