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

iOS: dyld: Library not loaded: @rpath/CocoaLumberjack.framework/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

有谁知道为什么模拟器和设备有区别吗?

非常感谢你的帮助。

嗯,区别很简单:

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

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