【问题标题】:cocoapods command line build failscocoapods 命令行构建失败
【发布时间】: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 库。我该如何解决这个问题?

编辑:

我对构建后的文件结构进行了一些调查:

  1. 如果我没有设置 SYMROOT,那么在包含二进制文件的文件夹中会有一个 libPods.a 文件 (Library/Developer/Xcode/DerivedData/MyProject-eegsyonkmltdqhggwyqytoqbwath/Build/Products/)。
  2. 如果我如上所述设置 SYMROOT,libPods.a 文件不会出现在 ./build 中

因此,pod 文件构建的输出似乎设置不正确。那么这是 xcodebuild 中的问题,还是有办法确保将 pod 文件构建到该文件夹​​中?

下图显示了两个目录中构建输出的比较,以使其更清晰:

【问题讨论】:

  • 您是否使用 ONLY_ACTIVE_ARCHS=NO 进行构建? xcodebuild 默认情况下没有设置它
  • 是的,ONLY_ACTIVE_ARCHS 已在项目文件中设置为 NO。另请参阅我对上述问题的编辑。

标签: xcode5 cocoapods


【解决方案1】:

而不是使用xcodebuild -workspace MyProject.xcworkspace -scheme MyScheme SYMROOT=./build

试试这条线:

xcodebuild -workspace MyProject.xcworkspace -scheme MyScheme SYMROOT=$(PWD)/build

希望这会对您有所帮助。

解释here.

【讨论】:

  • 它确实有效。唯一的区别是 ./build 被替换为 $(PWD)/build。因此它向 xcodebuild 发送绝对路径而不是相对路径。有些东西烂了.... :-)
  • 我来这里是为了寻找一个完全不同的问题,即“资源包已过时”的问题,这终于解决了一切......非常感谢!
  • 这很低,即使对于 Xcode (7.2)。没有错误消息或任何东西,它只是不构建 pod 项目,然后因链接错误而失败
  • 这仍然对我不起作用,我仍然收到错误:
    ld: library not found for -lFontAwesomeKit clang: error: linker command failed with exit code 1 (use -v to see invocation)
  • 已经对项目设置进行了一些更改 - 刚刚做了git reset --hard HEAD 并再次尝试了它,它成功了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-18
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 2022-06-29
  • 1970-01-01
  • 2018-03-11
相关资源
最近更新 更多