Fastlane - match

Fastlane 是什麼?

簡單來說,它可以替你解決除了寫程式以外的很多事情; 像是「螢幕截圖」、「打包上傳到 Testflight」、「建立 App Store 的 App 資訊」等等, 尤其是在一個專案(project)擁有多個 target 的時候, 更是只需要一行就可以打包出十幾個 App,並且分別上架到 App Store。 而在這篇文章裡頭,會介紹其中一項功能的部分用法:

Match

Match 主要負責和 Certificate 相關的處理,這邊所要帶給大家的使用情境是, 一個 iOS 專案同時有需要多人同時開發,我們通常會採取的作法有下列幾種:

在 Apple Developer Team 之中加入專案各個開發人員使用自己的 Apple ID 在 Apple Developer Team 之中加入專案各個開發人員的公司 Apple ID 提供給專案各個開發人員相對應的 Provisioning Profile 第一種和第二種的做法差不多,但其壞處就是管理者無法有效地管理 Certificate, 所以有可能會時常出現一些奇怪的 App IDs 或是 iOS Provisioning Profile, 或是誰又不小心把誰的 certificate revoke ⋯⋯

所以我們需要權限劃分清楚

建議的做法是註冊一組公用的開發者帳號,不和任何人產生連結性

e.g dev@apple.com

只放這組帳號在 Apple Developer Team 裡頭,開發相關的處理皆由這組帳號來負責, 而帳號密碼無需流通到僅負責開發的人員手中; 意思是指,讓單純寫 Code 開發的人員,無須註冊特別的 Apple ID 或是加入哪個 Team, 只需要透過 fastlane match 的方式來獲得 Certificate,可以開發就好!

建置流程

首先,先建立一個 private 的 repo 用來準備放置 match 的相關內容, 接著到專案的資料夾下,執行 fastlane match init,接著會在資料夾中看到 Matchfile:

git_url "這邊放置你剛剛所建立的 git repo url"

type "development"

app_identifier ["這邊放置你在 App IDs 裡頭新建好的 Bundle Ifentifier"]
username "這邊放置你所要來處理 Certificate 相關的帳號名稱"

照著上述修改後,執行 fastlane match 後,它便會自動幫你建立好 Certificate 和 Provisioning Profile。 第一次執行的時候,會需要填入一組 passphrase。 (之後其他人要匯入 Certificate 的時候也需要填入相同的密碼) p.s 如果專案原先就有 certificate ,執行 fastlane match nuke 就可以將它清除掉。 另外,需要將 Signing 的 Automatically manage signing 取消勾選,

並將 Provisioning Profile 選擇由 match 所建立的 Provisioning Profile。

這樣便建構完成了! 當之後專案有其他人手需要加入開發的時候,只需要 clone 專案下來, 不用將他的帳號加入到 Apple Developer Team 之中, 只需要執行 fastlane match,便擁有開發的相關憑證和 Provisioning Profile 可以使用~

comments powered by Disqus