iOS开发-Xcode项目可持续维护

项目经过长期维护后,基本会产生大量的无用代码和资源。近期对公司长达7年的项目进行了一次清理,简单记录一下。

这会造成很多问题:

  • 首先最明显的影响是项目打包之后会无端增加ipa体积
  • 同时也会影响build和archive速度,代码编译和资源打包都是极耗费时间的操作
  • 另外过多的无用代码和资源,会导致项目配置文件非常庞大,达到几MB甚至几十MB,尤其一个项目多个target的情况。项目文件过大的后果就是:对项目配置进行更改的时候,经常会菊花转半天,比如点击一下”Build Phases”。。。
    project size

项目清理

项目清理注意包括以下这些内容:

  1. 清理重复资源:由于Xcode最开始并没有使用.xcassets 来管理资源,在引入xcassets方式管理之后,有部分资源仍以传统的方式存在于project中,这里使用的方法是借助文件查重工具Duplicate File Finder Remover进行排查,然后按需清理即可
  2. 清理无效类:借助工具fui
  3. 无效资源文件清理:借助工具LSUnusedResources,注意如果是非xcassets资源,不可以直接在工具里删除,而应该去Xcode中删除,另外使用特殊格式引用的资源,也会被当成无效资源列出,要特别处理。

project.pbxproj文件瘦身

  • 更改相对引用为文件夹引用
  • 清理无效资源和无效代码
  • 使用CocoaPods/Carthage/SwiftPackageManager工具来管理第三方库
  • 模块化功能代码,引用其动态/静态库,同时该方法也能缩短编译时间,提高项目可维护性和灵活性

项目维护建议

  • 功能改版完成之后,清理该功能对应的过期资源,同时清理老代码。