終於抽出時間來學習自動化打包了,app在測試階段一天總會經歷好幾次的打包,每次打包真是身心疲憊,剛打完的包說不定就被測試妹子反應還要微調什麼地方,我就真的有氣沒法出,打一次包怎麼也得浪費十幾分鐘,還不能改動自己的項目,一個上午或者下午發現很快就過去了,真的很是憋屈。下麵就講述自己的項目用自動化打包的 ...
終於抽出時間來學習自動化打包了,app在測試階段一天總會經歷好幾次的打包,每次打包真是身心疲憊,剛打完的包說不定就被測試妹子反應還要微調什麼地方,我就真的有氣沒法出,打一次包怎麼也得浪費十幾分鐘,還不能改動自己的項目,一個上午或者下午發現很快就過去了,真的很是憋屈。下麵就講述自己的項目用自動化打包的詳細過程。
一、安裝前的準備工作
- 首先確認是否安裝了ruby,終端查看下ruby版本, 要求大於2.0.0
$ ruby -v
2.確認是否安裝了Xcode命令行工具
$ xcode-select --install
1)如果出現
表示已經安裝成功
2)如果出現
就點擊安裝就行了。。。
二、正式安裝
安裝fastlane
$ gem install fastlane -NV
三、項目配置
1、為項目配置 fastlane
$ cd 項目目錄 $ fastlane init
初始化的過程中會出現下麵的選項:
第一個選項的意思是:自動截屏。這個功能能幫我們自動截取APP中的截圖,並添加手機邊框(如果需要的話)
第二個選項的意思是:自動發佈beta版本用於TestFlight
第二個選項的意思是:自動發佈到AppStore
第二個選項的意思是:手動設置
我在這裡選的是第四個(大家可根據自己需要選擇),截圖如上,緊接著一直點擊enter
鍵。
出現上面的就表明成功了。
中間可能會讓輸入蘋果開發者賬號和密碼,安裝成功之後之後會在你項目工程的目錄下生成一個fastlane文件夾,裡面有Fastlane的配置文件,一個是Appfile文件,一個是Fastfile文件(如果要上傳AppStore的話還有Deliverfile文件)。
- Appfile保存蘋果開發者的相關信息、項目的相關信息等。
-
Fastfile是運行腳本。
類似下麵
四、打包上傳
1、上傳到蒲公英
1)創建好faselane文件之後,安裝蒲公英插件
//在項目目錄下執行 $ fastlane add_plugin pgyer
中途遇到下麵情況,選擇y
出現下麵的提示即成功了
2)修改Fastfile 內容
打開自動生成的Fastfile文件
$ vim ./fastlane/Fastfile
我們可以看到
將對應的地方更改如下,有兩種方式build_app或者gym,任選其一即可
i、build_app方式
default_platform(:ios)
platform :ios do
desc "Description of what the lane does"
lane :TestImgPgyer do #lane冒號後面一定要緊跟名字,不能有空格
# add actions here: https://docs.fastlane.tools/actions
build_app(export_method: "development")
pgyer(api_key: "1b49e52f7ca2e286999ebdfa10f53c85", user_key: "1eaff70f6ff3b919b0f6c43fc1ec9378")
end
end
ii、gym方式
自定義lane實現更多功能,這裡我們使用gym
(iOS和Android應用程式自動化測試版部署和發佈的最簡單方法),gym和上面的build_app功能一樣,是他的別名。
default_platform(:ios) platform :ios do desc "上傳蒲公英1" lane :TestImgPgyer do #TestImgPgyer 為lane 名稱,只要和後面的lane保持一致即可,我們執行時就是執行這個方法 scheme_name = "TestImg" #導出路徑 我們可以桌面創建IPA_Info(沒有的話會自動創建) 文件夾來集中管理生成的ipa等文件 output_directory = "/Users/xywy/Desktop/IPA_Info" #導出名稱 output_name = "#{scheme_name}_#{Time.now.strftime('Pgyer%Y%m%d%H%M%S')}.ipa" gym( export_method: "development", #這裡填寫導出方式 ad-hoc、enterprise、app-store #Xcode 9 預設不允許訪問鑰匙串的內容,必須要設置此項才可以 export_xcargs: "-allowProvisioningUpdates", scheme: scheme_name,# target的名字 clean: true, # 在構建前先clean output_directory: output_directory, #ipa輸出目錄 output_name: output_name#ipa名字 ) # 上傳蒲公英,update_description為版本更新描述。 pgyer(api_key: "1b49e52f7ca2e286999ebdfa10f53c85", user_key: "1eaff70f6ff3b919b0f6c43fc1ec9378", update_description: "haha") end end註意:
以上的 api_key 和 user_key,在蒲公英自己賬號下的 應用管理 - API 中可以找到,並替換到以上相應的位置。
在 Xcode 8.3 和 Xcode 8.3 以後的版本中,對於 build_app 的 export_method 的值,需要根據開發者的打包類型進行設置,可選的值有:app-store、ad-hoc、development、enterprise。一定要確保你選擇環境的對應的項目證書已配置正確,否則會報錯誤。對於 Xcode 8.3 以下的版本,則不需要設置 export_method。
3)打包並自動上傳 App 到蒲公英
//在項目目錄下執行
$ fastlane TestImgPgyer #和前面lane後面的名稱保持一致
2、上傳到fir.im
1)類似上傳到蒲公英,需要安裝fir插件
$ fastlane add_plugin firim
出現下麵的提示即成功了
自動上傳到fir
還需執行如下命令:
$ gem install fir-cli
如果報下麵的許可權錯誤
改用
$ sudo gem install -n /usr/local/bin fir-cli --no-ri --no-rdoc
提示下麵信息,則成功了
2)修改Fastfile 內容。
$ vim ./fastlane/Fastfile
下麵只附上對應gym方式的內容
default_platform(:ios) platform :ios do desc "上傳fir” lane :TestImgFir do #TestImgFir 為lane 名稱,只要和後面的lane保持一致即可,我們執行時就是執行這個方法 scheme_name = "TestImg" #導出路徑 我們可以桌面創建IPA_Info(沒有的話會自動創建) 文件夾來集中管理生成的ipa等文件 output_directory = "/Users/xywy/Desktop/IPA_Info" #導出名稱 output_name = "#{scheme_name}_#{Time.now.strftime('fir_im%Y%m%d%H%M%S')}.ipa" gym( export_method: "development", #這裡填寫導出方式 ad-hoc、enterprise、app-store #Xcode 9 預設不允許訪問鑰匙串的內容,必須要設置此項才可以 export_xcargs: "-allowProvisioningUpdates", scheme: scheme_name,# target的名字 clean: true, # 在構建前先clean output_directory: output_directory, #ipa輸出目錄 output_name: output_name#ipa名字 ) # 上傳蒲公英 firim(firim_api_token: "fffea58a4baed4d2b1fc2179d2f32119") end end
註意:
以上的firim_api_token可以在fir.im上,點擊賬號處的“API token”查看或者生成
3)打包並自動上傳 App 到蒲公英
//在項目目錄下執行
$ fastlane TestImgFir #和前面lane後面的名稱保持一致
至此,自動化打包安裝過程結束!!!
參考自:
https://www.jianshu.com/p/b357d7c7076f