Xcode如何设置在编译前自动运行脚本

有时我们可能需要在iOS项目打包前执行一些操作,例如更新资源,修改配置等等,手动修改太麻烦也太Low了,那有没有自动执行的方法呢?

当然有,这里我会列举三种方法,并且着重讲解一下最后一种方法

三种方法

  • 第一种方法:如果你使用的是脚本进行打包,那么事情就简单了,在执行xcodebuild命令前,执行你想做的操作就可以了。
  • 第二种方法:使用CI平台,最常用的就是jenkins,一般的CI平台都支持在编译前执行脚本。
  • 第三种方法:如果你使用的是Xcode Archive进行打包,那么就要用到下面的方法添加编译前执行的脚本。

具体步骤

打开项目配置,选择Build Phases

1

点击左上角的加号,选择New Run Script Phase

2

这样就可以创建一个新Script Phase,然后在黑色区域写入你的脚本

3

在脚本中,你可以使用一些环境变量,例如${SRCROOT}表示项目的根目录,${CONFIGURATION}表示项目的Configuration,更多可以使用的环境变量可以参考苹果官方文档

最后一步,也是最关键的一步(我在这里卡了半天),选中你创建的Script Phase,然后按住鼠标,把它拖到Compile Source的上面,这样你的脚本才会在代码编译前执行,否则脚本是在代码编译后执行的,如下图:

4

这样在编译时就会自动执行脚本了。上图中的脚本内容是在Release下编译时自动执行一个Python脚本。脚本的输出内容可以在Build Log里找到,如下图:

5

以上就是整个配置过程,希望这篇文章对您有帮助。