ios xcodebuild 多target 并行打包

2021-03-16  本文已影响0人  _海角_

打包脚本基于 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 <<EOF
       tell application "Terminal"
                set newTab to do script "cd $project_path &&. ./upload.sh scheme_name_1 $project_path/AppStoreExportOptions/AppStoreExportOptions1.plist"
                set newTab to do script "cd $project_path &&. ./upload.sh scheme_name_2 $project_path/AppStoreExportOptions/AppStoreExportOptions2.plist"
                set newTab to do script "cd $project_path &&. ./upload.sh scheme_name_3 $project_path/AppStoreExportOptions/AppStoreExportOptions3.plist"
       end tell
EOF

其中upload.sh 为打包脚本

上一篇 下一篇

猜你喜欢

热点阅读