このクラッシュはブロックの問題であり、次の手順を使用して問題を再現しました。
- 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 LibrariesでRequiredをOptionalにできることはわかっていますが、問題は完全に解決されず、 Dogのインスタンスを作成するとアプリがクラッシュしました。デバイスとシミュレータで動作が異なります。Xcode のベータ版を使用してデバイス用のフレームワークを配布することはできないのではないかと思います。誰かこれについて説明できますか?
ベストアンサー1
ターゲットの[全般]タブには、 [埋め込みバイナリ]フィールドがあります。そこにフレームワークを追加すると、クラッシュは解決されます。
参照はここApple Developer Forums で。