我们的应用程序有一个包含9个不同目标的大型Xcode项目。它们在品牌,API-url和其他较小的差异方面有所不同。 它们都使用相同的文件/类/故事板,只有某些构建设置,bundleID,appGroups等不同。分隔它们的代码中的逻辑只是相同文件中的预先宏。
当我在Storyboard中更改某些内容时,它会重新编译整个故事板。由于它是一个非常大的故事板,它需要一段时间。我的问题是它编译每个目标。因此,当我进行更改时,它会编译整个故事板九次次,并且需要很长时间。既然它们是在这些目标之间共享的完全相同的故事板,为什么它不能编译一次并共享编译结果?
每当我在Storyboard中更改可视化内容时,或者每次我在故事板中更改了一些小内容并尝试构建/运行目标到设备时,它都会在状态栏中显示:
Building "MyTargetOne": | Compiling 1 of 1 Storyboard files
[...]
Building "MyTargetTwo": | Compiling 1 of 1 Storyboard files
[...]
Building "MyTargetThree": | Compiling 1 of 1 Storyboard files
etc.
即使我尝试运行特定目标,并且该目标是编译行中的第一个目标,它仍会在考虑成功构建应用程序之前编译其余目标。
如何防止这种情况,只构建我正在运行的那个? 我知道编辑器 - >自动刷新视图,但这并没有真正帮助,除了它没有显示我在故事板中做的事情。它仍然在我构建/运行时构建所有目标。
答案 0 :(得分:0)
在不同的目标上使用相同的文件总是很痛苦。
如果您的应用部署目标是iOS8及更高版本,您可以尝试使用故事板创建动态框架(Cocoa Touch Framework)并将目标的二进制文件与其链接。