这个崩溃是一个阻塞问题,我使用以下步骤来重现这个问题:

创建一个Cocoa Touch框架项目 添加一个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

I have tried to build on iOS 7.1 and 8.0 devices, they both have the same crash. However, I can build an app and run on the simulator fine. Also, I am aware that I can change the framework to form Required to Optional in Link Binary With Libraries, but it did not completely resolve the problem, the app crashed when I create an instance of Dog. The behavior is different on the device and simulator, I suspect that we can't distribute a framework for the device using a beta version of Xcode. Can anyone shed light on this?


当前回答

在Xcode 11中

我也面临着同样的问题

在“常规”选项卡>“框架、库和嵌入式内容”中更改“不要嵌入”仍然会导致相同的错误。

为我解决了什么是在构建阶段选项卡>嵌入框架部分添加框架

——更新

我观察到,在Xcode 11中运行时,在以前版本的Xcode中构建的项目中,嵌入框架部分不可用,请找到以下步骤来实现解决方案:

1:首先需要在Build Phases选项卡下添加New Copy Files Phase。

2:第二,将添加的阶段名称更改为Embed Frameworks

3:将目标更改为Frameworks。

4:添加发生错误的框架。

其他回答

我的环境:Cocos2d 2.0, Box2d, Objective C

除了做上面的其他答案,我最后去了General选项卡,并使WatchKit可选。

如果有人仍然遇到这个问题,尽管遵循了许多其他答案中概述的所有步骤,您可能需要撤销并重新创建您的代码签名证书,如下所示:

https://developer.apple.com/library/ios/qa/qa1886/_index.html

您需要将框架添加到一个新的Copy Files Build Phase,以确保框架在运行时被复制到应用程序包中。

有关更多信息,请参阅如何将“复制文件构建阶段”添加到我的目标。

官方苹果文档:https://developer.apple.com/library/mac/recipes/xcode_help-project_editor/Articles/CreatingaCopyFilesBuildPhase.html

在嵌入式二进制文件中添加框架

然后清洁和建造。

在目标的General选项卡中,有一个Embedded Binaries字段。当你在那里添加框架时,崩溃就解决了。

参考资料在苹果开发者论坛。