ios - ld : symbol(s) not found for architecture armv7 when using CocoaPods

标签 ios xcode maven xcodebuild cocoapods

这只发生在一台机器上,即 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/

相关文章:

maven - 如何禁用 Java 编辑器中出现的 Intellij "Enable Automatic Synchronization"警告?

java - FrameworkUtil.getBundle 总是返回 NULL

iPhone:键盘挡住屏幕

ios - 如何在 SwiftyJSON 中解析数组和数组数组?

ios - 升级到 Mavericks 后 Xcode 编译时间非常慢

ios - 将 Head 版本从 http 获取到 bundle 版本

ios - 从底部覆盖控制中心屏幕边缘平移?

ios - NSCache UIImage 数据从一个 ViewController 传递到另一个 ViewController

ios - Interface Builder 不允许我删除按钮

jakarta-ee - Maven tomcat7-maven-plugin 找不到错误