Apple Mach-O 链接器错误。 “_OBJC_CLASS_$_SwiftObject” 和基础未定义

Apple Mach-O Linker error. "_OBJC_CLASS_$_SwiftObject" and Foundation undefined

我有一个包含库的项目。如果我将 select 库作为构建目标,它会成功构建。如果我 select 项目作为目标,我有链接器错误 Undefined symbols for architecture x86_64: 和未定义符号列表。 奇怪的是——所有这些符号都是标准的东西,比如 "_OBJC_CLASS_$_SwiftObject""Foundation.URLRequest.httpBody.setter : Foundation.Data?""Swift.String.init(Swift.Substring) -> Swift.String".

当我从构建中删除 SawtoothProtobuf.pb.swift 文件时,这个错误消失了。但是,当仅构建包含此文件的 lib 项目时,一切都会成功构建。

我也 运行 遇到了一个非常相似的问题。我试图通过将 @objc 和 @objMember 放在所有必需的东西前面,从 swift 框架构建一个 obj-c 可以访问的静态库,但我遇到了与您类似的错误。这很奇怪,因为它在框架中工作,在代码所有者的演示应用程序中工作,但是当我在我的上安装它时它失败了...

添加空白 swift 文件为我修复了它。我想需要将一些 swift 库加载到应用程序中,如果没有暴露的 swift 代码,则不会发生这种情况。