iOS持續集成(二)——證書管理神器match

對於iOS的開發者來講,必定都會遇到被證書與測試設備煩到不行的時候。後臺的證書亂七八糟,添加設備後打包的出來的ipa老是裝不上,證書無效等等問題。這些問題一搞就是浪費了大部分時間。工程師的世界裏怎麼能忍受這些重複並且毫無心義的工做?這不,fastlane裏面的match解決上面的全部問題。git

工做原理

其實match工具的核心很簡單,就是自動建立一套證書與Profile文件。而後經過Git託管這些文件。在共享機器上面經過下載並把證書裝到機器上面便可使用。bash

基本使用

match已經集成到fastlane全家桶裏面。app

初始化ide

fastlane match init`
複製代碼

在此過程當中,須要輸入一個 git repo 地址存放相關的證書。工具

建立證書測試

初始化完成後,可使用下面的命令生成 certificates 和 profilesui

fastlane match appstore

fastlane match development
複製代碼

若是你第一次使用,它將會建立新的 certificate 和 provisioning profile 文件,上傳到配置的 Git repo。不然,將會從 Git repo 下載文件並自動安裝到本機。加密

在此過程當中,將會使用openssl加密證書,須要提供密碼,該密碼會在下載安裝證書時使用,同時這個密碼會保存到 Keychain 中。spa

在不一樣 bundleId 中,可使用,號做爲分割符code

fastlane match appstore -a tools.fastlane.app,tools.fastlane.app.watchkitapp
複製代碼

甚至能夠在fastlane中定義這樣的一個任務

lane :certificates do
  match(app_identifier: ["com.krausefx.app1", "com.krausefx.app2", "com.krausefx.app3"], readonly: true)
end
複製代碼

在新機器上

很簡單,執行下面便可

fastlane match development --readonly
複製代碼

測試設備管理

註冊新設備

使用match批量幫你添加設備,能夠節省大部分時間。

lane :beta do
  register_devices(devices_file: "./devices.txt")
  match(type: "adhoc", force_for_new_devices: true)
end
複製代碼

使用force_for_new_devices參數,若是設備數量發生變化時,match會從新生成 provisioning profile 文件,這簡直對於咱們來講是福音啊

若是沒使用 fastlane ,能夠直接使用下面命令

fastlane match adhoc --force_for_new_devices
複製代碼

其餘用法

刪除

fastlane match nuke development
fastlane match nuke distribution
fastlane match nuke enterprise
複製代碼

這個命令會把你全部證書相關刪除,請當心使用這命令。不過你不用擔憂的是,已發佈的應用不受影響。

更新密碼

fastlane match change_password
複製代碼

更新加密的密碼,並會同步到 Git repo中。下次在新機器上須要使用新的密碼

手動解密碼

導出.p12文 件

更多命令參數相關的參照官方文檔

總結

fastlane match能大大節省咱們的時間,而且更加方便管理證書。使用fastlane刻不容緩,你還不快用?

相關文章
相關標籤/搜索