我们正在开发提供给客户的Swift库。为了加快对该库的测试,我们决定仅替换 our 测试中的一些代码:
Foo.swift
:
#if SPEEDYTEST
workaround()
#else
realCode()
#endif
FooTest.swift
:
#if SPEEDYTEST
fastTest()
#else
realTest()
#endif
请注意,此处不能使用DEBUG
,因为我们将主模块的调试版本提供给客户端以进行 测试,而客户端应始终使用realCode()
。 (客户未获得我们的测试模块。)
问题是:我告诉XCode在测试目标上设置SPEEDYTEST
,但不会将其传播到主要目标的构建作业中。也就是说,执行了fastTest()
和realCode()
,这不是我想要的。
重复主要目标(多个,因为iOS和macOS已经有两个)的简短操作-我真的不想做,因为保持它们的同步是PITA-我怎么能得到那个编译器标记转发到主要目标/模块了?