避免为单个目标编译 Swift 个文件

Avoid compiling Swift files for a single target

我有一个大型 Xcode 项目,其中包含 Swift 和 Objective C 代码库。我的目标之一是 QuickLook 插件,它 使用任何 Swift 文件。

构建 QuickLook 目标时,每个 Swift 引用 ObjC 类 的文件(在主要目标中正确桥接)报告 “无法在范围内找到类型” 个错误 — 尽管 none 个 Swift 类 包含在给定的目标中。

我尝试将发布和调试的 SWIFT_COMPILATION_MODE 更改为 singlefile,但没有帮助。为了绝对确保没有 Objective C 类 导入此目标中的任何 Swift 文件,我还设置了一个预处理器宏来保护 Project-Swift.h 文件的包含。我找不到在构建时完全跳过 Swift 编译阶段的标志。

它们是否 Swift 无论我做什么,无论它们的目标成员如何,它们都会自动编译?

对于将来遇到此问题的任何其他人:

编译 QuickLook 扩展时,即使对于模拟器,它也会尝试编译可能包含它的任何其他目标。我有一个旧的构建目标,不再维护。在某些时候,该目标的桥接头落后于实际项目,并且由于某种原因,Xcode 为每个 Swift class.

抛出错误

遍历所有包含您的扩展的目标,甚至是测试,并确保它们正确编译,或者完全删除它们。

错误与日志或 UI 中的特定目标无关,这可能是一个 Xcode 错误。