这只发生在一台Mac mini构建服务器上。它与armv7s有相同的错误。它适用于几个Ubuntu构建代理和我的本地机器(Macbook Pro)。这些服务器都具有相同的功能:
正在使用的pod是TTTAttributedLabel:
[INFO] Undefined symbols for architecture armv7s:
[INFO] "_kCTUnderlineStyleAttributeName", referenced from:
[INFO] -[TTTAttributedLabel commonInit] in libPods.a(TTTAttributedLabel.o)
但TTTAttributedLabel并未用作pod,它的源代码直接粘贴到另一个添加到此项目的私有pod中。我不知道为什么我没有开发它,开发人员也没有。 TTTAttributedLabel的来源是以某种方式定制的,所以我觉得改变它并不舒服,因为这是一个生产版本。
所以我有一个主项目,其中包含一个私有pod,它直接在其源代码中包含来自TTTAttributedLabel的代码。
私有pod确实已正确安装。 TTTAttributedLabel文件包含在私有pod的编译源中。 libPods.a似乎在XCode中正确链接。主项目和pod的有效架构都是相同的(armv7和armv7s)。
在过去的约6个小时里,我已经尝试过在互联网上找到的每一个答案。
为什么这台服务器找不到这些符号?为什么它在任何地方都可以工作呢?
答案 0 :(得分:3)
前几天我有这个,我必须清除缓存,然后运行以下命令重新安装pod:
rm -rf "${HOME}/Library/Caches/CocoaPods"
rm -rf "`pwd`/Pods/"
pod update
然后使用Cmd + Shift + K
清洁工作区答案 1 :(得分:-1)
问题是cocoapods版本0.23.0(或低于0.29.0)。即使构建服务器有0.29.0,构建实际上是使用Ruby的system()
命令在Rails子shell中运行的。这意味着它也使用了Rails包,它只有cocoapods 0.23.0。