加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – Xcode 8:存档构建失败(对于嵌套框架),链接错误.常规构建

发布时间:2020-12-14 17:35:49 所属栏目:百科 来源:网络整理
导读:编辑 似乎已经深入研究了它在调试模式下构建但在发布模式下不构建的问题.仍然试图理解为什么它建立在一个而不是另一个 原始问题 我有一个Xcode工作区,具有以下结构. 工作区: UIProject FrameworkA FrameworkB FrameworkB嵌套在FrameworkA中,因此FrameworkA
编辑
似乎已经深入研究了它在调试模式下构建但在发布模式下不构建的问题.仍然试图理解为什么它建立在一个而不是另一个

原始问题

我有一个Xcode工作区,具有以下结构.

工作区:

> UIProject
> FrameworkA
> FrameworkB

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

项目/目标配置

> Bitcode已启用
>仅将Build Active Architecture设置为NO(尝试’是’也是)
> Xcode 8 with swift 3.0

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

>尝试将Archive设置为Debug(而不是编辑架构中的默认Release):NO LUCK
>为UIProject创建了一个单独的工作区,并将框架二进制文件导入到该工作区中.档案成功:工作量很大(但不是我想要的)

解决方法

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

所以我找出了导致发布模式构建问题的参数.它是“Swift编译器 – 代码生成:优化级别”.它有三个值

>无[-Onone]

>调试的默认值
>也适用于我的发布.

>快速,单文件优化[-O]
-Works发布

>很可能是我要设定的价值

>快速,整体模块优化[-O -whole-module-optimization]

>发布的默认值
>这会导致休息

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

我的框架也都在Swift中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读