【发布时间】:2014-03-03 09:38:49
【问题描述】:
我刚刚将 cocoapods 添加到我的项目中,但无法让我的构建脚本再次运行。我使用此命令进行构建:
xcodebuild -workspace MyProject.xcworkspace -scheme MyScheme SYMROOT=./build
但是,当我执行构建时,它会失败并显示错误消息 ld: library not found for -lPods。
如果我在没有 SYMROOT 集的情况下构建,它可以正常工作。但我更愿意保留 SYMROOT 参数,这样我就可以像以前一样保持我的归档逻辑。
到目前为止,我的结论是,由于设置了 SYMROOT,xcodebuild 无法找到已构建的 Pods 库。我该如何解决这个问题?
编辑:
我对构建后的文件结构进行了一些调查:
- 如果我没有设置 SYMROOT,那么在包含二进制文件的文件夹中会有一个 libPods.a 文件 (
Library/Developer/Xcode/DerivedData/MyProject-eegsyonkmltdqhggwyqytoqbwath/Build/Products/)。 - 如果我如上所述设置 SYMROOT,libPods.a 文件不会出现在 ./build 中
因此,pod 文件构建的输出似乎设置不正确。那么这是 xcodebuild 中的问题,还是有办法确保将 pod 文件构建到该文件夹中?
下图显示了两个目录中构建输出的比较,以使其更清晰:
【问题讨论】:
-
您是否使用 ONLY_ACTIVE_ARCHS=NO 进行构建? xcodebuild 默认情况下没有设置它
-
是的,ONLY_ACTIVE_ARCHS 已在项目文件中设置为 NO。另请参阅我对上述问题的编辑。