iOS自動打包腳本(Python)

最近公司業務很閑,就開始自學Python,想著練練手就準備把iOS產品交付測試的流程自動化。下面記錄一下在這過程中遇到的問題。

因為macOS上提供了打包項目或工程的命令,所以處理這個需求就有了一個入口。

在參考了各位前輩的博客和教程后大致確定了兩個流程:

一、build

1. xcodebuild -> build -> .app

2. .app -> xcrun -> .ipa

3. .ipa -> publish

二、archive

1. xcodebuild -> archive -> .xcarchive -> export -> .ipa

2. .ipa -> publish

兩個流程都需要使用macOS提供的xcodebuild命令,在此參考了xcodebuild命令參數詳解

一、build流程

在嘗試使用這個流程時,運行xcrun命令發現系統已經廢棄這個接口了。

二、archive流程

1. Archive

因為大多數開發者都是用cocoapods管理三方庫,所以下面以workspace來介紹。

下面依序列出腳本里會使用的參數,雖然部分參數xcodebuild命令可以自行推斷,但本著探索的精神還是將所有參數都填上。

格式為:-option (tip, [example], note)

-workspace (workspaceName, [TestAutobuild.xcworkspace])

-scheme (schemeName, [TestAutobuild], 默認會存在一個同workspace名字一樣的scheme。可以在Xcode上可視化配置,這個里面包含了很多信息可以使xcodebuild命令自行推斷,所以這兩個參數就可以運行xcodebuild來archive項目了。)

-destination (build device, ['platform=iOS, name=My iPhone'], scheme里包含了這個信息。按key=value格式傳入字符串,generic/platform=(iOS), platform=(iOS/iOS Simulator/OS X),name=(your phone name/iPhone 6s/iPad Pro...), arch=(x86_64/armv7...))

-destination-timeout (find the device timeout, [30], 搜索上一個參數提供的設備的timeout。)

-configuration (Debug or Release, [Debug], scheme里包含了這個信息。)

-sdk (sdkfullpath or sdkname, [iphoneos], 可以通過xcodebuild -showsdks查看可選的sdk名字,可以不加后面的版本號。)

[action] (不用加參數標記符, [build], 默認為build。)

-archivePath (archive保存文件路徑,需要指明archive結果文件,****.xcarchive)

-quiet (無參數,不打印文件編譯時的輸出,但是會打印警告(warnings)和錯誤(errors))

其他參數不常見也不會用到(schme默認已經配置好了)所以還是不列出來了。

example command:

xcodebuild -workspace test.xcworkspace -scheme test -destination 'generic/platform=iOS' -configuration Debug archive -archivePath test.xcarchive -quiet

這段命令可以archive真機使用的Debug版本

2. Export

列出參數

-exportArchive (無參數,指明該xcodebuild命令是導出archive)

-archivePath (archive保存路徑)

-exportPath (導出的.ipa保存目錄,一般創建一個當前時間字符串為名的文件夾)

-exportOptionsPlist (提供一個.plist文件路徑,一般提供一個空個plist文件就可以了,具體配置我沒有去查^_^)

就這4個參數即可

example command:

xcodebuild -exportArchive -archivePath path1/path2/test.xcarchive -exportPath path1/path2/5月28日17時08分33秒 -exportOptionsPlist path1/path2/exportOptions.plist

這段命令就可以從exportPath中找到能安裝的.ipa文件

注意:

筆者使用macOS10.12.3系統,xcodebuild命令不需要提供配置文件及證書這些參數,該參數可以在xcode里配置好,所以這里就沒有列出來,需要的朋友請查找一下前輩們的博客。

這里提供一個自己嘗試寫的腳本

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容