ios xcodebuild 多target 并行打包

打包脚本基于 shell 编写
核心思想:
shell 为单线程,所以一个窗口只能操作一个打包进程,重点是如何开启多个窗口
这里配合使用AppleScript 和shell 实现多个打包进程同时运行

AppleScirpt可以去 AppleScript Language Guide 官方文档了解

最初的想法是,使用concurrently 使多个shell 脚本同时执行,但是由于shell 为单线程,故而最终结果仍然是依次执行打包。
最后想到,既然每个终端可以单独开启一个shell进程进行打包,那问题的关键就在于如何开启多个终端窗口,也可以通过shell 来操作,但是开启之后,如何在新窗口执行打包命令,就是个问题了。

 open -a Terminal -n 

此时就需要借助AppleScript了

   tell application "Terminal"
                set newTab to do script "cd $project_path &&. ./testFlightUPload.sh scheme_name $project_path/AppStoreExportOptions/AppStoreExportOptions1.plist"
       end tell

这样配合使用shell和AppleScript就实现依次打开多个终端窗口,并分别执行打包任务。

完整脚本如下:

#!/bin/bash

project_path=$(pwd)
exec osascript <

其中upload.sh 为打包脚本

你可能感兴趣的:(ios xcodebuild 多target 并行打包)