web-dev-qa-db-ja.com

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

Swiftクラスを古いXcodeプロジェクトに追加すると、このエラーが発生します。

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

プロジェクトを再度実行するにはどうすればよいですか?

199
Anton Holmquist

私にとって、以前のソリューションはどれも機能しませんでした。ビルド設定に、ALWAYS_EMBED_Swift_STANDARD_LIBRARIES(以前のバージョンでは「埋め込みコンテンツにSwiftコードが含まれる」)というフラグがあり、YESに設定する必要があることを発見しました。デフォルトではNOでした!

148
mukaissi

このエラーは、Objective-Cプロジェクトの変換中に何かがうまくいかず、Swiftの使用を開始した場合に発生する可能性があります。問題は、リンカーのビルド設定が適切に構成されていないため、手動で行う必要があることです。 Runpath Search Pathsビルド設定を探して、次のように設定します。

$(inherited) @executable_path/Frameworks

enter image description here

編集:何か他のものが原因でこれらのエラーが最近発生していることも追加する必要があります-AppleはSwift自体に変更を加え、おそらくXcode 6.1または6.1.1。唯一の解決策は、Xcodeを終了し、キーチェーンアクセスで証明書を破棄し、メンバーセンターに移動して、すべての証明書とプロファイル(ストア内のアプリのプロファイルを除く-削除できません)を削除してから開始することですゼロからの証明書要求プロセス全体。

91
matt

この質問がなぜ投票されているのか本当に分かりません。既存のプロジェクトでSwiftを最初に使用しようとしたときにもこの問題がありました。 Xcodeの再起動でもこれが修正されました。

79
Adam Fox

私はこの問題について長い間探しました。この問題の原因はいくつかあります。

Objectice CプロジェクトでSwiftコード/ライブラリを使用しているときに直面している場合は、ソリューション1-2-3を試してください。

新しいSwiftプロジェクトでこの問題に直面している場合、ソリューション4が最適です。

解決策1:

Xcodeを再起動してから、コンピューターとiPhoneを再起動します

解決策2:

プロジェクトのビルド設定に移動し、Always Embed Swift Standard Libraries(以前はEmbedded Content Contains Swift Code)フラグをYESに設定します

解決策3:

プロジェクトのビルド設定に移動し、@executable_path/FrameworksRunpath Search Pathsオプションに追加します

解決策4:

上記のいずれも機能しない場合は、これが必要です。 Appleは、 AirSignの投稿

InHouse証明書で

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

彼らはOUという名前の新しいフィールドを追加しました

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

そのため、証明書とプロビジョニングを再作成する必要があります

54
accfews

私の場合、カスタムフレームワークをインポートしようとしていて、同様のエラーが発生していました。リンクされたフレームワークとライブラリではなく、埋め込みバイナリにフレームワークをインポートする必要がありました。

埋め込みバイナリは、プロジェクトの設定->->一般の下にあります

40
c1pherB1t

Adhoc/Enterpriseディストリビューションビルドでこの問題が発生した開発者の場合、

開発ポータルから実動証明書を作成してから、配布プロファイルを再生成します。両方をダウンロードしてMacにインストールします。 Xcodeビルド設定で正しいプロファイルを選択したことを確認し、アプリを再ビルドします。

ソース: https://devforums.Apple.com/message/1022908#1022908

16
easthelper

ソリューション5:

私の場合、accfewsの回答で言及されたすべてのソリューションは非常に役立ちましたが、どれも機能していません。プロジェクトのターゲットの「一般」セクションにある「埋め込みバイナリ」セクションにSwiftライブラリを追加して、問題を解決しました。おそらく、これはワークスペースにSwiftフレームワークを含めたという事実によるのでしょうか?今何をコンパイルしても! Swiftの準備をしてください、私はここにいます!

14
Christophe

Xcodeを簡単に再起動することで問題が解決しました。

10
Anton Holmquist

私にとって、この問題は、私のApple Worldwide Developer Relations Certification Authorityが無効だったためです。

ここからダウンロードしてください: https://developer.Apple.com/certificationauthority/AppleWWDRCA.cer

キーチェーンアクセスにドラッグアンドドロップし、プロジェクトをクリーンアップして実行します。

5
Eric

Altを押したままにして、[製品]-> [ビルドフォルダーのクリーン...]に移動します。

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

3
stakahop

これが発生する理由はたくさんあります。楽しい週末を過ごして、これを引き起こす別の問題(コード署名の順序)を見つけたので、考えられるすべての解決策をまとめる要約回答を作成したかったのです。

  1. Add埋め込みコンテンツにはSwift Codeがプロジェクトに含まれます。アプリに以下が含まれる場合、このフラグを設定する必要があります。 Swiftコード。
  2. クリーンプロジェクトProject> Cleanに加えて、DerivedDataおよびBuildディレクトリも削除できます。 DerivedDataの場所については、Preferencesを参照してください。 Buildはプロジェクトフォルダーにある必要があります。
  3. EnsureRunpath Search Pathsには@executable_path/Frameworksが含まれます。
  4. 証明書のOU(Organization Unit)フィールドにAppleチームIDが含まれていることを確認してください Appleがこれを追加します。既存の配布証明書を取り消して、新しいプロファイルを作成し、ダウンロードし、KeyChainにインストールし、すべてのプロビジョニングプロファイルを再生成し、それらをダウンロードして再構築します。
  5. Xcode restart。すべてが基本的に良好であるが、Xcodeがまだそこに到達していない場合。

それは簡単なことです。独自のコマンドラインビルドを実行している場合は、アップロードする独自の.ipaファイルを作成している可能性があります。その場合、次のことを確認する必要があります。

  1. SwiftSupport/iphoneosのSwiftファイルのバージョンがContents/YourApp.app/Frameworksのバージョンと同じであることを確認してください Swiftはバージョン間でまだバイナリ互換ではないため、これらのバージョンは、アプリのビルドに使用したバージョンです。これらのライブラリは/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneosにあります。
  2. ライブラリとフレームワークに署名するfirstライブラリとフレームワークファイル(.appフォルダー内のcodesignの下)をFrameworksしてから、.appツリー全体に署名する必要があります。 .appツリーは、entitlements.plistで署名する必要がありますが、フレームワークはnotで署名する必要があります。

Swift 3.0がリリースされ、アプリにSwiftをバンドルする必要がなくなったら、この問題はすべて解決することを願っています。

3
jlyonsmith

上記のすべての回答を試しましたが、何も機能しませんでした。

Yosemiteにアップデートした後、ようやく機能しました

3
Prabu

Swiftソースファイルの追加を開始したObj-Cプロジェクトがありました。以下は私のために問題を修正しました:

  1. リンク:RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
  2. Swiftコンパイラ-コード生成:EMBEDDED CONTENT CONTAINS Swift = YES

テンプレートXcode 6.3から新しいプロジェクトを作成し、プロジェクト設定を古い元のプロジェクトと比較しました。

3
pinzoni

アドホック(またはエンタープライズ)モバイルプロビジョニングと実稼働証明書を使用してこの問題が発生しました。開発証明書とmobileprovisionに切り替えて問題を解決しました。

2
MacTeo

埋め込みバイナリを介して3つのフレームワークを追加すると、リンクされたフレームワークとライブラリにも追加されます。 Linked Frameworks and Librariesの3つのエントリを削除すると、問題が解決します。

Xcodeを再起動したり、Macを再起動したりするような魔法の方法はうまくいきません。

2
Arbipher

フレームワークを「リンクされたフレームワークとライブラリ」ではなく「埋め込みバイナリ」として追加-問題を修正しました。

また、埋め込みコンテンツにSwift Codeフラグが含まれるように設定します。

2
Naveen Shan

私のプロジェクトは、いくつかのObjective-Cクラスを持つSwiftプロジェクトです。古いinHouse(エンタープライズ)証明書で署名した場合、同じ問題が発生しました。

次の手順でこれを修正しました。

  1. 新しい証明書とモバイルプロビジョニングを作成して使用します。
    (参照 AIRSIGNのブログ
  2. Runpath Search Pathsビルド設定を$(inherited) @executable_path/Frameworksに設定します。
    (参照 マットの答え
2
jqgsninimo

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

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

2
Saikiran K

ソリューション6:

この場合、エンタープライズ配布証明書は取り消されていました。新しい証明書を生成し、プロビジョニングプロファイルを更新すると、問題が修正されました。

(このエラーにはさまざまな原因があるようです。これが誰かの助けになることを願っています。)

2
picciano

私もこの問題を抱えていましたが、それはlibswiftXCTest.dylibを見つけられなかっただけです。

解決策は、XCTest.framework内のTestsターゲットにBuild Phases/Link Binary with Libraryを追加することでした。メインターゲットをビルドしようとしても、このエラーが発生していました。

1
Lord Zsolt

通常、ビルドフェーズの「ファイルのコピー」セグメントにこのライブラリを追加すると、このエラーは表示されなくなります。

1
raphael_mav

Appleや新しい証明書など、Webで見つかったすべてのソリューションを試しました。成功なし。

6か月試してからxcodeを実行できる唯一の方法は、Macbookで新しいアカウントを作成することでした。

1
Eldervaz Vaz

そして、上記のすべてがあなたを助けず、あなたが本当に欲求不満になった場合...すべての中で最高のトリックを試してください:Cleanそして、ちょうどClean Build Folderも確認してください。 :)それが誰かを助けることを願っています!

1
Georg

OS X(ヨセミテ)の最新バージョンへのアップグレード

数時間の試行錯誤の後、この問題の解決に至りました。 -もちろんこれがあなたの場合にあてはまる場合

Mac OS XをMavericksからYosemiteにアップグレードするまで、私は同じ問題を抱えていました。 -それは私の問題を修正しました、あなたの問題も修正することを望みます

1
Actively Lazy

これらの解決策のどれも、私にとって一貫して機能していないようでした。実行が数回成功するたびに、再び失敗します。 「埋め込みコンテンツにSwiftコードが含まれています」フラグが常にYESに設定されていました。

Xcodeを6.3互換に設定したことがわかりました。 3.2互換に戻すことで解決しました:

1
brandonscript

同じ問題が発生しました。私の解決策は、すべてのpod宣言をtarget句内に移動することです。

から:

pod 'SomePod1'
pod 'SomePod2'
pod 'SomePod3'
target 'MyAwesomeApp', :exclusive => true do

end

に:

target 'MyAwesomeApp', :exclusive => true do
    pod 'SomePod1'
    pod 'SomePod2'
    pod 'SomePod3'
end

私の推測では、ポッド宣言がターゲット宣言の外側にある場合、CocoaPods(0.39.0)は間違ったxcconfigを使用する可能性があります。

Pods.debug.xcconfig(X

Pods-MyAwesomeApp.debug.xcconfig(O

0
Hai Feng Kao

プロジェクトに SCLAlertView podを追加し、後で削除しました。ビューコントローラーからimport SCLAlertViewを削除しませんでした。理想的には、コンパイル時エラーが発生するはずですが、dyld: Library not loaded: @rpath/SCLAlertView.frameworkに言及する実行時エラーが発生しました。ビューコントローラーからimport SCLAlertViewを削除してビルドしましたが、エラーは発生しませんでした。だから私の場合、フレームワークが見つからなかったライブラリをimportしようとしていました。このような参照を削除すると、問題が解決します。

0
Deepak Thakur

私の場合は、「Cmd + Shift + K」を使用してから「Cmd + B」を実行するだけです

0
Shakeel Ahmed

最近、このエラーが再び発生し始めました。過去2つの回答で解決しましたが、今回は提案された回答がどれもうまくいきませんでした。私はエラーが言ったことに気づいた:

 Reason: no suitable image found.  Did find:
/private/var/mobile/Containers/Bundle/Application/8D8E5347-940A-4724-ACFE-33DF4C4DCB37/your.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/8D8E5347-940A-4724-ACFE-33DF4C4DCB37/your.app/Frameworks/libswiftCore.dylib'

そこで、デバイスからアプリを削除してみたところ、再びビルドして実行することができました。

Xcode 10.2(Swift 5)にアップデートした後、この問題に遭遇しました。 2つのオプションを示す次のAppleリンクを見つけました。 https://support.Apple.com/kb/DL1998?locale=en_US

私の場合、MacOSを10.14.4に更新しました(OSにはSwiftライブラリが含まれています)。それ以外の場合、古いOSの場合は「ダウンロードSwift 5コマンドラインツールのランタイムサポート」。

0
anorskdev

https://forums.developer.Apple.com/thread/21292 を参照

この解決策は私のために働いた:

Xcodebuildおよびxcrun PackageApplicationを介してコマンドラインでアプリをビルドし、エンタープライズプロファイルでアプリに署名すると、私の側で発生しました。 CIビルドサーバーでは、証明書はキーチェーンで「常に信頼」に設定されました(証明書を選択->情報を取得->信頼->「システムデフォルトを使用」を「常に信頼」に変更できます)。これを機能させるには、「システムのデフォルトを使用」に戻す必要がありました。最初にこれを「常に信頼する」に設定して、ソフトウェアの更新と証明書の更新後に表示されるキーチェーンダイアログを回避します。

0
Babul Prabhakar

何ヶ月もここですべてを試してみました...狂気の定義...新しいMacユーザーの下でXcodeを起動することで解決しました。

〜/ Library/Developer/*を削除し、Xcode-を再インストールしました。

0
wcribbs

これは、Swift言語で新しいToday拡張ターゲットを古いプロジェクトに追加したときに現れました。 プロジェクトを推奨設定に更新することで簡単に修正 Xcode 6.0.1

0
Vilém Kurz

私の環境:Cocos2d 2.0、Box2d、Objective C

上記の他の回答に加えて、ついに[全般]タブに移動し、WatchKitをオプションにしました。

Targets:General:Linked Frameworks and Libraries: WatchKit.framework: Optional

0
Jim Rota

ここでの同じ問題は、私にとっては、Crashlytics/Fabric/Beta/Twitter/Whatever-they-call-themselvesが、埋め込みフレームワークが欠落しているバイナリをアップロードすることでした。アーカイブを作成し、エンタープライズビルドを標準的な方法でエクスポートした場合、それらは魅力的でした。

0
rob5408

IOS 8.1.1を搭載したiPhone5でテストして、Mavericks、Xcode 6.1.1を使用しても同じ問題が発生しました。新しい証明書やプロビジョニングプロファイルなど、考えられるすべてのソリューションを試しましたが、何も役に立ちませんでした。プロジェクトレベルとターゲットレベルの両方でEmbedded Content Contains Swift CodeRunpath Search Pathsに変更を加えました。

Yosemiteをインストールしましたが、変更を加えることなく機能し始めました。

0
patrik