gpt4 book ai didi

ios - Xcode 8 : Archive build fails (for nested frameworks) with link errors. 常规构建编译成功

转载 作者:可可西里 更新时间:2023-11-01 05:43:10 24 4
gpt4 key购买 nike

编辑似乎这个问题已经深入到它在 Debug模式下构建而不是在 Release模式下构建的事实。仍然试图理解为什么它构建在一个而不是另一个中

原始问题

我有一个具有以下结构的 Xcode 工作区。

工作区:

  1. UI项目
  2. 框架A
  3. 框架B

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。欢迎任何帮助。

项目/目标配置

  1. 启用比特码
  2. Build Active Architecture only 设置为 NO(试过“Yes as well”)
  3. Xcode 8 和 swift 3.0

尝试过的实验我尝试过的一些事情

  1. 尝试将 Archive 设置为 Debug(而不是编辑架构中的默认 Release):运气不好

  2. 为 UIProject 创建了一个单独的工作区,并将框架二进制文件导入其中。存档成功:效果很好(但不是我想要的)

最佳答案

好的,经过大量的研究和实验,这是我的结果。

所以我找出了在 Release模式构建中导致问题的参数。它是“Swift 编译器——代码生成:优化级别”。它具有三个值

  1. 无 [-Onone]
    • 调试的默认值
    • 也适用于我的发布。
  2. 快速的单文件优化 [-O]-作品发布
    • 很可能是我要设置的值
  3. 快速,整个模块优化 [-O -whole–module-optimization]
    • 发布的默认值
    • 这导致休息

我试图对 WMO 进行更多研究,但没有深入研究。好像它是在 Xcode 7 中引入的。

而且我的框架都在 Swift 中。

关于ios - Xcode 8 : Archive build fails (for nested frameworks) with link errors. 常规构建编译成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39605194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com