web-dev-qa-db-ja.com

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

私はiPhone 4sでSwiftアプリを実行しようとしています。それはシミュレータ上でうまく動作し、そして私の友人は彼のiPhone 4s上でうまくそれを実行することができます。私はiOS 8とXcode 6の公式リリースを持っています。

私が試してみました

  • Xcode、iPhone、コンピュータを再起動する
  • クリーニング&再建
  • 新しい証明書/プロビジョンプロファイルの取り消しと作成
  • 実行パス検索パスは$(inherited) @executable_path/Frameworksです
  • Swiftコードを含む埋め込みコンテンツは 'はい'です
  • コード署名IDは開発者です

下記は全体のエラーです

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib
370
user3751185

私にとって、以前の解決策はどれもうまくいきませんでした。 「ビルド設定」に「常に埋め込むSwift標準ライブラリ」フラグがあり、これをYESに設定する必要があることがわかりました。デフォルトではNOでした。

Build Settings > Always Embed Swift Standard Libraries

これを設定した後で、再度構築する前にプロジェクトをきれいにしてください。

熱心な読者のためのいくつかの説明 /最も重要な部分は以下のとおりです。

図2に示すように、アプリケーションでSwift Codeを含む埋め込みコンテンツ(EMBEDDED_CONTENT_CONTAINS_Swift)ビルド設定をYESに設定します。このビルド設定は、ターゲットの製品にSwiftコードを含むコンテンツが埋め込まれているかどうかを指定しますYESに設定した場合.

enter image description here

このフラグは、以前はEmbedded Content Contains Swift Codeと呼ばれていました

529
TALAA

驚くべきことに、私がしたのは 私のプロジェクトを "きれいにする" (shift + cmd + K)そしてそれはうまくいった。しかし証明書に関連しているようでした。

129
royherma

私は削除したときに私はこのエラーを取得し始めました:

@executable_path/Frameworks

私のビルド設定のRunpath Search Pathsから。それを置き換えることで再びすべてが修正されました(ソース管理の良さに感謝します!)

どうやってそこにたどり着いたのかはわかりませんが、組み込みSwiftランタイムを見つけるにはバイナリが必要です。

95
jemmons

デバイスの場合は、プロジェクトのGeneralタブのEmbedded binariesセクションに動的フレームワークを追加する必要もあります。
enter image description here

59
Mustafa

Xcode 8では、Embedded Content Contains Swift Codeオプションのオプションは使用できなくなりました。

"Always Embed Swift Standard Libraries = YES"に改名されました

enter image description here

56
Bonnie

証明書がXcodeから直接生成される場合、それはバグだと思います。解決するには(少なくともXcode 6.1/6A1052dでは):

  1. 証明書が管理されているApple Developer Webサイトにアクセスします。 https://developer.Apple.com/account/ios/certificate/certificateList.action
  2. 証明書を選択し([ステータス]の下に[Managed by Xcode]と表示されます)、[取り消し]をクリックします。
  3. 手動で新しい証明書を生成するには、以下の手順に従ってください。 https://developer.Apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Maintaining Certificates/Maintaining Certificates.html#//Apple_ref/doc/uid/TP40012582- CH31-SW32
  4. xcode>設定>アカウント> [あなたのApple ID]>チーム名をダブルクリック>更新ボタンを押して証明書とプロビジョニングプロファイルを更新します。
27
Vijay Sundaram

さて、ここでこのエラーの別の原因を共有しましょう。これを整理するのに数時間かかりました。

私の場合、Keychain Accessでの私の証明書の信頼ポリシーは Always Trust で、デフォルトに戻すことで問題は解決しました。

証明書設定ウィンドウを開くには、Keychain Accessの証明書リストで証明書をダブルクリックします。

enter image description hereenter image description here

25
NAlexN

私は私のSwiftテストを実行することでこの問題を抱えていました(私のアプリではありません)。テストターゲットの@executable_path/Frameworksビルド設定に、Runpath Search Paths以上のものが含まれている必要があることがわかりました。 Runpath Search Pathsを次のように設定することは、私にとって魅力的でした。

$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks
21
DonnaLea

次のビルド設定のスクリーンショットに示すように、Runpath Search Paths@executable_path/Frameworksに設定する必要があります。

enter image description here

もしあなたがSwiftで作られた組み込みフレームワークを持っているのであれば、ビルドオプションEmbedded Content Contains Swift CodeYESに設定することができます。

17
loretoparisi

私はAppleがすでにそれを要約していると思う SwiftライブラリlibswiftCore.dylibを参照しようとするとSwiftアプリがクラッシュする

テクニカルQ&A QA1886より引用:

SwiftライブラリlibswiftCore.dylibを参照しようとすると、Swiftアプリがクラッシュします。

Q:Swift言語アプリを実行しようとしたときに発生するデバイスのコンソールのlibswiftCore.dylib読み込みエラーについてどうすればよいですか?

A:この問題を解決するには、Subject Organizational Unit(OU)をTeam IDに設定したコード署名証明書を使用してアプリに署名する必要があります。 iOS 8のリリース後に作成されたすべてのEnterpriseおよび標準iOS開発者証明書には、Swift言語アプリケーションを実行できるように適切な場所に新しいチームIDフィールドがあります。

通常、このエラーはデバイスのコンソールログに、次のいずれかのようなメッセージと共に表示されます。

[....] [deny-mmap] mapped file has no team identifier and is not a platform binary:
/private/var/mobile/Containers/Bundle/Application/5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1/YourAppNameHere.app/Frameworks/libswiftCore.dylib

Dyld Error Message:
  Library not loaded: @rpath/libswiftCore.dylib

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000120021088
Triggered by Thread: 0

Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib
Dyld Version: 353.5

アーカイブを作成してアプリをパッケージ化するときには、新しい証明書が必要です。新しい証明書のいずれかがある場合でも、既存のSwiftアプリアーカイブを辞任するだけではうまくいきません。それがiOS 8より前の証明書で構築されていた場合は、別のアーカイブを構築する必要があります。

重要:新しいEnterprise Distribution証明書を取り消してセットアップする必要がある場合は注意してください。あなたが社内のエンタープライズ開発者である場合、あなたはあなたのエンタープライズ従業員の誰かがそのエンタープライズ配布証明書で署名されたすべてのアプリケーションとしてまだ使用しているアプリケーションに署名するために使用された配布証明書を取り消さないように注意する必要があります。すぐに動作しなくなります。上記はエンタープライズ配布証明書にのみ適用されます。開発証明書は、エンタープライズ/標準iOS開発者にとっては無効にしても安全です。

AirSignが言うように 問題はIn-house証明書subjectフィールドに存在しないOU属性に由来する。

件名:UID = 269J2W3P2L、CN = iPhone配布:会社名、OU = 269J2W3P2L、O =会社名、C = FR

エンタープライズ開発証明書を持っています。新しい証明書を作成することで問題が解決しました。

16
flatronka

プロジェクトPがカスタムライブラリLをインポートしているのであれば、Lをに追加する必要があります。

P -> Build Phases -> Embed Frameworks -> +。それは私のために働きます。

enter image description here

10

私は新しいマックに移行した後も同じ問題を抱えていました、そして何時間もして、質問の中で提案されたすべての答えを試してみましたが、これはどれも私にとっては役に立ちませんでした。

私にとっての解決策は、この不足している証明書をインストールすることでした。 http://developer.Apple.com/certificationauthority/AppleWWDRCA.cer

ここで答えを見つけました。 https://stackoverflow.com/a/14495100/976628

7
Bruno Coelho

派生データを削除することで解決しましたが、今回は正しく機能しました。 Xcode 7.3.1GM で試しました

6
WhiteTiger

このエラーメッセージは、Xcodeをアップグレードした(そしてその後Swiftの新しいバージョンにアップグレードした)ときに、プロジェクトが古いまたは以前のバージョンのSwiftでビルド/コンパイルされたフレームワークを使用している場合にも発生します。

この場合、フレームワークを再構築して再追加すると問題が解決します。

6
Paul Popiel

次の場所からターゲットの変更 Copy Pods Resources

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-resources.sh"

に:

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-frameworks.sh"

最も簡単で無視しやすい方法:クリーンアップして再構築する。

上記の答えを試した後、これは問題を解決し、うまくいきませんでした。

6
Michael Yang

この問題は Xcode 10.2 でも発生します。次のパッケージをアップルからダウンロードしてインストールする必要があります。 コマンドラインツール用のSwift 5 Runtime Support を提供します。

https://support.Apple.com/kb/DL1998?locale=ja_JP

5
Jim Bray

すべてを試した後、私はついに、ビルドがすべての詳細を何度も何度も含んでいるとは限らないことがわかった。プロセスをスピードアップするためかもしれません...デバイス上で実行する前に全体のパッケージを確実にするために、最初にクリーンをしてください:Shift-Cmd-KそれからCmd-Bでビルドしてください。それが終わったら、あなたの端末で実行してください。簡単です。親切にその場にいるみなさん、よろしく!

5
Daniel

私にとって、すべてを試しても成功しなかったので、うまくいったのは@executable_path/FrameworksからPackaging sectionを削除することでした(そもそもそこにどのようになったのかわからない)

enter image description here

4
abinop

私の場合、それは私のターゲットの名前です。

MyApp.something と同じ問題が発生しました。しかし、ビルド設定ウィンドウで私の製品モジュール名が MyApp-something のように変更されました。だから、私は私のターゲット名( MyAppSomething )からドットを削除し、問題は消えました。

4

解決策のどれも私のために働きませんでした。電話を再起動してそれを修正しました。奇妙だがそれはうまくいった。

4
newDeveloper

これらの解決策はどれもうまくいかないようでしたが、私がWorld Wide Developer認定の許可をUse System defaultsに変更したとき、それはうまくいきました。以下のリンクに手順とスクリーンショットを含めました。

Appleは本当にこの大規模なエラーを解決する必要があるので、ここで述べたように私はあなたがAppleのバグレポートにチケットを記録することをお勧めします: https://stackoverflow.com/a/41401354/559760

3
Mobile Bloke

Xcode 7.2、一方のデバイスにiOS 9.2、他方のデバイスに9.0。両方ともエラーがありました。それが原因で何が変わったのかわかりませんが、WWDRに対する上記の解決策は私にとっては正しいものでした。その証明書をインストールして問題を解決した。

https://forums.developer.Apple.com/message/43547https://forums.developer.Apple.com/message/84846

2
HG123

そこにたくさんの答えがありますが、私の答えが誰かに役立つだろう。

私は同じ問題を抱えています、私のアプリはシミュレータ上で正常に動作しますが、デバイス上で私はアプリを起動するとクラッシュし、上記のようにエラーを出します。私はすべての答えと解決策を試しました。私の場合は、私のプロジェクトは複数のターゲットを持っています。ターゲットAから重複したターゲットBを作成しました。ターゲットごとに異なるImageアセットを使用しています。 Googleを検索して実行した後、私は誰かに役立つかもしれない何かを見つけました。

両方のアプリの起動画像アセットの名前を変更すると、アプリがクラッシュしなくなります。例:ターゲットA起動画像アセット名LaunchImage A。ターゲットBランチイメージアセット名LaunchImage Bをクリックし、各ターゲットの[全般]タブで正しく割り当てます。私のアプリはうまく動きます。

2
VDPATEL

私にとっては、サードパーティのSwift lib(例えばSQLite)に依存するMacOSコマンドラインSwiftアプリを作成することはできませんでした。うまくいったことは、ビルド設定のRunpath Search Pathsに次のパスを直接追加することでした。

/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/macosx/

そうすることで、実行時にXcodeが2つのバージョンのlibswiftCoreを見つけたという警告を出しました - これは意味があります。その行を含まないとXcodeがlibswiftCoreのどのバージョンも見つけられなかったことを除いて。

とにかく、たとえそれが正しくないように見えてもそれは私のためになるでしょう - 私のアプリは私が配布するつもりはない単なるユーティリティであり、少なくともそれは今実行されます!

2
millionyearsold

私はAWSサービスを使用してS3ファイルを追加することをテストするためにこの類似のエラーを得始めました。以下がエラーでした。 dyld:ライブラリがロードされていません:@ rpath/AWSAutoScaling.framework/AWSAutoScaling

私はたくさん検索しました、そして、上記の解決策はまた私にとって役に立ちません。以下のリンクは私がこの問題を解決するのを助けました。

https://forums.developer.Apple.com/thread/21292

これは WWDR(Apple Worldwide Developer Relations Certification Authority) を再ダウンロードすることでこの問題を解決すると言っています。

1
chanduthedev

私はXcode 8.3.2を使っています。私にとって問題はAppleWWDRCA証明書がシステムとログインキーチェーンの両方にあることでした。両方を削除してからログインキーチェーンに追加したところ、再び正常に実行されます。失われた2日???

1
Max

複数のバージョンのXcodeが同時にインストールされています。フレームワークはXcodeの新しいバージョンで構築されました。私がコンパイルしようとしたアプリは、Xcodeの古いバージョンのものでした。フレームワークとアプリの両方を同じバージョンのXcodeでクリーンアップしてコンパイルしたところ、うまくいきました。

1
neoneye

私はXcode 8.3.3とXcode 9.2を使っています。私のための解決策はXcode Selectを使って私のデフォルトXcodeを8から9に変えることでした:

$ xcode-select --print-path

$ Sudo xcode-select -switch /アプリケーション/ Xcode-9.2.app

編集:実際にここで助けと思われるのは、Xcode 9.2がXcode 8.3.3から派生したデータを使ったということでした。解決策ではありませんが、少なくとも私の仕事を進めることができます。

1
Matt Bearson

私はXcode 7.2を使っています。上記のすべてを試してもエラーが解決しない場合は、キーチェーンアクセスから古い証明書を削除してみてください。これをようやく修正するのはとても大変です。

0
Maggie

次のようなエラーが発生した場合:

バンドル「YourFrameworkTests」は、破損しているか必要なリソースがないため、ロードできませんでした。バンドルを再インストールしてください。 (dlopen_preflight(/ some/path /.../ YourFrameworkTests.xctest/YourFrameworkTests):ロードされていないライブラリ:@ rpath/SomeOther.framework/SomeOther参照元:/ some/path/...)

フレームワークでCocoaPodsを使用してから、Podfileを編集し、Testターゲットからinherit! :search_pathsを削除してください。 、pod installを再度実行します。

詳細については、 https://github.com/CocoaPods/CocoaPods/issues/8868 を参照してください。

0
Marius

手短に言えば、 "Enable Bitcode = NO"をチェックしようとしましたか。わたしにはできる。

私の場合、私のプロジェクトはObject-Cで書かれており、Swiftで書かれたサードパーティーのフレームワークを1つ含んでいます。私は開発者モードでシミュレータと実デバイスの両方で私のアプリを実行することができます。ただし、アドホックプロビジョンプロファイルを使用してAPPを実現し、このipa OTAを実際のデバイスにインストールすると、クラッシュしました。店へのアップロードについても言及していません。この情報がお役に立てば幸いです。

0
Tsung-Yi Tsai

エンタープライズディストリビューション証明書ソリューションに追加するには、次の手順に従います。キーチェーンを開いて証明書を調べることができます。信頼チェーンが検証できない、または失効していることを示す赤いテキストがある場合は、機能しません。私のコンピュータでは、Webポータルでまだ有効であると示されていたにもかかわらず、当社の配布証明書が失効していると表示されていました。 Keychainで緑色の(有効な)新しい配布証明書を取得しました。これで問題は解決しました。

0
r590

Xcodeがあなたに証明書をリセットするように頼んだとき、あなたは reset itにします。そして、そのエラーメッセージが表示されてもクラッシュすることなくアプリを実際のデバイスで実行できます。一度この問題が1つのSwiftプロジェクトで解決されると。この問題のある他のSwiftプロジェクトも修正されています。

私はこれらのことに半日ほど苦労してきましたが、プロビジョニングポータルで証明書を何度もリセットしても役に立たないことがわかりました。

0
oOEric

https://github.com/CocoaPods/cocoapods-integration-specs/pull/24/files の投稿から、Swift.dylibは署名が必要だが失敗したことを意味します。私は、cocoapodをサポートする新しいSwiftプロジェクトを作成することさえできませんでした。

0
BollMose

私は同じ問題を抱えています、そして問題はこのようなものです:

dyld: Library not loaded: @rpath/Result.framework/Result Referenced from: /private/var/mobile/Containers/Bundle/Application/74AD1FE2-7095-47D2-B059-520863050EE2/ReactiveCocoaTest.app/Frameworks/ReactiveCocoa.framework/ReactiveCocoa Reason: image not found

私の解決策は以下の通りです。

TARGET - > Build Setting - > Other Linker Flag - > ReactiveCocoaフレームワークを削除します。もしxxx.frameworkであれば、xxxを削除するべきです。

reactiveCocoaを削除します

delete the ReactiveCocoa

0
aircraft

私の場合、私のテストターゲットの1つは機能していましたが、もう1つは機能していませんでした。ライブラリが見つからないなど、上記のエラーが発生していました。両方のテストターゲットの設定を比較したところ、「Test Host」の設定が欠けていることがわかりました。そのため、実際のテストターゲットからコピーして壊れたテストターゲットを修正しました。

enter image description here

0
skr1p7k1dd

私の場合、

@executable_path/Frameworksを設定しました

しかし、私はまた「フレームワーク検索パス」を設定しなければなりません

$(PROJECT_DIR)/Frameworks

recursiveとして変更

これは私のために働きます。

0
Max

あなたのプロジェクトにカカオポッドと異なるスキームがある場合は、pod updateを実行してみてください。これで問題は解決しました。

0
gmogames

私にとっての解決策は以下のとおりです。「製品バンドルに資産パックを埋め込む」を無効にすると、この問題は解消されます。

enter image description here

0
ashish.surana

上記の解決策は私にはうまくいきませんでした。次の手順で問題を解決します。

  1. 私は電話に行き(設定>プロフィール)そして電話にあったプロフィールを削除しなければならなかった(それらのプロフィール/規定に関連したすべてのアプリを含む)。
  2. その後、必ずApple規定をxcodeでダウンロードしてください。 xcode settings> accountに移動して、Apple開発者アカウントにサインインします。
0
LuAndre