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

照著上述修改後,執行 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 可以使用~