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

iOS:dyld:未加载库:@rpath/cocoalamberjack.framework/cocoalamberjack,ios,objective-c,iphone,cocoalumberjack,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: imag

我正在尝试将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只将实际的应用程序包复制到您的设备上。因此,为了使其正常工作,您需要将cocoalamberjack.framework添加到
嵌入框架
构建阶段。这将把框架复制到应用程序包中的
Frameworks
子文件夹中,以便您的应用程序二进制文件可以找到它


如果没有
嵌入框架
构建阶段,您可以通过构建阶段选项卡左上角的添加按钮添加
新复制文件构建阶段
,然后选择
框架
作为目标。另一个选项是选择General选项卡,向下滚动,然后在
嵌入式二进制文件部分下添加框架。

好吧,区别很简单:

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


如果没有
嵌入框架
构建阶段,您可以通过构建阶段选项卡左上角的添加按钮添加
新复制文件构建阶段
,然后选择
框架
作为目标。另一个选项是选择“常规”选项卡,向下滚动,然后在
嵌入二进制文件
部分下添加框架。

如何在Xcode 8.3.1中添加嵌入框架的选项?您可以通过构建阶段选项卡左上角的添加按钮添加新的复制构建阶段,然后选择
框架
作为目标。另一个选项是选择“常规”选项卡,向下滚动,然后在
嵌入二进制文件
部分下添加框架。如何在Xcode 8.3.1中添加嵌入框架的选项?您可以通过构建阶段选项卡左上角的添加按钮添加新的复制构建阶段,然后选择
框架
作为目标。另一个选项是选择General选项卡,向下滚动,然后在
嵌入式二进制文件
部分下添加框架。