我们在xcode中有400多个目标。它仍然可以正常工作,但是必须通过保留相同的代码库但没有所有可能减慢xcode的目标来更好地进行设置。
Android Studio可让您更新应用程序名称,该名称将从磁盘加载该文件夹,以便仅加载要运行的项目和程序。在不是XCode的情况下,所有目标均可用。
已经有好几年了,但是现在有更好的方法了,有数百个不涉及Git或Branching的目标?关于这个的问题是古老的,仅对于几个项目,我们在这里谈论数百个。
答案 0 :(得分:4)
您的问题缺少足够的上下文来提出具体建议,但总的来说...
如果可以的话,将明智的事情组合成一个(或多个)框架目标。框架不仅可以是动态库中的精美包装,还可以包含辅助工具等。
如果对现有目标进行逻辑分组,则可以将其分为各自的Xcode项目。将它们放在自己的项目中后,您可以创建一个引用这些单独项目的工作区。即使合并的工作区可以在所有工作中预先加载(我不认为这样做),您仍然可以打开并使用单独的项目,以便在处理组件时获得快速而流畅的体验。
如果您有大量目标,例如一个目标需要A
,B
和C
,而另一个目标需要B
,C
,{{ 1}},那么您实际上可以将D
,A
,B
和C
放在静态库中,并依靠链接器从每个单独的对象中删除未使用的代码目标。显然,这不会减少您拥有的目标数量,但是您可以使静态库成为自己的项目,并将其包含在公共工作区中。这也将加快编译速度,因为文件只需要编译一次。
如果您的目标只是用硬编码的参数包装一些外部构建工具/脚本(我已经看到了),您实际上可以将ton of existing variables从xcode传递给这些外部工具,并消除“重复的”目标。同样,如果您的某些目标只是彼此的排列,则可以添加新方案。我见过的一个很好的例子是,人们为“消毒”(地址消毒剂等)构建了单独的目标,而您可以创建一个消毒方案而不是目标。
如果您的某些目标正在做诸如棉绒之类的事情,那么您可以改用脚本构建阶段来调用linter,而不用使用单独的目标来进行。
Xcode可以具有使用Script构建阶段(以及如上所述使用可变参数)简单地调用外部工具/脚本的目标。如果您已经将另一个构建系统(make,cmake等)用于另一个平台,则可以这样做。仅将Xcode用于Mac / iOS特定目标,并将其他所有内容卸载到跨平台构建系统。
如果构建系统以Xcode理解的格式输出错误,则该错误甚至会显示与本机Xcode目标相同的文件和行错误。我见过人们围绕外部工具编写薄包装,以捕获解析并将错误重新打印成这种格式。