这在 Apple 开发中经常出现——当使用 bitcode 提交到应用商店时,你当然必须包含完整的 bitcode ( -fembed-bitcode
)。但是有这种中间“标记”模式的原因是什么,它包括部分而不是位码本身?这一定是有原因的,为什么它经常被打开用于调试版本。
自从在 Xcode 9(以前的 8.2)中打开我的项目以来,几个静态库和框架目标无法编译并出现大量错误。这种循环依赖错误总是位于顶部。
一个例子是 libzip 的静态库目标。问题源于系统 zlib 库的单个 #include:
#include <zlib.h>
Run Code Online (Sandbox Code Playgroud)
大多数目标可以通过使用构建设置启用模块(C 和 Objective-C)禁用模块来解决此问题。
我有一个 Swift/C 框架,它定义了几个模块,但这不是解决方案。
许多错误都与 相关tgmath.h
,这因模块使用不当而臭名昭著。我不确定为什么 tgmath 甚至被包含在内 - 它在 Darwin 模块映射中被明确标记。我很想检查,<module-includes>:28
但我不知道如何检查。
这是编译错误的示例。有人知道如何在 Xcode 9 中解决这个问题吗?
#include <zlib.h>
Run Code Online (Sandbox Code Playgroud)