[英]Error: ld: library not found for -lPods with CocoaPods
在我使用 Cocoapods 安装 DTCoreText ( https://github.com/Cocoanetics/DTCoreText ) 后,当我尝试运行模拟器或设备时,总是出现错误!
ld: warning: directory not found for option '-L/Users/example/Desktop/ios/Pods/build/Release-iphoneos'
ld: warning: directory not found for option '-L/Users/example/Desktop/ios/Pods/build/Debug-iphoneos'
ld: library not found for -lPods-example
clang: error: linker command failed with exit code 1 (use -v to see invocation)
在我的“Link Binary With Libraries”中,“libPods”部分是红色的:
这是我的构建设置:
我的项目的设置:
我的 Pod 的设置:
编辑:
我不确定是什么问题,但是当我删除所有 DTCoreText 和 Cocoapods 内容并重新安装所有内容时,我解决了它!
建议尝试以下对我有用的方法:
a) 从目标设置视图中的“库”中搜索并双击以检查Library Search Paths
的值
b) 列出$(inherited)
两个值$(inherited)
和$(PROJECT_DIR)/Pods/build/Debug-iphoneos
。 删除后者。
c) 彻底清理、构建和运行
d) 再次运行pod install
。 请注意,该条目未恢复。
这也可能有帮助:
确保您打开的是 .xcworkspace 文件,而不是 .xcodeproj
在我链接的二进制文件中,我同时拥有libPods.a
和libPods-MyProj.a
。 我之前已经将我的 Podfile 更新为有两个单独的目标(以使其在 Swift 中通过桥接编译测试),这意味着我必须手动删除旧的libPods.a
依赖项。
我发现我的其他链接器标志构建设置中缺少$(inherited)
。 应用此选项修复了我看到的缺少库的问题。
我发现选择“查找隐式依赖项”(在产品/编辑方案下)将解决此问题,而不必添加 pod 作为目标。
在目标的构建设置页面中查找“库搜索路径”。 将 Debug 的文件夹名称从 Debug-iphoneos 更改为 Debug-iphonesimulator
确保缺失的 pods 库得到实际构建。 为此,请打开构建方案
Product > Scheme > Edit Scheme... > Build
添加 Pods 目标并将其放在抱怨库丢失的目标之前(在我的情况下,这是 UI 测试 - 我只是为此挣扎了几个小时......)
造成这个问题的原因有很多。
我们需要检查:
$(inherited)
故障排除: http : //guides.cocoapods.org/using/troubleshooting.html
对我来说,错误是:Pods 目标不包含 i386 所需的架构切片。 因此,我单击了 Pods 项目 --> Pods-ProjectName 目标,然后在构建设置中,将Debug和Release 的Build Active Architecture Only 设置为 NO 。 这可确保构建模拟器和设备切片。 模拟器使用i386架构,实际设备使用x86-64。 所以你必须确保所有依赖项目的所有依赖目标都同时构建,如果你想同时在模拟器上运行和侧面加载到设备。
使用App扩展时,导航到扩展目标,过滤到库搜索路径,删除编译警告给你的路径。
在Build Settings
从VALID_ARCHS
删除armv7
为我解决了这个问题(Xcode 10.3)。 我能有后才提交armv7s
, arm64
和arm64e
在VALID_ARCHS
。
首先我跑了
sudo rm -r /Library/Developer/CommandLineTools
删除命令行工具目录。 然后我再次安装了命令行工具
xcode-select --install
这为我解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.