此崩溃是一个阻塞问题我使用以下步骤来重现此问题:
该应用程序在启动时立即崩溃,以下是控制台日志:
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设备上构建,它们都有相同的崩溃。然而,我可以建立一个应用程序,并运行在模拟器上罚款。此外,我知道我可以改变框架的形式要求到可选在链接二进制与库,但它并没有完全解决问题,应用程序崩溃时,我创建一个实例的狗。在设备和模拟器上的行为是不同的,我怀疑我们不能使用测试版的Xcode为设备分发框架。有人能解释一下这件事吗?
在Target's General选项卡中,有一个Embedded Binaries字段。当您在那里添加框架时,崩溃就解决了。
参考在这里苹果开发者论坛。
在Target's General选项卡下的Embedded Binaries部分添加框架。这将把框架复制到编译后的框架中,以便在运行时可以链接到它。
为什么会出现这种情况?:因为您要链接的框架被编译为动态链接框架,因此在运行时被链接到。
**注意:**嵌入自定义框架仅在iOS(>)中支持;8,因此采用了一种适用于较旧版本iOS的替代解决方案。
如果您影响这个框架(有权访问源代码/构建过程),您可以将这个框架更改为静态链接,而不是动态链接。这将导致代码包含在编译后的应用程序中,而不是在运行时链接到,因此框架将不必嵌入。
**方法:**在Framework的Build Setting选项卡下的Linking部分,将Mach-O类型更改为Static Library。您现在应该不需要将框架包含在嵌入式二进制文件中。
包括资产:为了包括图像,音频或XIB/NIB文件等内容,我建议创建一个bundle(本质上是一个目录,更多信息请参见bit.ly/ios_bundle),然后使用nsbundle从bundle加载资产。
仅仅将框架拖到项目中是不够的。这就像在同一个球场上却找不到你的孩子一样。请执行以下步骤:
1)创建框架
2)访问您的框架
3)在项目中放置框架
4)为框架配置应用程序项目
按钮。
5)清理,然后运行项目