我有一个包含库的项目。如果我选择库作为构建目标,它将成功构建。如果我选择项目作为目标,我会出现链接器错误 Undefined Symbols for Architecture x86_64:
和 undefined symbol 列表。
奇怪的是 - 所有这些符号都是标准的东西,例如 "_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 代码,则不会发生这种情况。
关于swift - Apple Mach-O 链接器错误。 "_OBJC_CLASS_$_SwiftObject"和基金会未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195905/