1. 程式人生 > >iOS- 一鍵自動打包釋出到Fir和AppStore

iOS- 一鍵自動打包釋出到Fir和AppStore

特別說明:如果專案沒有采用Cocoapods管理,沒有.xcworkspace,只有xcodeproj;只需要將指令碼中這句

xcodebuild \
archive -workspace ${project_path}/${project_name}.xcworkspace \ 

這句替換成下面這樣就ok了

xcodebuild \
archive -project ${project_path}/${project_name}.xcodeproj \

日常編譯打包工作主要是以下兩個目的:

  • 提交測試版本ipa給測試人員
    配置好測試描述檔案,然後Product -> Archive
    編譯打包,選擇Organizer,匯出ad hoc 的 ipa包。再上傳到Fir等第三方平臺上,然後通知測試同事進行測試。整個流程下來需要人工監守操作比較耗費時間。
  • 提交ipa包到App Store已供稽核
    配置好正式的描述檔案,然後同樣的方式打包匯出app store 的 ipa包。通過Application Loader 等方式提交到App store等待蘋果處理二進位制包,處理完後選擇構建版本,最後提交等待蘋果稽核。

無論打測試包提供測試人員測試還是打正式包上傳到App strore,整個過程都是重複耗費人工的操作,需要人工等待,然後各種點選選擇...我們可以通過編寫指令碼語言來實現整個過程。

配置自動打包釋出的流程

通過下面幾步的設定好之後,以後再進行打包釋出到第三方平臺或者App Store 只需要一步就能搞定了(一個回車搞定)

筆者通過shell指令碼實現從archive->生成ipa->上傳到第三方平臺(Fir.im 、蒲公英)或 App store。通過下面幾步即可實現自動打包上傳功能。

  • 下載Shell指令碼
  • 將archiveScript中的幾檔案拖入工程的根目錄
  • 根據自己需求選擇好描述檔案
  • 根據自己的專案修改一下shell.sh (修改哪裡下面會指出)
  • cd到工程根目錄,通過./shell.sh 執行指令碼即可

下面通過例項詳細演示整個過程

第一種:打包上傳到第三方平臺Fir (上傳蒲公英原理一樣)
第二種:打包上傳到App store

將通過這幾步來講解整個過程

  • 準備工作
  • 準備工作做完後,正式開啟自動化之路
  • 自動化指令碼執行過程中可能遇到的錯誤

準備工作

  • 因為要上傳到Fir平臺,需要先安裝fir-cli

    命令:gem install fir-cli
     
  • 如果沒有安裝過rvm,需要安裝rvm,在終端輸入rvm -v命令檢視,如果打印出rvm:command not found說明沒有安裝過rvm,如果能打印出rvm版本等資訊說明安裝過。如果沒有安裝過rvm可以通過下面的命安裝,如果已經安裝過可以忽略。

    • 在終端輸入 curl -L get.rvm.io | bash -s stable,然後稍等一會rvm就安裝好了
    • 在終端輸入 source ~/.bashrc
    • 在終端輸入 source ~/.bash_profile
    • 再輸入rvm -v檢視安裝成功

準備工作做完後,正式開啟自動化之路

一、將archiveScript中的3個檔案拖入工程的根目錄

 

二、修改一下shell.sh 檔案

   

 

Product ->Scheme -> Edit Scheme 檢視自己的scheme_name

 

 

獲取Fir平臺的token


 

 

三、 cd到工程根目錄,./shell.sh 回車就會執行指令碼

   

四、 根據自己的需求選擇即可

如果開始選擇的1:app-store 會發布到app store

 

如果開始選擇的2:ad-hoc 釋出到fir平臺

 

如果遇到下面的錯誤

 

 

解決方法:在終端 輸入rvm system後重新執行sehll指令碼就可以了

 

如果前面已經安裝過fir-cli,但是在指令碼執行過程中任然報fir:command not found的錯誤
解決辦法: 在終端輸入rvm get head

 

執行完畢後再次執行指令碼就ok了
到這裡就已經實現了通過指令碼打包併發布到第三方平臺Fir 和 Appstore的整個流程。

 

參考連結:https://www.jianshu.com/p/05dc9f925467