修改 似乎已经深入研究了它在调试模式下构建但在发布模式下不构建的问题。仍然试图理解为什么它建立在一个而不是另一个
原始问题
我有一个具有以下结构的Xcode工作区。
工作区:
FrameworkB嵌套在FrameworkA中,因此FrameworkA依赖于FrameworkB。两者都是我创建的自定义框架。
它构建并编译好。当我尝试存档它时,我收到以下错误:
Undefined symbols for architecture armv7:
"ADI4ONS.Connection4ONS.connectionStat.getter : Swift.Bool", referenced from:
type metadata for AircraftServices.connection in Connection.o
"ADI4ONS.Connection4ONS.connectionStat.setter : Swift.Bool", referenced from:
type metadata for AircraftServices.connection in Connection.o
"ADI4ONS.Connection4ONS.connectionStat.materializeForSet : Swift.Bool", referenced from:
type metadata for AircraftServices.connection in Connection.o
"ADI4ONS.Connection4ONS.connectionString.getter : Swift.String", referenced from:
type metadata for AircraftServices.connection in Connection.o
"ADI4ONS.Connection4ONS.connectionString.setter : Swift.String", referenced from:
type metadata for AircraftServices.connection in Connection.o
"ADI4ONS.Connection4ONS.connectionString.materializeForSet : Swift.String", referenced from:
type metadata for AircraftServices.connection in Connection.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
其中ADI4ONS是frameworkB,AircraftServices是FrameworkA。欢迎任何帮助。
项目/目标配置
尝试实验 我试过的一些事情
尝试将Archive设置为Debug(而不是编辑架构中的默认版本):NO LUCK
为UIProject创建了一个单独的工作区,并将框架二进制文件导入其中。档案成功:工作量很大(但不是我想要的)
答案 0 :(得分:3)
好的,经过大量的研究和实验,这是我的结果。
所以我想出了在Release模式构建中导致问题的参数。它是“Swift编译器 - 代码生成:优化级别”。它有三个值
我试图更多地研究WMO,但没有深入研究它。好像它是在Xcode 7中引入的。
我的框架也都在Swift中。