dyld:未加载库...原因:找不到合适的图像

时间:2017-10-12 08:06:57

标签: swift xcode cocoapods alamofire

最近我收到了我需要构建和部署到TestFlight的应用程序源代码。不幸的是,每当我尝试在我的测试设备上以调试模式运行应用程序或从TestFlight安装的应用程序时,它都无法开始抛出以下错误消息:

dyld: Library not loaded: @rpath/Alamofire.framework/Alamofire
  Referenced from: /var/containers/Bundle/Application/77FB1F81-25F5-4670-ACF1-F814543B9A0E/MyApp.app/MyApp
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/77FB1F81-25F5-4670-ACF1-F814543B9A0E/MyApp.app/Frameworks/Alamofire.framework/Alamofire: code signing blocked mmap() of '/private/var/containers/Bundle/Application/77FB1F81-25F5-4670-ACF1-F814543B9A0E/MyApp.app/Frameworks/Alamofire.framework/Alamofire'
    /private/var/containers/Bundle/Application/77FB1F81-25F5-4670-ACF1-F814543B9A0E/MyApp.app/Frameworks/Alamofire.framework/Alamofire: code signing blocked mmap() of '/private/var/containers/Bundle/Application/77FB1F81-25F5-4670-ACF1-F814543B9A0E/MyApp.app/Frameworks/Alamofire.framework/Alamofire'
    /private/var/containers/Bundle/Application/77FB1F81-25F5-4670-ACF1-F814543B9A0E/MyApp.app/Frameworks/Alamofire.framework/Alamofire: code signing blocked mmap() of '/private/var/containers/Bundle/Application/77FB1F81-25F5-4670-ACF1-F814543B9A0E/MyApp.app/Frameworks/Alamofire.framework/Alamofire'

该应用使用COCOAPODS作为依赖关系管理器。在Podfile中有TRON pod,它取决于我们遇到的Alamofire框架问题。 在提交和调试版本期间,应用程序已成功构建,签名和验证。因此它似乎与证书或配置文件无关。但我无论如何都重新创建了证书和配置文件。 (虽然我认为这不是因为应用程序成功提交到app商店)。该应用程序的开发人员构建并运行应用程序没有任何问题。我们检查了使用过的工具和库的版本,它们似乎是不同的。 (xcode版本,cocoapods版本,pods依赖项)。 我甚至尝试构建安装了所有依赖项(pod安装)的源代码。

在SO上有类似的问题,但是当他们遇到这个问题时,他们似乎并没有处理COCOAPODS。解决方案通常涉及手动嵌入框架。但这不是我们的合适解决方案,因为通过COCOAPOD脚本集成了所有的demandencies。

还有什么可能导致问题?

4 个答案:

答案 0 :(得分:9)

这是iOS 13.3.1的问题。当在个人供应配置文件/开发人员帐户上运行时,所有编译到最新版本的iOS 13.3.1的动态框架都遇到此问题。

您可以:

使用非个人团队设置配置文件(付费开发者帐户)。 在13.3.1仿真器上运行。 在运行13.3或更低版本的真实iOS设备上进行测试。 但是,此问题将在13.4 Beta版中得到解决。

答案 1 :(得分:2)

问题与特定应用无关。构建任何应用程序即使是最简单的应用程序也会产生相同的错误。

通过重新安装 Apple全球开发者关系认证中心解决,即使它尚未过期

步骤:

  1. 打开钥匙串访问
  2. 从登录和系统密钥链中删除证书
  3. https://developer.apple.com/certificationauthority/AppleWWDRCA.cer下载证书并将其安装到两个钥匙串。 (双击它)
  4. JIC:删除配置文件,清理项目,重新启动xcode / Mac: - )

答案 2 :(得分:0)

在我的情况下,问题与Apple全球开发者关系认证机构有关,我通过变更信任从始终使用系统默认值来解决它。

  • 打开钥匙串访问
  • 右键单击Apple Worldwide Developer Relations Certification Authority并选择获取信息
  • 展开信任
  • 使用此证书时更改以使用系统默认值

答案 3 :(得分:0)

pod 文件中删除或注释#use_frameworks 并清理构建文件夹。它对我有效。