介绍

这是一款 Xcode 工程辅助修改工具,方便记录自己特定的修改并应用到工程上。作者自己列举了一些使用的典型场景:

在开发公司的项目时,check out 代码到本地后需要修改工程文件。比如更改证书和 Bundle Identifier、删除一些编译不过的 Target,修改 Build Settings 等配置。重复手动修改这些配置的场景很多:

  1. 第一次 check out 新的分支,需要使用自己的配置。
  2. 增删代码文件前会先 revert project.pbxproj 文件,修改完成后再 commit。此时本地工程文件需要重新配置。
  3. 没有增删代码文件但 project.pbxproj 文件有冲突(conflict),需要先 revert 后重新配置工程文件。
  4. 一些自动化流程(比如 CI)每次执行都需要特定的编译选项和证书来编包。

而我本人最常遇到的场景是 1 和 2,因为不能用公司的证书配置来编译,一些跟苹果开发者账号相关的功能导致一些 target 编译不过,还有些 debug 模式下需要设置的编译选项。所以每次都需要手动修改 Xcode 工程配置,很是麻烦。

下载

使用

中文文档已经详细介绍了使用方法:

实际使用时可以发现,明明对工程的修改很少,但是生成的差异 JSON 可能很大。JSON 中涉及大量的 UUID,而且每次这些 UUID 是不同的,因此这个工具并不适合用作自动修改工程。

如果想要自动修改 Xcode 工程,可以考虑使用

原理

作者在文章里面介绍得非常详细:

作者还对 pbxproj 文件有过有些分析:

区别

  • pbxprojHelper 是保存应用对 Xcode 工程自定义的修改,主要面向开发者调试。
  • mod-pbxproj 是对 Xcode 工程添加修改指定内容,主要面向自动化修改工具与集成到 CI 中。