我在一个iOS项目的团队中工作,该项目在
Swift代码方面已经发展到了巨大的规模.
从干净状态构建项目大约需要10分钟,并且在更改代码中的任何内容后,大多数仔细检查,构建和运行项目需要30秒,即使该代码属于Swift文件符号中私有方法中的单行在其他任何地方都不使用.
我们已经尝试了很多东西来改善构建时间,包括来自这个优秀资源https://github.com/fastred/Optimizing-Swift-Build-Times的技术
没有任何帮助,你仍然需要等待整整30秒后,改变每个小事情,在应用程序中看到它.
我们使用Xcode 10,“新建系统”,编译模式设置为Incremental.如果我通过Perform Action>构建项目使用Timing Summary构建,最长的阶段是“Swift代码编译”,这并不是什么新鲜事.我们怀疑Xcode试图遵循保守的编译决策并重建每个可能与修改过的Swift代码有任何连接的Swift文件.似乎Xcode在大多数时候都是错误的,并且做了多余的工作.
我有点想念Objective-C,当编译器查看所有import / include语句并且只重建显式声明的依赖项时,这意味着快速构建时间.
所以我现在认为也许我们可以将我们的项目分解为模块并且无处不在地使用Swift中的import来告诉编译器什么Swift文件依赖于其他Swift文件.
是否有一种好的,可能是自动化的方法将大型项目模块化为许多小型组件,以加快定期的试用 – 如何工作的构建?
最佳答案 >您可以将项目拆分为Cocoa Touch Frameworks. – >
https://www.raywenderlich.com/5109-creating-a-framework-for-ios
>将每个框架添加到自己的git仓库中.它可能是私人回购.
>创建私人cocoapods. – >
https://guides.cocoapods.org/making/private-cocoapods.html
>将新依赖项添加到项目podfile中. – > pod’YourFramework’,:git => ‘FrameworkGitRepoPath’