web-dev-qa-db-ja.com

dyld:ライブラリがロードされていません:@ rpath / libswiftCore.dylib / Image not found

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)

Screenshot added

72
Stig Omdal

次の行をターゲットのRunpath Search Pathsに追加してみてください。

@executable_path/Frameworks

your_target-> Build Settings-> Linking-> Runpath Search Paths

87
Amro Shafie

これと同じ問題がありました。最終的に、フレームワークを次の場所に追加しました。

  1. General > Embedded Binaries
  2. General > Linked Frameworks and Libraries
  3. Build Phases > Link Binaries with Libraries

組み込みバイナリが私にとっての鍵のようです。

44
zoruc

私にとっては、@executable_path/Frameworksproject Runpath Search Pathsに追加するのに役立ちます。ターゲットではありません。 enter image description here your_project->ビルド設定->リンク-> Runpath検索パス

29

他の解決策はどれも私を助けませんでしたが、XcodeのDerived Dataディレクトリを削除することですべてが修正されました。

14
ex3ndr

そうそう。解決に何時間も費やしている問題に直面しました。ビルド設定>ビルドオプションで「常に埋め込むSwift標準ライブラリ」を「はい」に設定してみてください。

dyld: Library not loaded: @rpath/libswiftCore.dylib

(後でプロジェクトをshift + cmd + Kすることを忘れないでください)

12
user2077469

Obj-C組み込みフレームワークをSwiftオブジェクトで更新した後、Obj-Cアプリを動作させるには、「埋め込みコンテンツにSwiftコードを含む」を「はい」に切り替える必要がありました。

11
Justin Domnitz

フレームワークターゲット(アプリターゲットではない)で、[ビルド設定]> [ビルドオプション]> [標準Swiftライブラリを常に埋め込む]を[はい]に移動します。

これで問題は解決しました!

8
Islam Magdy

コマンドラインプロジェクトでこのエラーが発生しました(Xcode 10.2およびmacOS 10.14.3)

解決策は、macOS 10.14.4に更新することでした

Swiftコマンドラインプロジェクトは、Swift 5コマンドラインツールパッケージのランタイムサポートをインストールしない限り、macOS 10.14.3以前では実行されません。そのパッケージがないと、Swiftコマンドラインプロジェクトが起動時にクラッシュし、「dyld:Library not loaded」エラーが発生します。 (46824656)

から Xcode 10.2のSwift 5リリースノート

7
Santa Claus

Xcode Derived Dataディレクトリからすべて削除して修正しました:

〜/ Library/Developer/Xcode/DerivedData

幸運を祈ります!

5
Mihail Salari

同じ問題に直面しました。正しいコード署名IDを設定すると、問題が解決しました(ビルド設定->コード署名ID)。

Apple 技術的な質問「iOS 8のリリース後に作成されたすべてのエンタープライズおよび標準のiOS開発者証明書には、Swift言語アプリを許可する適切な場所に新しいチームIDフィールドがあります。走る」

5
Saikiran K

私の場合、この問題は、Swiftフレームワーク(AirWatch SDK)を使用しているObjective-cプロジェクトで発生しています。

解決策:以下の手順に従って、Xcode 9.3および11.0.1 iOSでこの問題を解決しました。

  1. Swiftフレームワークをプロジェクトにドラッグアンドドロップし、プロジェクトのデフォルトのFrameworkフォルダーに移動します。
  2. 次に、スクリーンショットに示すように、それらを埋め込みバイナリとして追加します。
  3. スクリーンショットに示すように、フレームワークのステータスをRequiredからOptionalに変更します。 (ビルドフェーズ>ライブラリとバイナリをリンク)

enter image description here

  1. Always Embed Swift St​​andard LibrariestoYesビルド設定で。

  2. サブパスを設定し、ビルドフェーズで追加したフレームワークのFrameworkとして宛先を選択します>スクリーンショットに示すように、フレームワークを埋め込みます。 enter image description here

それが誰かを助けることを願っています。

4
Aashish1aug

私は同じエラーメッセージを持っていました、それが私がそれを解決した方法です:

この問題は、Xcodeによって自動的に生成された証明書に起因しています。これらの証明書は、developer.Apple.comから生成された証明書を取り消す必要がありました。

ソリューションは次のとおりです。-developer.Apple.com/certificatesに移動します->証明書を失効しますOR Xcodeに移動しますdeveloperper.Apple.comの指示に従って新しい証明書を生成します-私のプロジェクトのXcodeで:コード署名IDに移動し、生成された証明書で両方のデバッグ行に署名します-両方のリリース行が「iOS Developer」に設定されますデバイスでビルドして実行する

3
Etienne

このエラーメッセージは、現在使用されているSwiftバージョンとは異なるフレームワークビルドを使用している場合にも発生する可能性があります。 Xcodeをアップグレードする場合。

3
Paul Popiel

@Saikiranの回答は有効でした。

私の証明書はiOS 8がリリースされる前に生成されました。私はすべての証明書を失効させ、すべてのプロビジョニングプロファイルを再生成し、問題をすぐに解決しました。

@Saikiranの答えに投票するほどの評判はありませんが、それは間違いなく問題の解決に役立ちました。

3
BumMo Koo

私にとってはオプションを設定して働いた

ALWAYS_EMBED_Swift_STANDARD_LIBRARIES

[プロジェクト]で[はい]-> [ビルド設定]-> [ビルドオプション]

(CocoapodsによるNamirialフレームワーク)

2
Daniele Ceglia

上記のソリューションはどれもうまくいきませんでした。キーチェーンのiPhone開発者証明書の信頼設定を変更しました。 Always Trustである必要があります。 システムのデフォルトを使用に変更します。キーチェーンの証明書をダブルクリックしてオプション画面を開きます this blogからの発見

2
Vinayak Parmar

私は同じエラーメッセージを持っていました、これは私がそれを解決した方法です:これはバンドル識別子を変更したために起こっています

1
Bhadresh Sonani

この問題は、objective-cカスタムフレームワークにSwiftファイルを含めることにより発生したようです。また、関連しているかどうかは不明ですが、私のアプリのターゲットもObjective-Cで構築されました。また、デバッグ中のシミュレーターへのビルド。リリースまたはアーカイブのビルドをまだ確認していません。
さらに、プロジェクトターゲットのRunpath Search設定は、「@ executable_path/Frameworks」および「@ loader_path/Frameworks」に設定されたフレームワークのターゲット設定内で、「@ executable_path/Frameworks」に設定されました。

カスタムフレームワークの再構築とアプリターゲットへの再アタッチ、派生データフォルダーおよびその他のいくつかの提案のクリアを試行した後、最終的には、カスタムフレームワークプロジェクト(アプリターゲットではない)のProjectターゲット内のビルド設定を変更しました: "常に埋め込むSwift標準ライブラリ」から「YES」。アプリのターゲットの設定が何に設定されているかは問題ではないようです。シミュレータをリセットして再構築することでこれを確認しました。これはDaniele Cegliaの回答に似ていますが、コメントを追加することができず、より明確にする必要がありました。

1
Randoramma

Swiftファイルを含め始めたObjective-Cプロジェクトでも同様の問題がありました。

私の場合、メインプロジェクトに2つのターゲットを作成し、Swift空のファイルを追加しました。このファイルは、ブリッジングヘッダーファイルといくつかの構成を作成しますが、1つのターゲットのメンバーとしてのみマークしました。最初のターゲットは正常に動作しますが、2番目のターゲットは正常に動作せず、ビルド設定の違いがこの設定であることに気付きました。

実行パス検索パス-> $(inherited)および@executable_path/Frameworks

また、Objective-Cブリッジングヘッダーを前に作成したファイルに参照する必要もありました。

Objective-Cブリッジングヘッダー-> pathTo/Target-Bridging-Header.h

この2つの設定を追加すると、2番目のターゲットが正常に機能し始めました。

1
Diego Carrera

ビルドフォルダーをクリーニングしてみてください。同じ問題が発生していましたが、この方法で解決しました。製品->ビルドフォルダーのクリーニング

1
FarouK

私にとってプロジェクトをきれいにすると問題は解決します!

1
Navid Einackchi

Runpath Search Pathsを既に正しく設定していましたが、まだ機能しませんでした。 @Justin Domnitzの答えは、私を正しい方向に導きました。ターゲットのビルド設定で「Always Embed Swift St​​andard Libraries」をYesに設定すると、私にとってはうまくいきました。

1
jkestner

私もそのような問題を手に入れました。他のすべての方法は私を助けることができませんでしたので、私は愚かな方法で新しいプロジェクトを作成し、ポッドを最初からインストールし、それが正しく機能していることを確認した後、すべてのクラスファイルとストーリーボードファイルをコピーしました!それが最後の方法だと思う、あなたを助けるかもしれない

1
TheLastSummer

私にとっては、シミュレーターを再起動するとこの問題は解決しました。

0

_CodeSignature署名フレームワークディレクトリがある場合は、*。frameworkを確認してください。 _CodeSignatureフォルダーがない場合は、ビルドフェーズに移動し、+をクリックして新しいコピーファイルフェーズを追加してコピーファイルを作成します。その後、*。frameworkを参照し、Code Sign On Copyを選択します

0
曾繁荣

以前、iPod touch iOS 9.3でこの問題が発生しました。そして、この post で言及されているすべてのメソッドを使用しましたが、どれも機能しませんでした。プロジェクトの設定を確認しました。そして、他のリンクフラグで、-Wl,-sectcreate,__RESTRICT,__restrict,/dev/nullを追加したことがわかりました。

このフラグは、ジェイルブレイクされた電話でのdyld挿入を防ぎます。このフラグを削除すると、アプリを再度起動できます。なぜ機能したのかわかりません。 iPhone se iOS 10では、この行を削除する必要がないためです。ただし、iPod touch iOS 9.3では動作しました。あなたが私のように同じ状況にあるかどうかを確認してください。

0
Dan Lee

上記のケースを試したところ、問題は解決しなかったようです。プロジェクトにgitとcocoapodsを使用していますが、新しいコミットを行うとすぐにエラーがなくなりました。

0
Oliver S