题 dyld:库没有加载cocoapods 0.37和Xcode 6.3


我一直在阅读有关错误的所有问题:

dyld: Library not loaded: @rpath/Bolts.framework/Bolts Referenced from: /private/var/mobile/Containers/Bundle/Application/1542F906-CCE1-4181-AC7C-B5E3EE50E7D7/eBikeMotion.app/eBikeMotion Reason: no suitable image found. Did find:

这使我的应用程序无法在真实设备中运行(但它在模拟器中运行没有任何问题。 直到某一点我认为这是我正在安装的框架的一个问题,但在手动安装之后,抛出错误的原始版本,Alamofire和下一个抛出错误的框架是按字母顺序排列的下一个框架(螺栓,如你可以在代码片段中看到) 所以我得出的结论确实是产生这些错误的CocoaPods。我有一个干净安装的最后一个版本(0.37),我试图创建一个新项目,我已经尝试了所有提出的解决方案,没有任何运气,所以我必须打开一个问题,与希望有人能帮助我。

问候。


17
2018-05-05 12:36


起源


你有没有解决方案? - neo D1
试试我在@ neoD1下面发布的解决方案 - Jorge Revuelta
是的,我会试着让你现在 - neo D1


答案:


在重新安装整个系统并且没有找到解决方案后,我发现CocoaPods正常运行所必需的一些构建阶段缺失了。

此问题的解决方案适用于后续步骤:

  1. 解开cocoapods项目(你可以安装该工具 sudo gem install cocoapods-deintegrate)。

cocoapods-deintegrate在Github上

  1. 修改你的Podfile:

    您应该定义目标链接 link_with 'ProjectName'

    您应该为pod定义目标: target 'ProjectName' do [豆荚] end

  2. 安装使用 pod install

  3. 执行此操作后,转到XCode并检查以下设置:

    在项目设置中,在“配置”下,检查在Debug和Release中,您有一个名为的配置集 Pods-ProjectName.[debug|release]

    进入你的目标,在“构建阶段”下,你应该有三个应该命名的新阶段: Check Pods ManifestEmbed Pods Frameworks 和 Copy Pods Resources

  4. 制作一个干净的,然后构建,然后运行到您的设备。

而已。


38
2018-05-11 11:18



link_with 不再支持:C - NoodleOfDeath


在我的情况下,我按照@Jorge的上述回答,但它没有解决问题。确切的错误有点不同,因为丢失的文件是 @rpath Pods.framework/Pods。我终于在CocoaPods问题#3586的帮助下解决了这个问题:

转到目标>常规>链接的框架和库部分 将Pods.framework和Pods_target.framework都设置为 Optional

还在试图弄明白为什么......这个答案有一些信息: 什么 - 做 - 它 - 平均到弱链接一个框架


25
2018-06-05 01:16



在Xcode 7beta3以后,Enable Bitcode选项默认设置为true。然后你仍然会得到警告 -weak_framework is treated as -framework when ENABLE_BITCODE=YES换句话说,将框架标记为Optional是被忽略的,因此在设备上运行仍然失败。现在我已禁用Bitcode,但稍后会出现问题。 - mluisbrown
我刚刚删除了旧的libPods.a并且它有效。 - gabbler
一小时后,这是帮助我的唯一解决方案!谢谢@suz - Mário Carvalho
这让我走得更远 - 可执行文件开始 - 但失败了 dyld: lazy symbol binding failed 当它真的想要使用框架时。 - Raphael


我不得不解决两个问题:

  1. 然后转到每个目标 Build Phases 然后 Link Binary With Libraries 并选择 Pods.framework。将其设置为 Optional

  2. Cocoapods没有为我的第二个目标创建所需的运行脚本。我的第一个目标是所有脚本。第二个没有。所以我将所有丢失的运行脚本从第一个目标复制到第二个目标。您需要点击左上角的小“+”符号,添加运行脚本并粘贴其他目标的脚本。我已经这样做了 Check Pods Manifest.lockCopy Pods Resources 和 Embed Pods Frameworks

然后它确实在设备上运行。最后。


11
2017-07-24 14:53



与版本0.38.2有同样的问题。似乎它仍然是一个问题...在我的情况下,它没有创建 Embed Pods Frameworks 两个目标的脚本。 - Zac
只做第1步对我有用!谢谢! - DTHENG
差不多花了一天时间,我遗漏的一件事就是Embed Pods Frameworks脚本。你在睡觉前救了我一天 - mdonati


有同样的问题将pods添加到WatchKit Extension。将主要目标与Watch应用程序链接起来并不是最佳选择。发现cocoapod 0.37.2尚未在构建阶段添加“Embed Pods Frameworks”脚本。

脚本: "${SRCROOT}/Pods/Target Support Files/Pods-ExtensionName/Pods-ExtensionName-frameworks.sh"


2
2018-06-23 18:36





为了让cocoapods生成构建阶段Check Pods Manifest,Embed Pods Frameworks和Copy Pods资源:

1 - 转到构建阶段并删除任何自定义修改。我必须删除Link Binary With Libraries阶段下的所有内容。

2 - 做一个pod解体(或者只是自己删除文件)

3 - 运行新的pod安装

这对我有用。如果没有第一步,它就永远不会。


0
2017-10-06 09:51





要解决此问题,您需要在构建阶段为链接二进制文件更改状态,以便pod_projectName.framework和Bolt.framework

我在项目中遇到了同样的错误。

在CommonCrypto.framework中获取错误

通过将Required更改为Optional来解决错误


0
2018-04-10 11:12