私はiPhone 4sでSwiftアプリを実行しようとしています。それはシミュレータ上でうまく動作し、そして私の友人は彼のiPhone 4s上でうまくそれを実行することができます。私はiOS 8とXcode 6の公式リリースを持っています。
私が試してみました
$(inherited) @executable_path/Frameworks
です下記は全体のエラーです
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
私にとって、以前の解決策はどれもうまくいきませんでした。 「ビルド設定」に「常に埋め込むSwift標準ライブラリ」フラグがあり、これをYESに設定する必要があることがわかりました。デフォルトではNOでした。
Build Settings > Always Embed Swift Standard Libraries
これを設定した後で、再度構築する前にプロジェクトをきれいにしてください。
熱心な読者のためのいくつかの説明 /最も重要な部分は以下のとおりです。
図2に示すように、アプリケーションでSwift Codeを含む埋め込みコンテンツ(EMBEDDED_CONTENT_CONTAINS_Swift)ビルド設定をYESに設定します。このビルド設定は、ターゲットの製品にSwiftコードを含むコンテンツが埋め込まれているかどうかを指定しますYESに設定した場合.
このフラグは、以前はEmbedded Content Contains Swift Code
と呼ばれていました
驚くべきことに、私がしたのは 私のプロジェクトを "きれいにする" (shift + cmd + K)そしてそれはうまくいった。しかし証明書に関連しているようでした。
私は削除したときに私はこのエラーを取得し始めました:
@executable_path/Frameworks
私のビルド設定のRunpath Search Paths
から。それを置き換えることで再びすべてが修正されました(ソース管理の良さに感謝します!)
どうやってそこにたどり着いたのかはわかりませんが、組み込みSwiftランタイムを見つけるにはバイナリが必要です。
証明書がXcodeから直接生成される場合、それはバグだと思います。解決するには(少なくともXcode 6.1/6A1052dでは):
さて、ここでこのエラーの別の原因を共有しましょう。これを整理するのに数時間かかりました。
私の場合、Keychain Accessでの私の証明書の信頼ポリシーは Always Trust で、デフォルトに戻すことで問題は解決しました。
証明書設定ウィンドウを開くには、Keychain Accessの証明書リストで証明書をダブルクリックします。
私は私のSwiftテストを実行することでこの問題を抱えていました(私のアプリではありません)。テストターゲットの@executable_path/Frameworks
ビルド設定に、Runpath Search Paths
以上のものが含まれている必要があることがわかりました。 Runpath Search Pathsを次のように設定することは、私にとって魅力的でした。
$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks
私は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
私は新しいマックに移行した後も同じ問題を抱えていました、そして何時間もして、質問の中で提案されたすべての答えを試してみましたが、これはどれも私にとっては役に立ちませんでした。
私にとっての解決策は、この不足している証明書をインストールすることでした。 http://developer.Apple.com/certificationauthority/AppleWWDRCA.cer
ここで答えを見つけました。 https://stackoverflow.com/a/14495100/976628
派生データを削除することで解決しましたが、今回は正しく機能しました。 Xcode 7.3.1GM で試しました
このエラーメッセージは、Xcodeをアップグレードした(そしてその後Swiftの新しいバージョンにアップグレードした)ときに、プロジェクトが古いまたは以前のバージョンのSwiftでビルド/コンパイルされたフレームワークを使用している場合にも発生します。
この場合、フレームワークを再構築して再追加すると問題が解決します。
次の場所からターゲットの変更 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"
最も簡単で無視しやすい方法:クリーンアップして再構築する。
上記の答えを試した後、これは問題を解決し、うまくいきませんでした。
この問題は Xcode 10.2 でも発生します。次のパッケージをアップルからダウンロードしてインストールする必要があります。 コマンドラインツール用のSwift 5 Runtime Support を提供します。
すべてを試した後、私はついに、ビルドがすべての詳細を何度も何度も含んでいるとは限らないことがわかった。プロセスをスピードアップするためかもしれません...デバイス上で実行する前に全体のパッケージを確実にするために、最初にクリーンをしてください:Shift-Cmd-KそれからCmd-Bでビルドしてください。それが終わったら、あなたの端末で実行してください。簡単です。親切にその場にいるみなさん、よろしく!
私の場合、それは私のターゲットの名前です。
MyApp.something と同じ問題が発生しました。しかし、ビルド設定ウィンドウで私の製品モジュール名が MyApp-something のように変更されました。だから、私は私のターゲット名( MyAppSomething )からドットを削除し、問題は消えました。
解決策のどれも私のために働きませんでした。電話を再起動してそれを修正しました。奇妙だがそれはうまくいった。
これらの解決策はどれもうまくいかないようでしたが、私がWorld Wide Developer認定の許可をUse System defaults
に変更したとき、それはうまくいきました。以下のリンクに手順とスクリーンショットを含めました。
Appleは本当にこの大規模なエラーを解決する必要があるので、ここで述べたように私はあなたがAppleのバグレポートにチケットを記録することをお勧めします: https://stackoverflow.com/a/41401354/559760
Xcode 7.2、一方のデバイスにiOS 9.2、他方のデバイスに9.0。両方ともエラーがありました。それが原因で何が変わったのかわかりませんが、WWDRに対する上記の解決策は私にとっては正しいものでした。その証明書をインストールして問題を解決した。
https://forums.developer.Apple.com/message/43547https://forums.developer.Apple.com/message/84846
そこにたくさんの答えがありますが、私の答えが誰かに役立つだろう。
私は同じ問題を抱えています、私のアプリはシミュレータ上で正常に動作しますが、デバイス上で私はアプリを起動するとクラッシュし、上記のようにエラーを出します。私はすべての答えと解決策を試しました。私の場合は、私のプロジェクトは複数のターゲットを持っています。ターゲットAから重複したターゲットBを作成しました。ターゲットごとに異なるImageアセットを使用しています。 Googleを検索して実行した後、私は誰かに役立つかもしれない何かを見つけました。
両方のアプリの起動画像アセットの名前を変更すると、アプリがクラッシュしなくなります。例:ターゲットA起動画像アセット名LaunchImage A。ターゲットBランチイメージアセット名LaunchImage Bをクリックし、各ターゲットの[全般]タブで正しく割り当てます。私のアプリはうまく動きます。
私にとっては、サードパーティの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のどのバージョンも見つけられなかったことを除いて。
とにかく、たとえそれが正しくないように見えてもそれは私のためになるでしょう - 私のアプリは私が配布するつもりはない単なるユーティリティであり、少なくともそれは今実行されます!
私はAWSサービスを使用してS3ファイルを追加することをテストするためにこの類似のエラーを得始めました。以下がエラーでした。 dyld:ライブラリがロードされていません:@ rpath/AWSAutoScaling.framework/AWSAutoScaling
私はたくさん検索しました、そして、上記の解決策はまた私にとって役に立ちません。以下のリンクは私がこの問題を解決するのを助けました。
https://forums.developer.Apple.com/thread/21292
これは WWDR(Apple Worldwide Developer Relations Certification Authority) を再ダウンロードすることでこの問題を解決すると言っています。
私はXcode 8.3.2を使っています。私にとって問題はAppleWWDRCA証明書がシステムとログインキーチェーンの両方にあることでした。両方を削除してからログインキーチェーンに追加したところ、再び正常に実行されます。失われた2日???
複数のバージョンのXcodeが同時にインストールされています。フレームワークはXcodeの新しいバージョンで構築されました。私がコンパイルしようとしたアプリは、Xcodeの古いバージョンのものでした。フレームワークとアプリの両方を同じバージョンのXcodeでクリーンアップしてコンパイルしたところ、うまくいきました。
私は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から派生したデータを使ったということでした。解決策ではありませんが、少なくとも私の仕事を進めることができます。
私はXcode 7.2を使っています。上記のすべてを試してもエラーが解決しない場合は、キーチェーンアクセスから古い証明書を削除してみてください。これをようやく修正するのはとても大変です。
次のようなエラーが発生した場合:
バンドル「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 を参照してください。
手短に言えば、 "Enable Bitcode = NO"をチェックしようとしましたか。わたしにはできる。
私の場合、私のプロジェクトはObject-Cで書かれており、Swiftで書かれたサードパーティーのフレームワークを1つ含んでいます。私は開発者モードでシミュレータと実デバイスの両方で私のアプリを実行することができます。ただし、アドホックプロビジョンプロファイルを使用してAPPを実現し、このipa OTAを実際のデバイスにインストールすると、クラッシュしました。店へのアップロードについても言及していません。この情報がお役に立てば幸いです。
エンタープライズディストリビューション証明書ソリューションに追加するには、次の手順に従います。キーチェーンを開いて証明書を調べることができます。信頼チェーンが検証できない、または失効していることを示す赤いテキストがある場合は、機能しません。私のコンピュータでは、Webポータルでまだ有効であると示されていたにもかかわらず、当社の配布証明書が失効していると表示されていました。 Keychainで緑色の(有効な)新しい配布証明書を取得しました。これで問題は解決しました。
Xcodeがあなたに証明書をリセットするように頼んだとき、あなたは reset itにします。そして、そのエラーメッセージが表示されてもクラッシュすることなくアプリを実際のデバイスで実行できます。一度この問題が1つのSwiftプロジェクトで解決されると。この問題のある他のSwiftプロジェクトも修正されています。
私はこれらのことに半日ほど苦労してきましたが、プロビジョニングポータルで証明書を何度もリセットしても役に立たないことがわかりました。
https://github.com/CocoaPods/cocoapods-integration-specs/pull/24/files の投稿から、Swift.dylibは署名が必要だが失敗したことを意味します。私は、cocoapodをサポートする新しいSwiftプロジェクトを作成することさえできませんでした。
私は同じ問題を抱えています、そして問題はこのようなものです:
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を削除します
私の場合、
@executable_path/Frameworks
を設定しました
しかし、私はまた「フレームワーク検索パス」を設定しなければなりません
$(PROJECT_DIR)/Frameworks
recursive
として変更
これは私のために働きます。
あなたのプロジェクトにカカオポッドと異なるスキームがある場合は、pod updateを実行してみてください。これで問題は解決しました。
上記の解決策は私にはうまくいきませんでした。次の手順で問題を解決します。