Swiftクラスを古いXcodeプロジェクトに追加すると、このエラーが発生します。
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
プロジェクトを再度実行するにはどうすればよいですか?
私にとって、以前のソリューションはどれも機能しませんでした。ビルド設定に、ALWAYS_EMBED_Swift_STANDARD_LIBRARIES
(以前のバージョンでは「埋め込みコンテンツにSwiftコードが含まれる」)というフラグがあり、YESに設定する必要があることを発見しました。デフォルトではNOでした!
このエラーは、Objective-Cプロジェクトの変換中に何かがうまくいかず、Swiftの使用を開始した場合に発生する可能性があります。問題は、リンカーのビルド設定が適切に構成されていないため、手動で行う必要があることです。 Runpath Search Pathsビルド設定を探して、次のように設定します。
$(inherited) @executable_path/Frameworks
編集:何か他のものが原因でこれらのエラーが最近発生していることも追加する必要があります-AppleはSwift自体に変更を加え、おそらくXcode 6.1または6.1.1。唯一の解決策は、Xcodeを終了し、キーチェーンアクセスで証明書を破棄し、メンバーセンターに移動して、すべての証明書とプロファイル(ストア内のアプリのプロファイルを除く-削除できません)を削除してから開始することですゼロからの証明書要求プロセス全体。
この質問がなぜ投票されているのか本当に分かりません。既存のプロジェクトでSwiftを最初に使用しようとしたときにもこの問題がありました。 Xcodeの再起動でもこれが修正されました。
私はこの問題について長い間探しました。この問題の原因はいくつかあります。
Objectice CプロジェクトでSwiftコード/ライブラリを使用しているときに直面している場合は、ソリューション1-2-3を試してください。
新しいSwiftプロジェクトでこの問題に直面している場合、ソリューション4が最適です。
Xcodeを再起動してから、コンピューターとiPhoneを再起動します
プロジェクトのビルド設定に移動し、Always Embed Swift Standard Libraries
(以前はEmbedded Content Contains Swift Code
)フラグをYES
に設定します
プロジェクトのビルド設定に移動し、@executable_path/Frameworks
をRunpath Search Paths
オプションに追加します
上記のいずれも機能しない場合は、これが必要です。 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
そのため、証明書とプロビジョニングを再作成する必要があります
私の場合、カスタムフレームワークをインポートしようとしていて、同様のエラーが発生していました。リンクされたフレームワークとライブラリではなく、埋め込みバイナリにフレームワークをインポートする必要がありました。
埋め込みバイナリは、プロジェクトの設定->->一般の下にあります
Adhoc/Enterpriseディストリビューションビルドでこの問題が発生した開発者の場合、
開発ポータルから実動証明書を作成してから、配布プロファイルを再生成します。両方をダウンロードしてMacにインストールします。 Xcodeビルド設定で正しいプロファイルを選択したことを確認し、アプリを再ビルドします。
ソリューション5:
私の場合、accfewsの回答で言及されたすべてのソリューションは非常に役立ちましたが、どれも機能していません。プロジェクトのターゲットの「一般」セクションにある「埋め込みバイナリ」セクションにSwiftライブラリを追加して、問題を解決しました。おそらく、これはワークスペースにSwiftフレームワークを含めたという事実によるのでしょうか?今何をコンパイルしても! Swiftの準備をしてください、私はここにいます!
Xcodeを簡単に再起動することで問題が解決しました。
私にとって、この問題は、私のApple Worldwide Developer Relations Certification Authorityが無効だったためです。
ここからダウンロードしてください: https://developer.Apple.com/certificationauthority/AppleWWDRCA.cer
キーチェーンアクセスにドラッグアンドドロップし、プロジェクトをクリーンアップして実行します。
Altを押したままにして、[製品]-> [ビルドフォルダーのクリーン...]に移動します。
それが誰かを助けることを願っています。
これが発生する理由はたくさんあります。楽しい週末を過ごして、これを引き起こす別の問題(コード署名の順序)を見つけたので、考えられるすべての解決策をまとめる要約回答を作成したかったのです。
DerivedData
およびBuild
ディレクトリも削除できます。 DerivedData
の場所については、Preferencesを参照してください。 Build
はプロジェクトフォルダーにある必要があります。@executable_path/Frameworks
が含まれます。それは簡単なことです。独自のコマンドラインビルドを実行している場合は、アップロードする独自の.ipa
ファイルを作成している可能性があります。その場合、次のことを確認する必要があります。
SwiftSupport/iphoneos
のSwiftファイルのバージョンがContents/YourApp.app/Frameworks
のバージョンと同じであることを確認してください Swiftはバージョン間でまだバイナリ互換ではないため、これらのバージョンは、アプリのビルドに使用したバージョンです。これらのライブラリは/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneos
にあります。.app
フォルダー内のcodesign
の下)をFrameworks
してから、.app
ツリー全体に署名する必要があります。 .app
ツリーは、entitlements.plist
で署名する必要がありますが、フレームワークはnotで署名する必要があります。Swift 3.0がリリースされ、アプリにSwiftをバンドルする必要がなくなったら、この問題はすべて解決することを願っています。
上記のすべての回答を試しましたが、何も機能しませんでした。
Yosemiteにアップデートした後、ようやく機能しました
Swiftソースファイルの追加を開始したObj-Cプロジェクトがありました。以下は私のために問題を修正しました:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
EMBEDDED CONTENT CONTAINS Swift = YES
テンプレートXcode 6.3から新しいプロジェクトを作成し、プロジェクト設定を古い元のプロジェクトと比較しました。
アドホック(またはエンタープライズ)モバイルプロビジョニングと実稼働証明書を使用してこの問題が発生しました。開発証明書とmobileprovisionに切り替えて問題を解決しました。
埋め込みバイナリを介して3つのフレームワークを追加すると、リンクされたフレームワークとライブラリにも追加されます。 Linked Frameworks and Librariesの3つのエントリを削除すると、問題が解決します。
Xcodeを再起動したり、Macを再起動したりするような魔法の方法はうまくいきません。
フレームワークを「リンクされたフレームワークとライブラリ」ではなく「埋め込みバイナリ」として追加-問題を修正しました。
また、埋め込みコンテンツにSwift Codeフラグが含まれるように設定します。
私のプロジェクトは、いくつかのObjective-Cクラスを持つSwiftプロジェクトです。古いinHouse(エンタープライズ)証明書で署名した場合、同じ問題が発生しました。
次の手順でこれを修正しました。
Runpath Search Paths
ビルド設定を$(inherited) @executable_path/Frameworks
に設定します。同じ問題に直面しました。正しいコード署名IDを設定すると、問題が解決しました(ビルド設定->コード署名ID)。
Apple技術的な質問 "iOS 8のリリース後に作成されたすべてのエンタープライズおよび標準のiOS開発者証明書には、Swift言語アプリが許可する適切な場所に新しいチームIDフィールドがあります走る」
ソリューション6:
この場合、エンタープライズ配布証明書は取り消されていました。新しい証明書を生成し、プロビジョニングプロファイルを更新すると、問題が修正されました。
(このエラーにはさまざまな原因があるようです。これが誰かの助けになることを願っています。)
私もこの問題を抱えていましたが、それはlibswiftXCTest.dylib
を見つけられなかっただけです。
解決策は、XCTest.framework
内のTestsターゲットにBuild Phases/Link Binary with Library
を追加することでした。メインターゲットをビルドしようとしても、このエラーが発生していました。
通常、ビルドフェーズの「ファイルのコピー」セグメントにこのライブラリを追加すると、このエラーは表示されなくなります。
Appleや新しい証明書など、Webで見つかったすべてのソリューションを試しました。成功なし。
6か月試してからxcodeを実行できる唯一の方法は、Macbookで新しいアカウントを作成することでした。
そして、上記のすべてがあなたを助けず、あなたが本当に欲求不満になった場合...すべての中で最高のトリックを試してください:Clean
そして、ちょうどClean Build Folder
も確認してください。 :)それが誰かを助けることを願っています!
OS X(ヨセミテ)の最新バージョンへのアップグレード
数時間の試行錯誤の後、この問題の解決に至りました。 -もちろんこれがあなたの場合にあてはまる場合
Mac OS XをMavericksからYosemiteにアップグレードするまで、私は同じ問題を抱えていました。 -それは私の問題を修正しました、あなたの問題も修正することを望みます
これらの解決策のどれも、私にとって一貫して機能していないようでした。実行が数回成功するたびに、再び失敗します。 「埋め込みコンテンツにSwiftコードが含まれています」フラグが常にYESに設定されていました。
Xcodeを6.3互換に設定したことがわかりました。 3.2互換に戻すことで解決しました:
同じ問題が発生しました。私の解決策は、すべての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
プロジェクトに SCLAlertView podを追加し、後で削除しました。ビューコントローラーからimport SCLAlertView
を削除しませんでした。理想的には、コンパイル時エラーが発生するはずですが、dyld: Library not loaded: @rpath/SCLAlertView.framework
に言及する実行時エラーが発生しました。ビューコントローラーからimport SCLAlertView
を削除してビルドしましたが、エラーは発生しませんでした。だから私の場合、フレームワークが見つからなかったライブラリをimport
しようとしていました。このような参照を削除すると、問題が解決します。
私の場合は、「Cmd + Shift + K」を使用してから「Cmd + B」を実行するだけです
最近、このエラーが再び発生し始めました。過去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コマンドラインツールのランタイムサポート」。
https://forums.developer.Apple.com/thread/21292 を参照
この解決策は私のために働いた:
Xcodebuildおよびxcrun PackageApplicationを介してコマンドラインでアプリをビルドし、エンタープライズプロファイルでアプリに署名すると、私の側で発生しました。 CIビルドサーバーでは、証明書はキーチェーンで「常に信頼」に設定されました(証明書を選択->情報を取得->信頼->「システムデフォルトを使用」を「常に信頼」に変更できます)。これを機能させるには、「システムのデフォルトを使用」に戻す必要がありました。最初にこれを「常に信頼する」に設定して、ソフトウェアの更新と証明書の更新後に表示されるキーチェーンダイアログを回避します。
何ヶ月もここですべてを試してみました...狂気の定義...新しいMacユーザーの下でXcodeを起動することで解決しました。
〜/ Library/Developer/*を削除し、Xcode-を再インストールしました。
これは、Swift言語で新しいToday拡張ターゲットを古いプロジェクトに追加したときに現れました。 プロジェクトを推奨設定に更新することで簡単に修正 Xcode 6.0.1
ここでの同じ問題は、私にとっては、Crashlytics/Fabric/Beta/Twitter/Whatever-they-call-themselvesが、埋め込みフレームワークが欠落しているバイナリをアップロードすることでした。アーカイブを作成し、エンタープライズビルドを標準的な方法でエクスポートした場合、それらは魅力的でした。
IOS 8.1.1を搭載したiPhone5でテストして、Mavericks、Xcode 6.1.1を使用しても同じ問題が発生しました。新しい証明書やプロビジョニングプロファイルなど、考えられるすべてのソリューションを試しましたが、何も役に立ちませんでした。プロジェクトレベルとターゲットレベルの両方でEmbedded Content Contains Swift Code
とRunpath Search Paths
に変更を加えました。
Yosemiteをインストールしましたが、変更を加えることなく機能し始めました。