这个崩溃是一个阻塞问题,我使用以下步骤来重现这个问题:

创建一个Cocoa Touch框架项目 添加一个swift文件和一个类Dog 为设备构建一个框架 在Swift中创建一个单视图应用程序 导入框架到应用程序项目 从ViewController中的框架实例化swift类 在设备上构建并运行应用程序

应用程序在启动时立即崩溃,这是控制台日志:

dyld: Library not loaded: @rpath/FrameworkTest03.framework/FrameworkTest03
  Referenced from: /var/mobile/Applications/FA6BAAC8-1AAD-49B4-8326-F30F66458CB6/FrameworkTest03App.app/FrameworkTest03App
  Reason: image not found

I have tried to build on iOS 7.1 and 8.0 devices, they both have the same crash. However, I can build an app and run on the simulator fine. Also, I am aware that I can change the framework to form Required to Optional in Link Binary With Libraries, but it did not completely resolve the problem, the app crashed when I create an instance of Dog. The behavior is different on the device and simulator, I suspect that we can't distribute a framework for the device using a beta version of Xcode. Can anyone shed light on this?


当前回答

对于Xcode中使用pod的任何项目或框架项目,避免动态库(dylb)不加载的一个简单方法是将pod文件设置为静态模式。要做到这一点,只需确保不要在pod文件中写入以下行。

use_frameworks!

一旦行从你保存的文件中删除,只需从控制台运行:

$ pod update

其他回答

如果您正在使用第三方框架,并使用Cocoapods作为依赖管理器,请尝试执行pod安装来刷新您的pod。

这个崩溃发生在我正在使用的第三方库上,所以很高兴上面的解决方案对我有用,希望它对你有用!

如果有人仍然遇到这个问题,尽管遵循了许多其他答案中概述的所有步骤,您可能需要撤销并重新创建您的代码签名证书,如下所示:

https://developer.apple.com/library/ios/qa/qa1886/_index.html

我在iOS 9中遇到了同样的问题。x版本

ISSUE IS: App crashes as soon as I open the app with below error.

dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserNotifications Referenced from: /var/containers/Bundle/Application/######/TestApp.app/TestApp Reason: image not found

我已经解决了这个问题,在链接框架和库UserNotifications.framework框架中将Required更改为Optional。

当我创建一个新的配置和构建方案时,也会发生同样的事情。

所以我的解决办法就是逃跑

pod install

这个新创建的配置。

进入xcode ->工作空间设置文件 点击旁边的箭头,出现/Users/apple/Library/Developer/Xcode/DerivedData 选择Derived数据并将其移动到Trash。 然后重新打开xcode。 清理项目并再次运行。

以上步骤解决了我的问题。