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

use*_*482 1 iphone objective-c ios 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
Run Code Online (Sandbox Code Playgroud)

你们都知道为什么模拟器和设备之间的区别吗?

非常感谢您的帮助。

Jen*_*der 5

好吧,区别很简单:

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

在此处输入图片说明

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