古いXcodeプロジェクトにSwiftクラスを追加すると、このエラーが発生します。
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
プロジェクトを再度実行するにはどうすればよいですか?
古いXcodeプロジェクトにSwiftクラスを追加すると、このエラーが発生します。
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
プロジェクトを再度実行するにはどうすればよいですか?
回答:
私にとって、以前の解決策はどれもうまくいきませんでした。ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
YESに設定する必要があるビルド設定にフラグ(以前のバージョンでは「埋め込みコンテンツにはSwiftコードが含まれています」)があることがわかりました。デフォルトではNOでした!
このエラーは、Swiftの使用を開始するObjective-Cプロジェクトの変換中に問題が発生した場合に発生する可能性があります。問題は、リンカーのビルド設定が適切に構成されていないため、手動で行う必要があることです。Runpath Search Pathsビルド設定を探して、次のように設定します。
$(inherited) @executable_path/Frameworks
編集:私はまた、何か他のものが原因で最近発生したこれらのエラーが最近発生していることも付け加えておきます-AppleはSwift自体に変更を加えました。おそらくXcode 6.1または6.1.1以降です。唯一の解決策は、Xcodeを終了し、キーチェーンアクセスで証明書を破棄し、Member Centerに移動して、すべての証明書とプロファイル(ストア内のアプリのプロファイルを除く-削除することはできません)を削除してから、証明書要求プロセス全体をゼロから。
なぜこの質問が反対票を投じられているのか本当にわかりません。既存のプロジェクトで最初に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
証明書を再作成してプロビジョニングするだけです
@executable_path/../Frameworks
、iOSプロジェクトが..
中央にそれを必要としないところに必要です。ターゲットを1つのOSから別のOSに変換した場合は、この値を変更することが重要です。
私の場合、カスタムフレームワークをインポートしようとして、同様のエラーが発生しました。リンクされたフレームワークとライブラリではなく、埋め込みバイナリにフレームワークをインポートする必要がありました。
埋め込みバイナリは、プロジェクト設定->->一般の下にあります
アドホック/エンタープライズディストリビューションビルドでこの問題が発生した開発者は、
開発ポータルから本番証明書を作成してから、配布プロファイルを再生成します。両方をダウンロードしてMacにインストールします。Xcodeビルド設定で正しいプロファイルを選択していることを確認し、アプリを再ビルドします。
解決策5:
私の場合、accfewsの回答で言及されているすべての解決策は非常に役に立ちましたが、どれもうまくいきませんでした。プロジェクトのターゲットの「一般」セクションにある「組み込みバイナリ」セクションに迅速なライブラリを追加することで問題を解決しました。おそらく、これはワークスペースに迅速なフレームワークを含めたためでしょうか?それが今コンパイルするものは何でも!スウィフトの準備をしなさい、私はここにいます!
私にとって、問題は私のApple Worldwide Developer Relations Certification Authorityが無効であったという事実によるものでした。
こちらからダウンロードしてください:https : //developer.apple.com/certificationauthority/AppleWWDRCA.cer
キーチェーンアクセスにドラッグアンドドロップし、プロジェクトをクリーンアップして実行します。
Altキーを押したままにして、[製品]-> [ビルドフォルダーのクリーンアップ]に移動します。
それが誰かを助けることを願っています。
これが発生する理由はたくさんあります。楽しい週末を過ごして、これを引き起こす別の問題(コード署名の順序)を見つけたところで、考えられるすべてのソリューションをまとめた要約回答を作成したいと思いました。
DerivedData
およびBuild
ディレクトリを削除することもできます。下を見て環境設定の場所のためにDerivedData
。 Build
あなたのプロジェクトフォルダにあるはずです。@executable_path/Frameworks
いることを確認します。 それは簡単なことです。独自のコマンドラインビルドを実行している場合は.ipa
、アップロードする独自のファイルを作成している可能性があります。その場合、次のことを確認する必要があります。
SwiftSupport/iphoneos
同じであることを確認してくださいContents/YourApp.app/Frameworks
。Swiftはまだバージョン間でバイナリ互換ではないため、これらのバージョンがアプリのビルドに使用したバージョンであることを確認する必要があります。これらのライブラリはにあり/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
ます。codesign
ライブラリやフレームワークファイル(下Frameworks
で.app
最初にして全体署名フォルダ).app
の木を。.app
木はで署名する必要がありentitlements.plist
ますがないフレームワーク。Swift 3.0がリリースされ、アプリにSwiftをバンドルする必要がなくなると、この問題全体がなくなることを願っています。
この問題は、製品証明書付きのアドホック(またはエンタープライズ)モバイルプロビジョニングを使用して発生しました。開発証明書とmobileprovisionに切り替えると問題が解決しました。
私のプロジェクトは、いくつかのObjective-Cクラスを含むSwiftプロジェクトです。古いinHouse(エンタープライズ)証明書で署名したときも同じ問題がありました。
次の手順でこれを修正しました。
Runpath Search Paths
ビルド設定に:$(inherited) @executable_path/Frameworks
。解決策6:
私たちの場合、エンタープライズ配布証明書は取り消されていました。新しい証明書を生成し、プロビジョニングプロファイルを更新すると、問題が修正されました。
(このエラーにはさまざまな原因が考えられます。これが誰かの役に立てば幸いです。)
同じ問題に直面し、正しいコード署名IDを設定すると問題が解決しました(ビルド設定->コード署名ID)。
Appleの技術的な質問に従って、「iOS 8のリリース後に作成されるすべてのエンタープライズおよび標準のiOS開発者証明書には、Swift言語アプリの実行を許可する適切な場所に新しいチームIDフィールドがあります」
私は、Appleや新しい証明書など、Webで見つかったすべてのソリューションを試しました。成功なし。
6か月間試してからxcodeを実行できる唯一の方法は、私のMacbookに新しいアカウントを作成することでした。
通常、このエラーは、このライブラリをビルドフェーズの「ファイルのコピー」セグメントに追加すると消えます。
これらの解決策はどれも、私にとって一貫して機能しているようには見えませんでした。成功した実行のカップルごとに、再び失敗します。「Embedded Content Contains Swift Code」フラグは常にYESに設定されていました。
Xcodeを6.3互換に設定するとわかりました。3.2互換に戻すには、問題を解決します。
otool