デバイスでフレームワークがクラ​​ッシュしたiOSアプリ、dyld:ライブラリがロードされていない、Xcode 6ベータ


573

このクラッシュはブロッキングの問題であり、次の手順を使用して問題を再現しました。

  • Cocoa Touch Frameworkプロジェクトを作成する
  • SwiftファイルとクラスDogを追加する
  • デバイスのフレームワークを構築する
  • Swiftでシングルビューアプリケーションを作成する
  • フレームワークをアプリプロジェクトにインポートする
  • ViewControllerのフレームワークからSwiftクラスをインスタンス化します
  • デバイスでアプリをビルドして実行する

アプリを起動するとすぐにクラッシュしました。ここにコンソールログがあります:

dyld: Library not loaded: @rpath/FrameworkTest03.framework/FrameworkTest03
  Referenced from: /var/mobile/Applications/FA6BAAC8-1AAD-49B4-8326-F30F66458CB6/FrameworkTest03App.app/FrameworkTest03App
  Reason: image not found

私はiOS 7.1および8.0デバイスでビルドしようとしましたが、どちらも同じクラッシュを起こします。ただし、アプリを作成してシミュレータで実行することはできます。また、フレームワークをLink Binary With LibrariesRequiredからOptionalに変更できることは承知していますが、問題が完全に解決されず、Dogのインスタンスを作成するとアプリがクラッシュしました。デバイスとシミュレータでは動作が異なります。Xcodeのベータ版を使用してデバイスのフレームワークを配布することはできないと思います。誰かがこれに光を当てることができますか?


1
私が理解していないのは、他のすべてのサードパーティのフレームワークがそのまま動作し、簡単にドラッグアンドドロップできる理由であり、Link Binary with LibrariesXcodeがそれらをアプリバンドルにコピーすることを知っているのに対し、カスタムフレームワークの場合、これは単に発生しません。
fatuhoku

sazzad hissainカーンの答えはここにstackoverflow.com/questions/26024100/...は最良の答え..です
Ankit Kumar氏

1
このstackoverflow.com/a/52129141/2020034を確認してください。効果あり
Vinayak Parmar

あなたはファットライブラリを作ることができます、あなたはこのリンクを見ることができます:stackoverflow.com/a/54977145/3992606
mohsen

Xcodeのバージョンが一致しません。stackoverflow.com/ a / 55738882/5443510で解決しました。
ジミー・殷

回答:


975

ターゲットの「一般」タブには、「埋め込みバイナリ」フィールドがあります。そこにフレームワークを追加すると、クラッシュが解決されます。

リファレンスは、ここでは、アップルデベロッパフォーラムに。


73
組み込みバイナリにフレームワークがあり、コピーフェーズも「フレームワーク」に設定しています。とにかくクラッシュします。
loretoparisi 2014

11
これはデバッグモードでのみ解決されました。プロジェクトをアーカイブまたはビルドすると、エラーが再び発生します
Saad Ur Rehman

13
「実行パス検索パス」に、@ executable_path /フレームワークを追加すると、「組み込みバイナリ」にフレームワークを追加することに加えて、すなわち、この問題を解決
ArdenDev

14
誰でも、PODからEmbedded Binariesにフレームワークを追加する方法を支援できますか?
Bonnke、2015

3
同上。私は思いもPODSを使用してXCodeの6.4で発見すべき「一般>組み込みバイナリ」がない与えられた、のPODから追加する方法を知りたい
DED

259

iOSが8以上の場合

ターゲットの[一般]タブの[埋め込みバイナリ]セクションで、フレームワークを追加します。これにより、フレームワークがコンパイル済みにコピーされ、実行時にリンクできるようになります。

ここに画像の説明を入力してください

なんでこんなことが起こっているの?:リンク先のフレームワークは動的にリンクされたフレームワークとしてコンパイルされているため、実行時にリンクされます。

**注:**カスタムフレームワークの埋め込みはiOS> 8でのみサポートされているため、古いバージョンのiOSで機能する代替ソリューションを次に示します。

iOSが8未満の場合

このフレームワークに影響を与える場合(ソースコード/ビルドプロセスにアクセスできる場合)、このフレームワークを動的にリンクされるのではなく静的にリンクされるように変更できます。これにより、実行時にリンクされるのではなく、コンパイルされたアプリにコードが含まれるようになるため、フレームワークを埋め込む必要はありません。

**方法:**フレームワークの[ビルド設定]タブの[リンク]セクションで、Mach-Oタイプを静的ライブラリに変更します。これで、組み込みバイナリの下にフレームワークを含める必要がなくなります。

静的フレームワーク

アセットを含める画像、オーディオ、またはxib / nibファイルなどを含めるには、バンドル(基本的にはディレクトリ、詳細はこちらのbit.ly/ios_bundle)を作成し、NSBundleを使用してバンドルからアセットをロードすることをお勧めします。


1
フレームワークがポッドにある場合、組み込みバイナリにフレームワークを追加するにはどうすればよいですか?
TomazStoiljkovic 2015

「フレームワークはポッドにある」とはどういう意味ですか?カスタムフレームワークがCocoaPods経由で配布されていることを確認してください。
ドーソン

2
これは「8以上」である必要があります。私はiOS 8でもこれを行わなければなりませんでした。
Cruinh

エラーSwift is not supported for static libraries
jose920405

@TomazStoiljkovicあなたはこれを理解しましたか?同じ問題があります。バイナリとして構築したいフレームワークがありますが、ココアポッドを介して他のフレームワークに依存しています。
MegaManX

125

フレームワークをプロジェクトにドラッグするだけでは十分ではありません。それは同じ野球場にいるのに子供を見つけることができないようなものです。次の手順を実行します:

1)フレームワークを作成する

  • フレームワークを開発します。
  • COMMAND+ 開発が完了したら、+ Bフレームワークをビルドし、「Build Succeeded」が表示されることを確認します。

ここに画像の説明を入力してください

2)フレームワークにアクセスする

  • フレームワークプロジェクトが正常にビルドされるとProducts、プロジェクト内のフォルダーでアクセスできるようになります。

ここに画像の説明を入力してください

  • を右クリックして.framework、[Finderに表示] を選択します。

ここに画像の説明を入力してください

3)フレームワークをプロジェクトに配置する

  • .frameworkFinderウィンドウからアプリプロジェクトの「Framework」フォルダにドラッグアンドドロップします。

ここに画像の説明を入力してください

4)フレームワークのアプリプロジェクトを構成する

  • プロジェクトの最上位を選択します

ここに画像の説明を入力してください

  • ターゲットを選択してください

ここに画像の説明を入力してください

  • [ビルドフェーズ]、[バイナリをライブラリにリンク]の順に移動し、フレームワークがオプションのselectedに含まれいることを確認します。

ここに画像の説明を入力してください

  • 引き続き「ビルドフェーズ」で、左上に移動して+ボタンを選択します。ドロップダウンで、「新規コピーファイルフェーズ」を選択します。

ここに画像の説明を入力してください

  • 新しい[ファイルのコピー]セクションまでスクロールし、[ Destinationフレームワーク]に設定していることを確認します。サブパスは空のままにします。次に+、左下のボタンをクリックします。

ここに画像の説明を入力してください

  • プロジェクトの階層が表示されます。手順3でフレームワークを追加した「Frameworks」フォルダーまでスクロールするか、上部の検索バーでフレームワークを検索します。フレームワークを選択し、[追加]をクリックします。

ここに画像の説明を入力してください

  • フレームワークが「コードサインオンコピー」を選択して含まれていることを確認します。

ここに画像の説明を入力してください

5)クリーンしてプロジェクトを実行する

  • COMMAND+ SHIFT+K
  • COMMAND+R

5
いい視点ね。それは私にとってはほとんど機能します。Alamofireを含むフレームワークAを作成しました。私のホストアプリ(組み込みフレームワークA)はシミュレータで動作します。しかし、実際のiPhoneで実行しようとすると、エラーでクラッシュします。Alamofire:dyld:ライブラリがロードされていません:@ rpath / Alamofire.framework / Alamofire理由:適切な画像が見つかりません。見つけました:XXX / ddcdemo.app /フレームワーク/ iddc.framework /フレームワーク/ Alamofire.framework / Alamofire:マッハ-O、間違ったアーキテクチャ
DàChún

1
@Brandonフレームワークでオプションにすることで私の問題は解決しました。しかし、フレームワークをオプションにした場合の動作について教えてください。
Mitesh Dobareeya 2017年

2
ありがとうございました!あなたのステップ5では、「インストール時にのみコピーする」にチェックを入れていました。
アンディ

48

Swift3 / Xcode 8.1を使用してフレームワークを作成し、それをObjective-C / Xcode 8.1プロジェクトで使用していました。この問題を解決するには、でAlways Embed Swift Standard Librariesオプションを有効にする必要がありましたBuild Options

このスクリーンショットを見てください:

ここに画像の説明を入力してください


3
これは今私のために働いた。この問題の解決策は、BuildPhases->ファイルのコピー-> Destinationの下のFrameworkを選択し、フレームワークを追加することです。ライブラリがここにない可能性があります。
2016

@ハーリッシュ、あなたが提案しているソリューションはすでにいくつかによって提案されており、間違いなく私は最初にそれを担当します。私の場合、フレームワークはそこに追加されましたが、それでも同じ問題が発生しました。それから私はそれを一人で掘ります。あなたがこの解決策に反対票を投じた場合、私がそれが私の場合うまくいかなかったときにあなたのやり方についてかなり確信している理由がわかりません:S
NeverHopeless

@ハーリッシュありがとう。あなたの答えは私をさらに助け、もちろんNeverHopelessもそうしました:)ありがとうございました
Mohsin Khubaib Ahmed 2016

これは私にとってうまくいった唯一のことでした。しかし、私はすでにターゲットのEmbedded Binariesセクションにフレームワークを「埋め込み」ています。では、なぜこれが機能するのでしょうか?
guptron 2017

Swiftライブラリまたはポッドを使用して目的のCプロジェクトに埋め込む場合、これは素晴らしいことです。目的Cプロジェクトは、しばしば号に、このフラグを有する
Swaroop S

47

まず、Command + Option + Shift + Kの後にビルドを試みます。それでも失敗する場合は、以下の手順を実行してください。

Xcode 8でこのエラーが発生している場合は、ターゲットの[全般]タブでフレームワークのステータスを[ 必須]ではなく[ オプション]に変更してください。

ここに画像の説明を入力してください


3
これにより、ランタイムはフレームワークのクラスを認識しなくなります
tesla

@azimovは正しいです。私は現在、このジレンマに直面しています。Requiredは「画像が見つかりません」というエラーを引き起こし、それをオプションに設定しようとすると、実行時に「認識されないセレクター」でクラッシュします
Adam Mendoza

1
私のフレームワークはすでにリンクバイナリと埋め込みにありましたが、それでもコピーフェーズを追加する必要がありました。dyld:ライブラリが読み込まれていません:@ rpath / AFNetworking.framework / AFNetworking参照元:/ Users / {User} / Library / Developer / CoreSimulator / Devices / 6833A85C-5783-45FA-A4D5-991D286B28C2 / data / Containers / Bundle / Application / B1A0A3B2-92A2-41B0-9884-6DB6995A0D7E / MyApp.app / MyApp Reason:image not found(lldb)Solution:Project-> Target-> Build Phases-> + at top to add new Copy Files phase Destination = Frameworks Select the Frameworkコピーする必要があります
アダムメンドーサ

@AdamMendozaそのためにアプリを拒否されました。
jbouaziz

@jbouaziz、はい、発生する可能性のあるエラーは、.frameworkが太いためです。つまり、必要なarmv7 arm64のほかに、i386 x86_64などのiOSではサポートされていないアーキテクチャがあります。ストアではエラーが発生しますが、Xcodeでエラーが表示されない場合があります。Xcode-> Open Developer Tool-> Application Loaderでローダーを使用します。それは薄く表示させるSolutionL - > ikennd.ac/blog/2015/02/...
アダム・メンドーサ

28

iOS 9.xバージョンで同じ種類の問題が発生しました

問題IS:以下のエラーでアプリを開くとすぐにアプリがクラッシュします。

dyld:ライブラリがロードされていません:/System/Library/Frameworks/UserNotifications.framework/UserNotifications 参照元:/var/containers/Bundle/Application/######/TestApp.app/TestApp 理由:画像が見つかりません

フレームワークに変更Requiredすることでこの問題を解決しOptionalましLinked Frameworks and LibrariesUserNotifications.framework


これは機能します。なぜ誰かが知っていますか?一部のデバイスではこの設定が必要で、他のデバイスでは不要です。
NEO

「警告:プロセスでObjective-Cクラスデータを読み取るためのサポートコードを実行できませんでした。これにより、利用可能な型情報の品質が低下する可能性があります。」私のlibをオプションとしてマークする場合
BergP

それが機能したのかもしれない理由は、一部のフレームワークがシミュレーターで実行されなかったためです
Gowtham Sooryaraj

@ redent84この回答とあなたのコメントにより、私は気が狂うのを防ぎました。iOSの12を必要とAuthenticationServices.framework、この問題に遭遇した
タマシュSengel

26

私は、次の行を追加します(ここで述べたものの上)に持っていた実行パスの検索パスの下にビルド設定 ]タブ:
@executable_path/Frameworks

ここに画像の説明を入力してください


これで問題が解決しました。iOS 9アプリにアプリ拡張機能を追加した後、問題が発生し始めました。拡張機能を追加する前に、私のフレームワークは問題なく見つかりました。ファイルコピーのビルドフェーズを追加しても効果はなく、すでにフレームワークを埋め込んでいました。
グレッグ、

奇妙なことに、これはデフォルトでは含まれていません。解凍してIPAを確認すると、フレームワークはPayloads / appname.app / Frameworks /にあります。ただし、アプリが実行時にこのフォルダーを検索するためには、この検索パスを追加する必要があります。変だ。
mattv123 2017年

25

実行時にフレームワークがアプリケーションバンドルに確実にコピーされるように、新しいファイルコピービルドフェーズにフレームワークを追加する必要があります。

詳細については、「ファイルのコピービルドフェーズをターゲットに追加する方法」を参照してください。

公式Apple Docs:https : //developer.apple.com/library/mac/recipes/xcode_help-project_editor/Articles/CreatingaCopyFilesBuildPhase.html


多くのことを試した後、これは私のためにそれを解決したものです。Link BinaryとEmbed Frameworkにはすでにフレームワークがありました。コピーフェーズも追加する必要があるとは思いませんでしたが、これで修正されました。
アダムメンドーサ

14

Xcode 11以降を使用している場合:

  1. ターゲットの設定に移動し、[ 全般]を選択します。

ターゲット設定/全般

  1. [ フレームワーク、ライブラリ、埋め込みコンテンツ]まで下にスクロールします。

  2. 確認してください埋め込み&ログインまたは署名なしで埋め込むために選択された値を埋め込み、必要に応じてオプション。

フレームワーク、ライブラリ、埋め込みコンテンツセクション



11

驚いたことに、少なくともXcode 8の場合、必要な部分のすべてがここに記載されているわけではありません。

私のケースは、同じワークスペースの一部としてカスタムビルドされたフレームワークでした。正しく構築されていなかったことがわかりました。このスレッドに対するjeremyhuの最後の応答に基づく:

https://forums.developer.apple.com/thread/4687

フレームワークプロジェクトの下にDynamic Library Install Name BaseDYLIB_INSTALL_NAME_BASE)を設定してから再構築する必要がありました。これは誤ってに設定されていたため、に変更する必要がありました。Build Settings$(LOCAL_LIBRARY_DIR)@rpath

そのため、App Project のリンク処理段階では、アプリへのパス/Library/Frameworks/fw.Framework/fwではなく、ランタイムアプリ(ランタイムファイルシステムのルートなど)から実行時にフレームワークを動的にロードするようにホストアプリに指示していました。/Frameworks/fw.Framework/fw

他のすべての設定について:それはありませんで3ヶ所でなければならないBuild Phasesが、これらはあなただけにそれを追加したときに一度にすべてセットされているEmbedded Binariesの設定Generalホスティングアプリケーションのタブ。

私は追加のフェーズを設定する必要はありませんでしCopy Filesた。それは、埋め込み段階に関しては直感的に冗長であるようです。ビルドトランスクリプトの最後を確認することで、それが不要であることを確認できます。

PBXCp /Users/xyz/Library/Developer/Xcode/DerivedData/MyApp-cbcnqafhywqkjufwsvbzckecmjjs/Build/Products/Debug-iphoneos/MyFramework.framework

[多くの冗長な行が削除されましたが、Xcode UIの簡略化されたトランスクリプトからは明らかです。]

私はまだ持っていない何の Xcodeの設定理由アイデアDYLIB_INSTALL_NAME_BASE私に間違った値を。


1
ありがとう、これはXcode 11での私の問題であることが判明しました。以前は機能していた独自のフレームワークの1つをインポートしていましたが、「dyld:Library not loaded」エラーを発行し始めました。明確にするために、インポート先のプロジェクトではなく、インポートしようとしているフレームワークのプロジェクトで、ビルド設定「ダイナミックライブラリインストール名ベース」を「@rpath」に設定する必要があります。どういうわけかそれは「/ライブラリ/ Frameworks」に設定されました。
Ben Stahl

これが3年後に役に立ったとうれしく思います。それに応じて編集。
BaseZen

9

私の場合、解決策は、コンパイルされたフレームワークをワークスペースのスタンドアロンプ​​ロジェクトである埋め込みバイナリから削除し、クリーンアップして再ビルドし、最後に埋め込みバイナリに再度追加することでした。


8

私の環境:Cocos2d 2.0、Box2d、Objective C

上記の他の回答に加えて、私はついにGeneralタブに行き、WatchKitをオプションにしました。

ターゲットの一般的なリンクフレームワークとライブラリWatchkit.frameworkオプション


8

サードパーティのフレームワークを使用していて、依存関係マネージャーとしてCocoapodsを使用している場合は、を実行しpod installてポッドを更新してみてください。

このクラッシュは、私が使用していたサードパーティのライブラリで発生していたため、上記の解決策がうまくいったことをうれしく思います。


1
すごい!私の問題を修正しました。しかし、ホストアプリにポッドの依存関係をインストールしないようにする方法はありますか?
ダチュン2017

8

ここに画像の説明を入力してください

ビルドフェーズ->組み込みフレームワークで[インストール時のみコピー]をオフにすることで解決しました


1
「デバッグインストール」が「インストール」ではないとシステムが信じない場合は、このチェックボックスのポイントを知っておくとよいでしょう。とにかく、それが警告でアプリの実行を禁止する代わりにハードウェアでアプリのクラッシュを引き起こす場合、それはきちんとした別のXcodeの欠陥です
William Cerniuk

8

によって引き起こされる実行時エラーです Dynamic Linker

dyld: Library not loaded: @rpath/...
...
Reason: image not found

のエラーLibrary not loadedは、バイナリが見つからないことを@rpath示してDynamic Linkerいます。

  1. 動的フレームワークが追加されたかどうかを確認します General -> Embedded Binaries

  2. @rpathコンシューマー(アプリケーション)とプロデューサー(動的フレームワーク)の間の設定を確認します。

    • 動的フレームワーク:
      • Build Settings -> Dynamic Library Install Name
    • 応用:
      • Build Settings -> Runpath Search Paths
      • Build Phases -> Embed Frameworks -> Destination, Subpath

動的リンカー

Dynamic Library Install Name(LD_DYLIB_INSTALL_NAME)使用されているloadable bundleDynamic frameworkここで、誘導体として)をdyld遊びに来て
Dynamic Library Install Name、バイナリファイルへのパスを(ない.framework) - 。はい、彼らは同じ名前を持っていますが、MyFramework.frameworkあるpackaged bundleMyFramework内部のバイナリファイルとリソース。
ディレクトリへのこのパスは、絶対パスまたは相対することができ(例えば@executable_path@loader_path@rpath)。バンドルを単一のディレクトリとして配布するときに役立つアンカーと一緒に変更されるため、相対パスがより望ましい

絶対パス - Framework1

//Framework1 Dynamic Library Install Name
/some_path/Framework1.framework/subfolder1

@executable_path

@executable_path -エントリのバイナリに対して- Framework2
ユースケース:埋め込みDynamic frameworkアプリケーションに

//Application bundle(`.app` package) absolute path
/some_path/Application.аpp

//Application binary absolute path 
/some_path/Application.аpp/subfolder1

//Framework2 binary absolute path
/some_path/Application.аpp/Frameworks/Framework2.framework/subfolder1

//Framework2 @executable_path == Application binary absolute path
/some_path/Application.аpp/subfolder1

//Framework2 Dynamic Library Install Name 
@executable_path/../Frameworks/Framework2.framework/subfolder1

//Framework2 binary resolved absolute path by dyld
/some_path/Application.аpp/subfolder1/../Frameworks/Framework2.framework/subfolder1
/some_path/Application.аpp/Frameworks/Framework2.framework/subfolder1

@loader_path

@loader_path-このバイナリ
ユースケースの所有者であるバンドルに関連:フレームワークが埋め込まれたフレームワーク-Framework3_2が内部にあるFramework3_1

//Framework3_1 binary absolute path
/some_path/Application.аpp/Frameworks/Framework3_1.framework/subfolder1

//Framework3_2 binary absolute path
/some_path/Application.аpp/Frameworks/Framework3_1.framework/Frameworks/Framework3_2.framework/subfolder1

//Framework3_1 @executable_path == Application binary absolute path
/some_path/Application.аpp/subfolder1

//Framework3_1 @loader_path == Framework3_1 @executable_path
/some_path/Application.аpp/subfolder1

//Framework3_2 @executable_path == Application binary absolute path
/some_path/Application.аpp/subfolder1

//Framework3_2 @loader_path == Framework3_1 binary absolute path
/some_path/Application.аpp/Frameworks/Framework3_1.framework/subfolder1

//Framework3_2 Dynamic Library Install Name 
@loader_path/../Frameworks/Framework3_2.framework/subfolder1

//Framework3_2 binary resolved absolute path by dyld
/some_path/Application.аpp/Frameworks/Framework3_1.framework/subfolder1/../Frameworks/Framework3_2.framework/subfolder1
/some_path/Application.аpp/Frameworks/Framework3_1.framework/Frameworks/Framework3_2.framework/subfolder1

@rpath-ランパス検索パス

Framework2の

以前は、dyldで動作するようにフレームワークをセットアップする必要がありました。同じフレームワークを異なる構成で使用することはできないため、不便です

@rpath は、外側(アプリケーション)および入れ子(動的フレームワーク)のパーツに依存する複合概念です。

  • 応用:

    • Runpath Search Paths(LD_RUNPATH_SEARCH_PATHS)-で置換されるテンプレートのリストを定義し@rpathます。
       @executable_path/../Frameworks
    • Build Phases -> Embed Frameworks -> Destination, Subpath埋め込みフレームワークが正確に配置されている場所であるというレビュー
  • 動的フレームワーク:

    • Dynamic Library Install Name(LD_DYLIB_INSTALL_NAME)- @rpathバイナリへのローカルバンドルパスと一緒に使用される ポイント
      @rpath/Framework2.framework/subfolder1
//Application Runpath Search Paths
@executable_path/../Frameworks

//Framework2 Dynamic Library Install Name
@rpath/Framework2.framework/subfolder1

//Framework2 binary resolved absolute path by dyld
//Framework2 @rpath is replaced by each element of Application Runpath Search Paths
@executable_path/../Frameworks/Framework2.framework/subfolder1
/some_path/Application.аpp/Frameworks/Framework2.framework/subfolder1

* ../-現在のディレクトリの親に移動

otool -オブジェクトファイル表示ツール

//-L print shared libraries used
//Application otool -L
@rpath/Framework2.framework/subfolder1/Framework2

//Framework2 otool -L
@rpath/Framework2.framework/subfolder1/Framework2

//-l print the load commands
//Application otool -l
LC_LOAD_DYLIB
@rpath/Framework2.framework/subfolder1/Framework2

LC_RPATH
@executable_path/../Frameworks

//Framework2 otool -l
LC_ID_DYLIB
@rpath/Framework2.framework/subfolder1/Framework2

install_name_tool を使用して動的共有ライブラリのインストール名を変更する -rpath

CocoaPodsuse_frameworks![について]を使用してDynamic Linker

[単語]


6

最近、古いiphone(iPhone 6など)とXcode(11.3.1)でCoreNFCをインポートするときにこの問題が発生しました。私はそれを動作させることができました

  1. あなたにはプロジェクト、ターゲットを選択します。
  2. 後藤一般上部のタブ。
  3. フレームワーク、ライブラリ、埋め込みコンテンツ」セクションにフレームワークを追加します(私にとってはCoreNFCでした)。他のターゲットについて繰り返します。
  4. 上部にある[ ビルドフェーズ]をクリックし、[ バイナリとライブラリをリンク]を展開します。
  5. 厄介なフレームワークをオプションにします(必須から)。

これにより、コードを変更せずに古い/新しいiPhone向けにコンパイルできました。これが他の人の役に立てば幸いです。


1
ありがとうございました。それをオプションにすることはミッシングリンクでした...
fl034

が機能せず、アプリがクラッシュし、一部のアセンブリコードでブレークポイントの代わりにクラッシュタイプを示すメッセージが表示されません。
ニューソニック

なぜこれをオプションにする必要があるのですか?
rohitwtbs

5

同じ問題がありました。以前に使用したことのないiPhoneでプロジェクトをビルドしてみましたが、新しいフレームワークを追加していません。私にとって、クリーンアップはうまくいきました(Shift + Command + K)。Xcode 7のベータ5とiOS 9ベータのiPhone 6を使っているからかもしれませんが、うまくいきました。


そして、おそらくクリーンビルドフォルダーも(CMD + Shift + Alt + K)
Grifas

4

私の場合、私のプロジェクトはobjective-cによって書かれており、ライブラリにはSwiftファイルがあります。そこで、プロジェクトの[ビルド設定 ]タブで[ 常に埋め込むSwift標準ライブラリ]を [ はい ]に変更しました。


4

ポッドを使用するXcodeのプロジェクトまたはフレームワークプロジェクトの場合、動的ライブラリ(dylb)が読み込まれないようにする簡単な方法の1つは、ポッドファイルを静的モードでインクに設定することです。これを行うには、ポッドファイルに次の行を記述しないでください。

use_frameworks!

保存したファイルから行が削除されたら、コンソールから単に実行します。

$ pod update

2

開発ポッドがある場合は、ポッドからシミュレーターのインストールからアプリを削除します->クリーン->もう一度実行します...


2

新しい構成とビルドスキームを作成したときも同じです

だから私のための解決策は実行することでした

pod install

この新しく作成された構成の場合。


1

インターネットで利用できるすべての方法と自分自身の試行錯誤のトリックを100回試しました。ようやく解決できました。– Apeksha Sahu 6分前
にMacでiTunesにアクセス->アカウント->このコンピューターを認証– Apeksha Sahu 5分前の
2番目のステップ... iPadとiPhoneの設定で開発者に移動し、識別子を使用してインデックスを再作成し、信頼できるコンピューターすべてをクリアします。それは私のために働いた........ .......すべての証明書を更新した後、Mac OS High seria 10.13.15バージョンをMac OS seirraベータ最新バージョンから再インストールした後、Xcode最新バージョンを再インストールしました。etc etc etc ...私が考えたのと同じくらい多くの方法。–ここに画像の説明を入力してください


1

ビルド設定のフラグALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES(以前のxcodeバージョン:)Embedded Content Contains Swift CodeをNOからYESに変更してみてください。


1

Xcode 11

  1. ターゲットの設定に移動し、[全般]を選択します。
  2. 「フレームワーク、ライブラリ、埋め込みコンテンツ」を探す
  3. 「埋め込まない」を維持し、すべてのターゲット(複数ある場合)が他のターゲットではなく独自のフレームワークのみを設定していることを確認します。

1

ではXcodeの11

同じ問題に直面していた

変更「DOない埋め込み」[全般]タブ > 「フレームワーク、ライブラリ、および埋め込みコンテンツ」まだ同じエラーが結果ました。

私のために解決したことは、ビルドフェーズタブ > フレームワークの埋め込みセクションにフレームワークを追加することでした

- 更新しました - -

以前のバージョンのXcode Embed Frameworks Sectionでビルドされたプロジェクトで、Xcode 11で実行している場合では使用できないことがわかりました。解決策を達成するには、以下の手順を見つけてください。

1:最初に、[ ビルドフェーズ ]タブで新しいファイルのコピーフェーズを追加する必要があります。

ここに画像の説明を入力してください

2:2番目に、追加されたフェーズの名前をEmbed Frameworksに変更します。 ここに画像の説明を入力してください

3:宛先をフレームワークに変更します。

ここに画像の説明を入力してください

4:エラーが発生したフレームワークを追加します。

ここに画像の説明を入力してください


1

エンベデッドバイナリの下にフレームワークを埋め込むと誰もが言っていますが、それでも機能しません。ここに重要な1つのステップがないためです。

埋め込みバイナリタブの下にバイナリを追加するための正しい2つの手順を次に示します。

  1. エラーが発生しているフレームワークを[全般]タブの[リンクされたフレームワークとライブラリ]から削除します。

  2. 次に、削除されたフレームワークを[埋め込みバイナリ]タブの下にのみ追加します。

デバイス上で実行し、その笑顔を保つ;)


0
  1. xcodeのファイルに移動->ワークスペース設定
  2. / Users / apple / Library / Developer / Xcode / DerivedDataの横にある矢印をクリックします
  3. 派生データを選択してゴミ箱に移動します。
  4. xcodeをかなり開いて、もう一度開きます。
  5. プロジェクトをクリーンアップして、再度実行します。

上記の手順は私の問題を解決しました。


0

簡単な解決策は、次のスクリーンショットに従ってください。クラッシュが解消されます。

ここに画像の説明を入力してください

注意:これはXcode 11.5です


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.