iOS:dyld:未加载库:@ rpath / CocoaLumberjack.framework / CocoaLumberjack

时间:2017-04-10 19:38:15

标签: ios objective-c iphone cocoalumberjack

我试图将CocoaLumberjack作为框架实现,并且它在模拟器上工作正常但是当我尝试在我的iPhone上使用它时,我收到了这个错误:

dyld: Library not loaded: @rpath/CocoaLumberjack.framework/CocoaLumberjack
  Referenced from: /var/containers/Bundle/Application/3EF12D55/myApp.app/CocoaLumberjackSample
  Reason: image not found

你们中的任何人都知道为什么模拟器和设备之间存在差异?

我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:4)

嗯,区别很简单:

每当您在模拟器中运行应用程序时,它都可以访问同一构建文件夹中的任何其他构建产品,例如框架。这就是为什么你不在模拟器中遇到这个问题。在您的iOS设备上有不同的故事,因为Xcode只会将实际的应用包复制到您的设备。因此,为了使其工作,您需要将CocoaLumberjack.framework添加到Embed Frameworks构建阶段。这会将框架复制到应用程序包中的Frameworks子文件夹中,以便您的应用程序二进制文件可以找到它。

enter image description here

如果您没有Embed Frameworks构建阶段,可以通过构建阶段选项卡左上角的添加按钮添加New Copy Files Build Phase,然后选择Frameworks作为目标。另一个选项是选择常规选项卡,向下滚动,然后在Embedded Binaries部分下添加您的框架。