ios - 架构 x86_64 的 Xcode 9 undefined symbol

标签 ios iphone xcode llvm xcode9

切换到 Xcode 9 后我收到错误,看起来像这样。

enter image description here

我删除了项目和类名称,但是有一个以 .o 后缀结尾的类列表。在 Xcode 8.3.2 中一切正常。我有 2 个项目,一个是构建没有问题的库。另一个项目是测试应用程序,它通过 Podfile 中的 :path 指令指向库。在这两个项目中,build settings -> architectures 设置为 standard arichitectures,Build active architectures only 设置为 DEBUG: Yes, RELEASE: No。你遇到过这个问题吗?预先感谢您的帮助。

最佳答案

遇到了类似的问题。只需将它张贴在这里,以防它可以帮助任何人。

在我们应用程序的 Objective-c 类 B 中使用来自框架(用 Swift 3 和我们自己编写)的类 AbcService。从 Xcode8/Swift3 升级到 Xcode9/Swift4 后,它未能构建一个release 配置的存档,由于链接期间此类的Undefined symbols 错误:

Undefined symbols for architecture arm64:
   "_OBJC_CLASS_$__TtC15XxxabcServices17AbcService", referenced from:

奇怪的是,存档调试配置以及在模拟器中运行时效果很好。

花了将近 1 天的时间才找出根本原因:框架中的 Swift 类 AbcService 缺少一个 public 修饰符。

关于ios - 架构 x86_64 的 Xcode 9 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46418947/

相关文章:

iOS:NSASCIIStringEncoding 无法正确编码某些字符

iphone - 点符号 - 它需要参数吗?

iphone - 一个 UITableView 中的多个 UITableViewCell 类?

ios - 为什么我们的应用程序大小急剧增加而功能几乎没有变化?

ios - AVAudioPlayer 在 Debug模式下抛出断点

ios - 将委托(delegate)协议(protocol)一致性添加到纯 swift 类

iphone - NSUserDefaults 同步的最佳实践

ios - 在 native 应用程序中访问 package.json 版本和构建变量的最佳方法?

iphone - iOS:如何将不使用后台音频、Voip、GPS 的应用程序保留在后台?

ios - 尺寸等级的约束在哪里更新?