我试图将CocoaLumberjack作为框架实现,并且它在模拟器上工作正常但是当我尝试在我的iPhone上使用它时,我收到了这个错误:
dyld: Library not loaded: @rpath/CocoaLumberjack.framework/CocoaLumberjack
Referenced from: /var/containers/Bundle/Application/3EF12D55/myApp.app/CocoaLumberjackSample
Reason: image not found
你们中的任何人都知道为什么模拟器和设备之间存在差异?
我非常感谢你的帮助。
答案 0 :(得分:4)
嗯,区别很简单:
每当您在模拟器中运行应用程序时,它都可以访问同一构建文件夹中的任何其他构建产品,例如框架。这就是为什么你不在模拟器中遇到这个问题。在您的iOS设备上有不同的故事,因为Xcode只会将实际的应用包复制到您的设备。因此,为了使其工作,您需要将CocoaLumberjack.framework添加到Embed Frameworks
构建阶段。这会将框架复制到应用程序包中的Frameworks
子文件夹中,以便您的应用程序二进制文件可以找到它。
如果您没有Embed Frameworks
构建阶段,可以通过构建阶段选项卡左上角的添加按钮添加New Copy Files Build Phase
,然后选择Frameworks
作为目标。另一个选项是选择常规选项卡,向下滚动,然后在Embedded Binaries
部分下添加您的框架。