iOS持續整合(二)——證書管理神器match

ChenJz發表於2018-08-23

對於iOS的開發者來說,一定都會遇到被證書與測試裝置煩到不行的時候。後臺的證書亂七八糟,新增裝置後打包的出來的ipa總是裝不上,證書無效等等問題。這些問題一搞就是浪費了大部分時間。工程師的世界裡怎麼能忍受這些重複而且毫無意義的工作?這不,fastlane裡面的match解決上面的所有問題。

工作原理

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

基本使用

match已經整合到fastlane全家桶裡面。

初始化

fastlane match init`
複製程式碼

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

建立證書

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

fastlane match appstore

fastlane match development
複製程式碼

如果你第一次使用,它將會建立新的 certificate 和 provisioning profile 檔案,上傳到配置的 Git repo。否則,將會從 Git repo 下載檔案並自動安裝到本機。

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

在不同 bundleId 中,可以使用,號作為分割符

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刻不容緩,你還不快用?

相關文章