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
部分下添加您的框架。
我正在尝试将 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
部分下添加您的框架。