这只发生在一台机器上,一台 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,它的源代码被直接粘贴到另一个添加到该项目的私有(private) pod 中。我不知道为什么,因为我没有开发它,而开发它的开发人员也不在。 TTTAttributedLabel 的源代码以某种方式进行了自定义,因此我不太愿意更改它,因为这是一个生产版本。
所以我有一个主项目,其中包括一个私有(private) pod,它的源代码中直接包含来自 TTTAttributedLabel 的代码。
私有(private) pod 确实安装正确。 TTTAttributedLabel 文件包含在私有(private) pod 的编译源中。 libPods.a 似乎在 XCode 中正确链接。主项目和 pod 的有效架构都是相同的(armv7 和 armv7s)。
在过去约 6 小时内,我尝试了几乎所有可以在互联网上找到的答案。
为什么这个服务器找不到这些符号?为什么它在任何地方都有效,但在这里却无效?
最佳答案
前几天我遇到了这个问题,我不得不清除缓存,然后通过运行以下命令重新安装 pod:
rm -rf "${HOME}/Library/Caches/CocoaPods"
rm -rf "`pwd`/Pods/"
pod update
然后使用 Cmd+Shift+K 清理工作区
关于ios - ld : symbol(s) not found for architecture armv7 when using CocoaPods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21444576/