正常產品開發完成以後,咱們都須要給測試人員打包,又是測試包,又是生產包的,打一次包須要浪費十幾分鐘的時間,甚至有時候,你剛打完包,產品過來告訴你某個地方須要微調一下(麻蛋,這個時候是否是想弄死他),可是沒辦法,只好改完bug,繼續打包,就這樣可能一上午或者一下午就這樣浪費了,因此有一個可以自動化打包的工具不只可以爲咱們節省大量的時間,還可讓咱們可以裝逼。。。。。(這是重點)git
其實自動化打包的工具備不少,比較流行的有Jenkins
和fastlane
,原來嘗試過Jenkins
,感受這個工具比較麻煩,須要配置的東西很是多,還須要倉庫地址等等不少信息,不像fastlane
感受是傻瓜式的,很是簡單,目前Github上已經超過兩萬star了,並且團隊人員衆多,下面步入正題!!!github
ruby -v
複製代碼
xcode-select --install
複製代碼
若是出現 shell
表示已經安裝成功若是出現: 小程序
就點擊安裝就好了。。。xcode
下面就正式開始安裝fastlane了ruby
sudo gem install fastlane
複製代碼
fastlane init
複製代碼
初始化的過程當中會出現下面的選項: bash
第一個選項的意思是:自動截屏。這個功能能幫咱們自動截取APP中的截圖,並添加手機邊框(若是須要的話) 第二個選項的意思是:自動發佈beta版本用於TestFlight 第三個選項的意思是:自動發佈到AppStore 第四個選項的意思是:手動設置weex
我在這裏選的是第四個(你們可根據本身須要選擇),截圖以下:框架
緊接着一直點擊enter
鍵,安裝成功會出現以下截圖
安裝成功以後,會在咱們的工程目錄生成一個fastlane
文件夾:
而後此時,咱們須要本身編輯Appfile
和Fastfile
兩個文件:
首先看Appfile
文件,個人以下:
而後是Fastfile
文件:
其中的firim
是指定到上傳到fir
的,若是隻是單純的想把包打出來能夠不寫哪一行。
這樣的話就能夠順利打包了。。。 執行打包命令:
fastlane betaDebug
複製代碼
打包成功截圖以下:
fir
或者蒲公英可是,若是想將本身打好的包直接上傳到fir
或者蒲公英等平臺,請看下面的步驟:
執行以下命令安裝fir
插件:
fastlane add_plugin fir
複製代碼
自動上傳到fir
還需執行以下命令:
gem install fir-cli
複製代碼
若是是蒲公英平臺,安裝以下插件:
fastlane add_plugin pgyer
複製代碼
此時fastlane
文件夾會變成以下結構: 注意:package
文件夾是在第一次打包的時候生成的
此時執行打包命令,就能夠自動打包,並上傳至fir
了。
安裝完插件以後Pluginfile
文件內容以下:(注意:你安裝了什麼插件,就會在該文件中顯示)
上傳fir
成功截圖以下:
生成的ipa
包和dysm
文件以下:
至此,自動化打包安裝過程結束,下面記錄下我遇到的坑。
我遇到這個問題的緣由是,證書沒有匹配對,修改Fastfile
文件,仔細查看下export_method
參數是否配對就好了。。。
錯誤指出的很明顯,請必定要記住:
後面必定要緊跟本身寫的名稱
打包成功了,可是上傳至fir
一直失敗 忘記截圖了,大概報錯說明以下:
Could not find action, lane or variable 'firim'
複製代碼
我原先看文檔,看到有人將Gemfile
和Gemfile.lock
文件拖到fastlane
文件夾裏面了,可是自動生成的話是在這個文件夾外面的,可是我想着放到一個文件夾裏面方便管理,就這樣報錯了,因此記住,它生成在哪你就放在哪就行。
報錯緣由是,沒有找到firim
這個action,能夠在終端下面查看是否安裝了這個action
fastlane actions [firim]
複製代碼
若是安裝了,會顯示以下:
若是沒有安裝,會提示沒找到,這個時候從新安裝下插件就行了。
除了藉助一些開源框架外,我原來也用過shell
腳本打包,無非是本身寫一個腳本,裏面包含不少的打包命令,可是仍是感受沒有fastlane
簡單方便,有興趣的能夠參考GitHub上的這個,寫的比較詳細
至此,利用fastlane
自動化打包就算告一段落了,可是fastlane官網還提供了不少的語法說明,感興趣的能夠參考下,另外說明下,因爲我是最近纔開始用,因此通常給測試人員打包的時候我都是用fastlane
,真正要上線提交AppStore的時候,我仍是用Xcode,畢竟放心。提交到App Store還沒用過,有什麼坑我也不知道,若是有人實踐過,歡迎評論區互相交流(另外,以爲寫得不錯的,請點贊❤️❤️❤️!!!哈哈)
知識小集是一個團隊公衆號,主要定位在移動開發領域,分享移動開發技術,包括 iOS、Android、小程序、移動前端、React Native、weex 等。每週都會有 原創 文章分享,咱們的文章都會在公衆號首發。歡迎關注查看更多內容。