dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb)
私のiPhone上でビルドすると、このエラーが出ます。私はシミュレータ上に構築することができます。すべてのプロビジョンファイルをやり直しましたが、それでも私のiPhone上では構築できません。私のXcodeはこんな感じです
これはフレームワークの問題なのか、それとも署名の問題なのでしょうか。これはXcode 6では起こりませんでした。ありがとうございます。
誤って証明書を失効させたため、この問題が発生しました。それから私のすべてのSwiftプロジェクトはこの問題を抱えています。これを解決するには2つの方法があります。
製品 - >クリーン(またはCMD-Shift-K)をクリックしてください。
または、Xcode設定ファイルを手動で削除してください。
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.Apple.dt.Xcode
私はなぜか分からない。それが役立つかどうか幸運を見てください。
Xcode->Product->Clean + Xcode Restart
私の永遠の当惑に対する他の言及された解決策の多くを試みた後、Xcode-> Product-> Cleanを実行してXcodeを再起動することは、トリックをしました。
私はこの問題について長く調べた。この問題の原因はいくつかあります。
あなたと、Swiftコード/ライブラリをObjectice Cプロジェクトに直面している場合は、解決策1-2-3を試してください。
新しいSwiftプロジェクトでこの問題に直面している場合は、Solution 4が最適です。
解決策1:
Xcodeを再起動し、次にコンピュータとiPhoneを再起動します。
解決策2:
プロジェクトビルド設定に移動し、Embedded Content Contains Swift
CodeフラグをYESに設定します。
解決策3:
プロジェクトビルド設定に行き、Runpath Search Pathsオプションに@executable_path/Frameworks
を追加します。
解決策4 :
上記のどれも上手くいかないなら、これはそうあるべきです。 AirSignの投稿で言及されているように、Appleは忍者パッチを当てられた証明書のようだ
At 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
証明書とプロビジョニングを再作成するだけです。
私にとっては、この問題はWWRD証明書が原因で発生していました。Mineは最新のものでしたが、何らかの理由で「システムのデフォルトを使用」ではなく「常に信頼する」に設定されています。
誤ってキーチェーンをリセットした場合は、キーチェーンにAppleの証明書がないために発生する可能性があります。私は自分の問題を解決するために this の回答に従いました。
私は同じ問題を抱えていて、WWDR(Apple Worldwide Developer Relations証明機関)を再ダウンロードすることによって修正することができました。ここからダウンロードしてください: http://developer.Apple.com/certificationauthority/AppleWWDRCA.cer
DerivedDataを削除すると、私にはうまくいきました。
Xcode - > Preferences - > Locations - > DerivedDataパスの後ろの矢印をクリックしてFinderのDerivedDataフォルダ全体を削除した。
Xcodebuildとxcrun PackageApplicationを使用してコマンドラインでアプリをビルドし、エンタープライズプロファイルでアプリに署名したときに発生しました。私たちのCIビルドサーバーでは、証明書はキーチェーンで "Always Trust"に設定されていました(証明書 - >情報を見る - > Trust - > "Use System Default"を "Always Trust"に変更できます)。私はこれを機能させるために "Use System Default"に戻す必要がありました。ソフトウェアの更新と証明書の更新後に表示されるキーチェーンダイアログを回避するために、最初はこれを "Always Trust"に設定しています。
混乱を招く恐れがあるため、XC8にアップデートするとこの問題が発生しました。
これらの提案のどれも、他のどのスレッドからもそれを解決しませんでした。 DIDがうまくいったのは、 "ライブラリとバイナリをリンクする"ビルドフェーズ、 "ターゲットの依存関係"ビルドフェーズ、および "リンクされたフレームワークとライブラリ"全般設定からEVERYTHINGが削除されたためです。
参考までに、私はCarthageを使用していて、FRAMEWORK_SEARCH_PATHS
ビルド設定に$(PROJECT_DIR)/Carthage/Build/tvOS
を追加したので、私のフレームワークを見つけることができました。
FYI 2、このプロジェクトとフレームワークは100%Swiftで、フレームワークはDEFINES_MODULE = YES
を構築しています。
から引用しました 技術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]マップファイルにはチーム識別子がなく、プラットフォームバイナリでもありません:/ private/var/mobile /コンテナ/バンドル/アプリケーション/ 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の人たちが述べているように、問題は社内証明書の件名フィールドに欠けているOU属性から生じる。
件名:UID = 269J2W3P2L、CN = iPhone配布:会社名、OU = 269J2W3P2L、O =会社名、C = FR
エンタープライズ開発証明書を持っています。新しい証明書を作成することで問題が解決しました。
私もこの問題を抱えていましたが、私が上で試したことや他のいくつかの投稿でもうまくいきませんでした。
開発用と配布用で異なるバンドルIDがあるため、私はバンドルIDを変更しました。
私のハードウェアはこの規定で許可されており、私のチームアカウントは有効ですが、他のフレームワークで上記のエラーが発生していました。
私は完全に私の携帯電話からアプリの古いバージョンを完全に削除する必要があることがわかった。そしてそれを標準的な方法で削除するだけではありません。
解決策:
あなたが完全に最初から始めていないのであれば、明らかに異なるバンドルIDの下で同じチームの下に同じアプリをインストールすることで、曖昧になるフレームワークへの参照がいくつかあります。
これが誰かに役立つことを願っています。
@ Jieyi Hu Answerを試した後でも、まだこの問題に遭遇する可能性があります。それは修正されているように見えるかもしれませんが、それがまた来れば(おそらくxCode 9で)。
しかし、この回避策はうまくいくようです(Cocoapods 1.5.xに適用されます)。
プロジェクトでPodfileを開き、これを追加します。
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end
ポッドアップデート
出典:
https://github.com/evgenyneu/Cosmos/issues/105
https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911
ありがとう@Cédric
以下のステップはうまくいった。
1)動的ライブラリでは、インストール名は "@loader_path"でなければなりませんでした
2)メインプロジェクトでは、Runpath Search Pathは "@ loader_path"と "@ loader_path/Frameworks"である必要があります。
3)キーチェーン使用ビューから - >期限切れの証明書を表示し、すべてを削除しました。
4)配布証明書を削除して再インストールした。
5)developer.Apple.com/certificationauthority/AppleWWDRCA.cerをダウンロードしてインストールした。
私はちょうどプロジェクトとalt製品メニューでClean Build Folder
をきれいにしました
Xamarin Studioで作業していて、PCLベイトを実行してトリックを切り替える必要があるポータブルライブラリを参照している場合も、同じ現象が見られます。これは、参照元プロジェクトが参照先ライブラリに関して古くなっている場合に発生します。私は自分の共通ライブラリを新しいフレームワークに更新し、私のパッケージを更新しましたが、それに合わせて私のiOSパッケージを更新していないことを知りました。パッケージをアップデートすることでこのエラーは解決しました。
私は同じ問題を抱えていてWWDR (Apple Worldwide Developer Relations Certification Authority)
を再ダウンロードすることによって修正することができました。ここからダウンロード:
キーチェーンでAlways Trustに設定します。 Use System Default
に変更
それは私のために働く、私はこれがあなたを助けることを願っています
それが価値があるもののために、私はXCode 9.0.1で同様のエラーにぶつかりました。すべての証明書をアンインストールして再インストールしようとしましたが、再インストールしたときに、以前の信頼設定を覚えているようでした。私のために働いてしまったのは(それがそうであるように)再起動が後に続く「Apple Worldwide Developer Relations証明機関」証明書の「常に信頼する」設定をオフにすることでした。なんて不可解な問題でしょう。
この問題はシミュレータでのみ発生しました。それは私たちのアプリケーションのいくつかの無効なEntitlementsに関連しているようですが、問題をデバイス上で実行しても表示されません。
私の場合、Xcodeによって作成されダウンロードされた証明書をすべて削除した後。 xcode 8.1でアプリの認証を管理しましょう、それはうまく機能します!これが誰かに役立つことを願っています。
同じ問題に直面した
私の場合、キーチェーンは証明書を信頼できないと表示しています。この問題を解決するために、証明書の信頼オプションを "Always trust"に設定しました。証明書を「常に信頼する」に設定することがクラッシュの主な原因でした。私はデバイスにアプリケーションをインストールすることができませんでした。 「常に信頼する」の代わりに「システムデフォルト」に信頼オプションを設定することでこれを解決しました。それは私のために働きました。
私は最近この問題に直面しました。私はすべての可能な解決策を試しましたが、何もうまくいきませんでした。最後に、私はXcodeを終了し、キーチェーンの証明書を削除し、新鮮なものをすべてインストールし、Macを再起動しました。幸いなことにそれは魅力のように働いた:)
私はXCode 9でこの問題に遭遇しました。これは私のためのトリックをしました:
Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths"
から$(PROJECT_DIR)
(再帰的)
私はこれらのトリックを使って解決しました。
ステップ1:
プロジェクトビルド設定に移動し、Runpath Search Pathsオプションに@ executable_path/Frameworksを追加します。
ステップ2:
ターゲットビルド設定に移動し、[Runpath Search Paths]オプションと[Framework Search Paths]に@ executable_path/Frameworksを追加します。
ステップ3:
WWDR(Apple Worldwide Developer Relations証明機関)を再ダウンロードし、オプションとしてシステムデフォルトを使用に設定します。
ステップ4:
ターミナルを使用してすべての派生データを削除
rm -rf〜/ライブラリ/ Developer/Xcode/DerivedData/*
ステップ5:
すべての証明書を削除して、キーチェーンに再インストールしました。 Use System Defaultオプションを有効にしました。
ステップ6:
Xcodeを再起動してください。
私は同様の問題を抱えています、それは最初の画像として情報を詳述します。
私の解決策は、証明書の切り替えが常にシステムデフォルトを使用するように信頼することです。 画像の説明をここに入力してください画像の説明をここに入力してください
ローカルのkeychainsをチェックして問題を解決します。login.keychainに正しい証明書がある
私の場合は、私が使用していたポッドの1つに問題がありました。そのポッドを削除し、そこから自分のプロジェクトにコードを手動で配置しました。
証明書を再生成してiPhoneを再起動することができます。
私のためにこの仕事、私はこれがあなたを助けることを願っています。
あなたはおそらくそのライブラリに正しいArchを持っていない、あなたはすることができます
file /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib
リンクの方法がわからないが、おそらく正しい方法ではない(libswiftcoreがファクトリライブラリの場合、ライブラリに追加されたものであればおそらく正しくコンパイルされていません)
これで私のエラーが解決しました
WWDR(Apple Worldwide Developer Relations証明機関)を再ダウンロードし、オプションとしてシステムデフォルトを使用に設定します。