我有一个带库的项目。如果我选择库作为构建目标,则它将成功构建。如果我选择项目作为目标,则将出现链接器错误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项目时,一切都将成功构建。
答案 0 :(得分:0)
我也遇到了非常类似的问题。我试图通过将@objc和@objMember放在所有必需的东西之前,从swift框架构建一个静态库,以使obj-c可以访问该静态库,但您却遇到了类似的错误。但这很奇怪,因为它可以在框架中工作,而在代码所有者的演示应用程序中也可以工作,但是当我将其安装在我的机器上时却失败了...
添加空白的swift文件已为我修复。我猜需要在应用程序中加载一些快速库,如果没有公开的快速代码,则不会发生。