Swift dyld:未加载库 - 使用 CocoaPods
Posted
技术标签:
【中文标题】Swift dyld:未加载库 - 使用 CocoaPods【英文标题】:Swift dyld: Library not loaded - using CocoaPods 【发布时间】:2015-10-23 15:28:12 【问题描述】:对于这个问题似乎被问得过多,我深表歉意,但无论我问了多少相关问题的答案,它们似乎都不起作用。请参阅(按顺序)here、here、here 和 here。
我正在使用 CocoaPods 运行 Xcode 6.4 和 ios 8(仅限 iPhone)。提供了许多其他答案,似乎有一个构建设置,或者我的 Xcode 版本中不存在的一般设置,产生了许多没有帮助的结论。
作为参考,我关注了This CocoaPods Tutorial,它很容易工作。但只有当我尝试将应用程序加载到手机上时(是的,我有有效的证书,并且我的其他应用程序在不使用其他依赖项的情况下运行良好),应用程序在即将加载时立即崩溃。
dyld: Library not loaded: @rpath/Pods_ExamplePods.framework/Pods_ExamplePods
Referenced from: /private/var/mobile/Containers/Bundle/Application/F109A377-3EA4-48C2-9042-CB6C384C9F30/ExamplePods.app/ExamplePods
Reason: image not found
(lldb)
在此处查看我将应用命名为“ExamplePods”的位置
然后这是我的文件夹结构,在工作区模式下打开。请注意,只有 3 个依赖项。
然后查看“常规设置”和“构建设置”
我完全不知所措,非常感谢您的帮助!
【问题讨论】:
【参考方案1】:我遇到了同样的问题。就我而言,我嵌入了框架并使用了 CocoaPods。
以下步骤为我解决了这个问题:
-
转到 Target 的构建阶段
将“嵌入框架”阶段移至“[CP] 嵌入 Pods 框架”和“[CP] 复制 Pods 资源”阶段下方。
希望对遇到此问题的其他人有所帮助。
【讨论】:
【参考方案2】:我遇到了同样的问题,下面的解决方案解决了。
在链接框架和库中(在构建阶段),将 Pods.framework 标记为可选而不是必需。
【讨论】:
【参考方案3】:这是一个已知的可可豆问题。见https://github.com/CocoaPods/CocoaPods/issues/3903
您可以降级可可豆荚。或者使用该帖子中提到的方法:完全删除“兼容版本”,将其留空。 可以将一个简单的脚本添加到 Podfile 以自动执行此操作:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['DYLIB_COMPATIBILITY_VERSION'] = ''
end
end
end
然后清理您的项目并运行 pod install。
【讨论】:
这看起来像是一个不同的问题 - 这是对不兼容库版本的修复,这是关于缺少二进制图像的。【参考方案4】:我看到您也收到了警告。警告是这样的吗?
ld:警告:-weak_framework 与 -bitcode_bundle 一起使用时被视为 -framework(Xcode 设置 ENABLE_BITCODE=YES)。根据标头中的可用性标记,仍可能发生弱链接
如果是这样,您应该尝试保持框架的弱链接并禁用位码..
在此处找到此屏幕截图。
如果这不起作用,请尝试禁用您没有编译的任何其他内容。检查 pod 更新等。
【讨论】:
你能把截图链接到原始答案吗? 您不应该在应用程序目标上禁用位码,因为这是提高性能所必需的以上是关于Swift dyld:未加载库 - 使用 CocoaPods的主要内容,如果未能解决你的问题,请参考以下文章
dyld:库未加载:@rpath/MyDSK.framework/MyDSK -> SWIFT iOS 8.0
dyld:库未加载...原因:找不到合适的图像 Xcode Swift
在设备上的 tvOS Top Shelf Extension 中使用 Alamofire 时出现“dyld:未加载库”错误
AWS SAM CLI 全新安装引发错误 - dyld:未加载库:@executable_path/../.Python