在咱們的平常開發工做中,避免不了會出現這樣的場景:需求迭代開發完成以後,須要提供ipa包給QA同窗進行測試,通常會執行以下流程:1.執行Git Pull命令,拉最新的代碼到本地 2.Pod Install安裝最新的依賴庫 3.在Xcode點擊Archive編譯並打包 4.選擇輸出一個iOS AdHoc模式的ipa文件 5.將ipa上傳到Fir平臺,生成二維碼供測試同窗安裝。ios
即使整個過程很順利,也須要消耗開發同窗十到二十分鐘的時間,但若是測試過程當中發現有問題,那麼須要修復完畢後重覆上面的這幾個步驟。對於開發同窗來講,這種重複且沒有技術含量的機械工做簡直是噩夢啊!git
那麼什麼樣的工具能夠幫助開發同窗解決這個問題呢?下面就介紹一下,目前市面上比較流行的自動化流程工具——Fastlane。Fastlane是用Ruby語言編寫的一套自動化工具集和框架,每個工具實際都對應一個Ruby腳本,用來執行某一個特定的任務,而Fastlane核心框架則容許使用者經過相似配置文件的形式,將不一樣的工具備機而靈活的結合在一塊兒,從而造成一個個完整的自動化流程。到目前爲止,Fastlane的工具集基本上涵蓋了打包,簽名,測試,部署,發佈,庫管理等等移動開發中涉及到的內容。同時該套件也支持與 Jenkins 、CocoaPods、xctools 等其餘第三方工具的集成。github
初步瞭解以後,讓咱們來看一下在如何項目裏面應用fastlane。xcode
1.安裝 Xcode command line tools:app
xcode-select —install
框架
2.安裝fastlane工具
sudo gem install fastlane -NV
學習
3.進入項目路徑下,初始化fastlane(這部分可根據實際項目須要配置)測試
fastlane init
ui
3.1.選擇想使用fastlane作什麼?
3.2.要求你輸入Apple開發證書的App ID
3.3.是否管理APP的metadata
3.4.一路enter,直到初始化成功
3.5.初始化完成後的文件目錄結構
1.文件介紹
Appfile
存儲App信息,好比Apple ID,App Identifier,Team ID等信息。
Fastfile
自動化腳本配置文件,全部的任務都是在這個文件來調度的。
.env
全局的環境配置文件,文件裏面咱們能夠配置一些全局的信息,其餘文件能夠經過相似ENV['Apple_Id']
這種方式獲取。
Deliverfile
上傳AppStore包須要的配置文件,在這個文件裏面能夠設置App Store Connect的全部配置項。
metadata
存放APP元數據文件,包括關鍵詞、版本更新日誌、圖標等。
screenshots
存放應用截圖
2.經常使用的工具集(action)介紹
更多的action介紹能夠參考fastlane文檔中的介紹:docs.fastlane.tools/actions/
3.lane介紹
當咱們對Fastfile文件進行編寫時,實際上就上經過在自定義的lane中添加合適的工具集action讓fastlane按照咱們的意願去順序執行任務,固然fastlane默認就有一些系統級lane。
系統級lane:
有了上面的知識準備,咱們就以上傳ipa包到Fir爲例,來看看fastlane自動化打包具體的代碼是怎麼實現的。
首先看一下.env文件:
而後是Appfile:
最後就是咱們的FastFile:
當咱們完成上面的操做之後,咱們就能夠在終端工具內經過fastlane upload_fir build:PublicDebug log:update_info
一行代碼來實現打包並上傳ipa包到Fir平臺了,是否是很酷!
固然你也能夠在咱們的項目目錄中找到咱們的ipa包、dsym文件、fastlane的打包日誌文件等等。
經過使用Fastlane實現自動化打包之後,開發同窗終於能夠跟繁瑣的機械工做說拜拜了~
除了本文介紹的功能,fastlane還有更多的妙用等着你們去挖掘,好比自定義action,Plugin,又好比持續集成,等等。在此本文也僅是起一個拋磚引玉的做用,但願你們能共同探討fastlane的更深層的用途。
最後聲明,本文主要是爲了用於階段性學習記錄,不會用於商業用途,如不慎存在侵權行爲,請隨時聯繫maojiadong921@gmail.com。
參考資料:
fastlane GitHub地址:github.com/fastlane/fa…
fastlane 文檔說明地址:docs.fastlane.tools/