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

xzv2uavs  于 2023-04-10  发布在  Swift
关注(0)|答案(1)|浏览(124)

我有一个大型的Xcode项目,混合了Swift和Objective C代码库。我的目标之一是QuickLook插件,它使用任何Swift文件。
当构建QuickLook目标时,每个引用ObjC类的Swift文件(在主目标中正确桥接)都会报告 “Cannot find type in scope” 错误-即使这些Swift类都没有包含在给定的目标中。
我尝试在发布和调试时将SWIFT_COMPILATION_MODE更改为singlefile,但没有帮助。为了绝对确保没有Objective C类在此目标中导入任何Swift文件,我还设置了一个预处理器宏来保护包含Project-Swift.h文件。我找不到一个标志来在构建时完全跳过Swift编译阶段。
Swift文件是否会自动编译,不管我做什么,也不管它们的目标成员是谁?

jpfvwuh4

jpfvwuh41#

对于未来与之斗争的人:
当编译QuickLook扩展时,即使是模拟器,它也会尝试编译任何可能包含它的其他目标。我有一个旧的构建目标,不再维护。在某些时候,该目标的桥接头已经落后于实际项目,并且由于某种原因,Xcode对每个Swift类都抛出错误。
检查所有包含扩展的目标,甚至测试,并确保它们正确编译,或者完全删除它们。
这些错误在日志或UI中与特定目标没有关联,这可能是Xcode错误。

相关问题