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

NO IMAGE

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

相關文章

iOS性能優化之耗電量

iOS性能優化之頁面加載速率

iOS持續集成(四)——Jenkins

iOS持續集成(三)——fastlane自定義插件