代码之家  ›  专栏  ›  技术社区  ›  Mike Flynn

数百个目标,xcode配置中的相同代码基

  •  5
  • Mike Flynn  · 技术社区  · 6 年前

    我们在xcode中有400多个目标。它仍然可以正常工作,但是必须有更好的方法来设置它,方法是保持相同的代码基,但不要有所有可能减慢xcode速度的目标。

    已经很多年了,但是现在有没有更好的方法,有数百个目标不涉及Git或分支?与此相关的问题已经很老了,而且只针对少数项目,我们在这里讨论了数百个问题。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Brad Allred    6 年前

    你的问题缺乏足够的背景来提出具体的建议,但总的来说。。。

    使用框架

    使用工作区

    如果存在对现有目标的逻辑分组,则可以将它们分组到它们自己的XCODE项目中。一旦将它们放在自己的项目中,就可以创建一个引用这些单个项目的工作区。即使组合的工作空间预先加载了所有内容(我不认为它加载了这些内容),在处理组件时,您仍然可以打开和使用单独的项目以获得快速和流畅的体验。

    如果你有很多目标 A , B C ,但另一个需要 , C类 , D 一个 , , C类 一起放在静态库中,并依赖链接器从每个单独的目标中删除未使用的代码。这显然不会减少您拥有的目标数量,但是您可以使静态库成为自己的项目,并将其包含在公共工作区中。这也将加快编译速度,因为文件只需要编译一次。

    参数化目标或使用方案

    如果您的目标只是用硬编码的参数包装一些外部构建工具/脚本(我已经看到了),那么实际上可以传递 ton of existing variables 从xcode到这些外部工具并消除“重复”目标。类似地,如果某些目标只是彼此的置换,则可以添加新方案。我看到的一个很好的例子是,人们有一个单独的“消毒”目标(地址消毒器等),你可以创建一个消毒方案,而不是一个目标。

    使用“脚本”构建阶段

    将目标卸载到外部生成系统

    Xcode可以有使用脚本构建阶段(并使用上面提到的变量参数)简单地调用外部工具/脚本的目标。如果您已经将另一个构建系统(make、cmake等)用于另一个平台,那么这样做是有意义的。仅对Mac/iOS特定目标使用Xcode,并将其他所有内容卸载到跨平台构建系统。