这只发生在一台机器上,即 Mac mini 构建服务器。对于armv7s也有同样的错误。它适用于多个 Ubuntu 构建代理和我的本地计算机 (Macbook Pro)。这些服务器都有相同的:
- XCode 版本 (5.0)
- Podfile/Podfile 锁定
- Pod 缓存(在每台机器上清除它)
- Maven 版本 (3.1.1)
- Cocoapods 版本 (0.29.0)
使用的 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/