【发布时间】:2013-08-06 02:20:28
【问题描述】:
我正在尝试为我们的应用开发项目设置一个 Jenkins CI 实例。我的工作使用 Debug 配置运行逻辑和应用程序测试,但由于在编译期间出现链接错误,我正在努力构建 IPA。
ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)
该应用使用 Cocoapods,我正在使用 Jenkins XCode 插件进行构建。
我搜索了类似的问题并尝试/验证了一堆东西:
- 我正在使用工作区。
- 我在 xcodebuild 步骤之前运行
pod install。 - 我检查了项目本身的架构、目标和 Pod 是否相同——标准(armv7、armv7s)——正如this answer 所建议的那样
- 我尝试了this GitHub thread的各种解决方案
- 我根据this answer 和类似设置尝试了派生数据位置的各种设置
- Podfile 指定
platform :ios, :deployment_target => "6.0"
那时我不知道还有什么可以尝试的。
【问题讨论】:
-
您确定要编译工作区而不是项目吗?如果您还没有,请尝试使用 Jenkins Xcode 插件并指定“Xcode 工作区文件”。 Xcode 插件也可以帮助清除任何其他可能的误导。上周我遇到了同样的问题,花了几个小时才意识到我让 Jenkins 编译了 Xcode 项目,而不是 Xcode 工作区。另外,直接到 Jenkins 正在编译的项目的实际,在 Xcode 中打开它,看看你是否可以自己编译它 - 通过 Xcode 调试它也会更容易。
-
是的,绝对是使用工作区而不是项目。正如我所说,我有一个非常相似的配置,可以很好地运行逻辑和应用程序测试。
-
我知道,我知道,这很烦人......如果你也没有尝试过,也许这个页面(FAQ 中的#4)可能会有所帮助 - github.com/CocoaPods/CocoaPods/wiki/…
-
您使用什么版本的 Xcode 构建? Xcode5 和 Jenkins 有一些奇怪之处。
-
自从升级到 Xcode5 后,我在这里遇到了同样的问题。在 Xcode 中工作正常,但在
xcodebuild时失败。