このクラッシュはブロッキングの問題でした、基本的に私は問題を再現するために次のステップを使用しました:
起動するとすぐにアプリがクラッシュしました。コンソールログは次のとおりです。
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のデバイスでビルドしようとしました、それらは両方とも同じクラッシュをしています。しかし、私はアプリをビルドしてシミュレータ上でうまく実行することができます。また、フレームワークを 必須 から オプション in ライブラリとのバイナリリンク に変更することもできますが、問題は完全には解決されませんでした。 Dog のインスタンスを作成するとクラッシュしました。動作はデバイスとシミュレータによって異なります。ベータ版のXcodeを使用してデバイス用のフレームワークを配布することはできないと思います。誰もがこれに光を当てることはできますか?
ターゲットの General タブには、 Embedded Binaries というフィールドがあります。そこにフレームワークを追加するとクラッシュは解決します。
参照は ここ アップルデベロッパフォーラムにあります。
ターゲットの[General]タブの[Embedded Binaries]セクションにフレームワークを追加します。これにより、フレームワークがコンパイル済みにコピーされ、実行時にリンクできるようになります。
なんでこんなことが起こっているの? : リンクしているフレームワークは動的にリンクされたフレームワークとしてコンパイルされているため、実行時にリンクされます。
注: /カスタムフレームワークの埋め込みはiOS> 8でのみサポートされているため、古いバージョンのiOSで機能する代替ソリューションが続きます。
あなたがこのフレームワークに影響を与えている(ソースコード/ビルドプロセスにアクセスできる)場合は、このフレームワークを動的リンクではなく静的リンクに変更することができます。これにより、実行時にリンクされるのではなく、コードがコンパイル済みのアプリケーションに含まれるようになり、フレームワークを埋め込む必要がなくなります。
使い方: フレームワークのBuild SettingタブのLinkingセクションで、 Mach-O Type をStatic Libraryに変更します。これで、フレームワークを埋め込みバイナリの下に含める必要がなくなります。
アセットを含める: イメージ、オーディオ、xib/nibファイルなどを含めるには、バンドル(基本的にはディレクトリ、詳細はこちらbit.ly/ios_bundle)を作成し、NSBundleを使用してバンドルからアセットを読み込むことをお勧めします。
フレームワークをプロジェクトにドラッグするだけでは十分ではありません。それは同じ野球場にいるのですが、あなたの子供を見つけることができないということです。次の手順を実行します:
1)フレームワークを作成する
COMMAND
name __ + B
name__でフレームワークをビルドし、「Build Succeeded」と表示されることを確認します。2)あなたのフレームワークにアクセスする
Products
name__フォルダーにアクセスできるようになります。.framework
を右クリックして「Show in Finder」を選択してください。3)プロジェクトにフレームワークを配置する
.framework
をドラッグアンドドロップします。4)フレームワーク用にアプリプロジェクトを設定する
+
ボタンを選択してください。ドロップダウンで、[新しいファイルコピーフェーズ]を選択します。Destination
name__を "Frameworks"に設定したことを確認します。サブパスを空のままにします。次に、左下の+
ボタンをクリックしてください。5)きれいにしてからプロジェクトを実行してください
COMMAND
name __ + SHIFT
name __ + K
name__COMMAND
name __ + R
name__IOS 9.xバージョンでも同じような問題がありました
問題です: 以下のエラーでアプリを開くとすぐにアプリがクラッシュします。
dyld:ライブラリがロードされていません:/System/Library/Frameworks/UserNotifications.framework/UserNotifications 参照元:/var/containers/Bundle/Application/######/TestApp.app /TestApp 理由:画像が見つかりません
私はこの問題を解決するために、Linked Frameworks and Libraries
フレームワークのUserNotifications.framework
でRequired
をOptional
に変更しました。
私は(ここで述べたことに加えて)Build Settingstab)の下のRunpath Search Pathに次の行を追加しなければなりませんでした。@executable_path/Frameworks
実行時にフレームワークがアプリケーションバンドルに確実にコピーされるようにするには、フレームワークを新しいファイルのコピービルドフェーズに追加する必要があります。
「ファイルをコピーするビルドフェーズ」を自分のターゲットに追加する方法 詳細を参照してください。
公式Apple Docs: https://developer.Apple.com/library/mac/recipes/xcode_help-project_editor/Articles/CreaatingACopyFilesBuildPhase.html
私の場合の解決策は、ワークスペース内のスタンドアロンプロジェクトである組み込みバイナリからコンパイル済みフレームワークを削除し、それをクリーンアップして再構築し、最後に組み込みバイナリに追加することでした。
驚くべきことに、少なくともXcode 8に関して、必要な部分のすべてがここに文書化されているわけではありません。
私の場合は、同じワークスペースの一部としてカスタムビルドされたフレームワークでした。それは間違って造られていたことがわかります。このスレッドに対するjeremyhuの最後の返信に基づいて:
https://forums.developer.Apple.com/thread/4687
Framework)のDynamic Library Install Name Base
の下にDYLIB_INSTALL_NAME_BASE
Build Settings
)を設定してから再構築する必要がありました。誤って$(LOCAL_LIBRARY_DIR)
に設定され、@rpath
に変更する必要がありました。
そのため、リンク処理段階では、ホストアプリケーションに実行時に_(App-to-App/Library/Frameworks/fw.Framework/fw
ではなく)/Frameworks/fw.Framework/fw
ファイルシステムのルートなど)から動的にロードするように指示していました。
他のすべての設定に関して:it _(doesはBuild Phases
内の3か所になければなりませんが、ホスティングアプリケーションのGeneral
タブのEmbedded Binaries
設定に追加すると、これらはすべて同時に設定されます。
私はnotを追加のCopy Files
フェーズを設定する必要がありました。これはとにかく埋め込み段階に関して直感的に冗長に思えます。ビルドトランスクリプトの末尾をチェックすることによって、それが不要であることを保証できます。
PBXCp /Users/xyz/Library/Developer/Xcode/DerivedData/MyApp-cbcnqafhywqkjufwsvbzckecmjjs/Build/Products/Debug-iphoneos/MyFramework.framework
[多くの冗長な行は削除されたが、Xcode UIの単純化された書き起こしから明らかである。]
私にはまだnoXcodeがDYLIB_INSTALL_NAME_BASE
の値を間違って設定している理由があります。
サードパーティのフレームワークを使用していて、依存関係マネージャとしてCocoapodを使用している場合は、pod install
を実行してポッドを更新してみてください。
このクラッシュは私が使用しているサードパーティのライブラリで発生していたので、上記の解決策がうまくいってくれて嬉しいです。
私は同じ問題を抱えていました。私はこれまで使ったことのないiPhoneで自分のプロジェクトを構築しようとしましたが、新しいフレームワークを追加しませんでした。私にとっては、クリーンアップはうまくいきました( Shift + Command + K )。たぶん、私はXcode 7のベータ5とiOS 9ベータのiPhone 6を使っていますが、うまくいったのでしょう。
開発ポッドを持っている場合ポッドからシミュレータインストールからあなたのアプリを削除します - >クリーン - >もう一度実行してください...
私の場合、私のプロジェクトはObjective-Cで書かれており、ライブラリにはSwiftファイルがあります。そこで私は "常に標準ライブラリを埋め込む" 私のプロジェクトの ビルド設定 タブを はい に変更し、それは全く問題なくなった。
インターネット上で利用可能なすべての方法と私自身の試行錯誤を100回試した後。ついに私はそれを解決することができました。 - Apeksha Sahu 6分前
マックでiTunesに行く - >アカウント - >このコンピューターを認証する - Apeksha Sahu 5分前
第2ステップ.... iPadおよびiPhoneの設定で開発者に移動し、識別子を使用してインデックスを付け直し、すべてのコンピュータを信頼します。それは私のために働いた........ .......すべての証明書を更新した後、Xcodeの最新バージョンを再インストールするために、Mac OS seirra beta最新バージョンからMac OSHigh seria 10.13.15バージョンを再インストールした後。 etc etc etc ...あなたが私がしたと思うことができるのと同じくらい多くの方法。 -
ビルド設定のフラグALWAYS_EMBED_Swift_STANDARD_LIBRARIES
(以前のxcodeバージョンではEmbedded Content Contains Swift Code
)をNOからYESに変更してみてください。
私が新しい Configuration and Build Schemeを作成したときも同じことが言えました。
だから私のための解決策は実行することでした
pod install
この新しく作成された設定に対して。
上記の手順で問題が解決しました。