[Xcode/Swift] Fastlane Matchで証明書管理リポジトリを作る

こんな感じ

Apple Developerに入ってる証明書やProvisioning Profileを自動作成 & 管理してくれるリポジトリです。

前提条件

Apple Developerに登録していて年間料金を払っていることが必要です (Appleに捧げるお布施)


リポジトリ作成

Githubで新規リポジトリを作成、名前はわかりやすいものにしましょう (ex: ios_certificatesとか)

証明書関連はもちろんPrivateなものなのでリポジトリもPrivateにしましょう。

一旦作成完了したらそのままでOKです。


対象のプロジェクトにFastlaneを入れる

対象のXcodeプロジェクトのディレクトリでターミナルを開き、以下を入力

fastlane init

1 ~ 4のどれがいいんだって聞かれるので好きなものを選択、その後もSchemeとかも聞かれたら選択する。

Apple Developerのサインイン

ターミナルからApple Develperにサインインするように求められるので、AppleIDとPWを入力

完了すると、デフォルトではAppfileとFastfileが自動で作成されます。

Matchの初期設定

以下を入力

fastlane match init

gitを選択して、序盤で作成したGitのリポジトリURLを貼る。

Matchのパスワードを設定できるので任意のものを設定しましょう、後でGithubのSecretsに登録するので忘れずに

そうするとfastlaneフォルダにMatchファイルが作成されるので、以下を埋めていく。

# Matchfile

# 使用するストレージモードの設定
storage_mode("git")

# 証明書のタイプを指定
type("development") # 証明書のタイプ: appstore, adhoc, enterprise, development から選択

# 証明書管理用のGitリポジトリURLを設定
git_url("<#URL#>") 

# 使用するブランチを指定
git_branch("master") 

# Apple Developer アカウントに対応するチームID (Developerコンソールで確認可能)
team_id("<#TEAMID#>") 

# このMatch設定に対するアプリのバンドルIDを指定
app_identifier(["<#アプリのBundle Identifier#>"]) 

# Gitリポジトリにコミットする際のユーザー情報
git_full_name("<#Githubユーザ名#>")
git_user_email("<#メールアドレス#>")

# 新しいデバイス用に証明書を強制的に生成するオプション(必要に応じて)
force_for_new_devices(true)

Match PasswordをGithubに登録

対象のXcodeプロジェクトを管理しているリポジトリにMatchパスワードを登録します。

SettingsSecrets and VariablesActionsを選択

New repository secretを押して、MATCH_PASSWORDという名前で作成したパスワードを保存する。

証明書のインストール

下準備は完了したので、証明書などを入れていきましょう。

MatchFIleのtypeで指定する、development, adhoc, appstoreはそれぞれ違う役割を持ちます。

  • development: 開発中に利用する証明書とプロビジョニングプロファイルを作成。デバッグ目的で、デバイスでの動作確認が可能。
  • adhoc: 内部テスト用。App Store に提出せず、選択されたテストデバイスにのみアプリをインストールできる。
  • appstore: App Store 配信用。リリース版の証明書とプロビジョニングプロファイルを作成し、アプリの公開を目的とする。

enterpriseもありますが個人利用なら無視でOKです。

必要なものだけ入れるのも良いですが、全部入れておいても損はないので全部入れておくのが吉です (多分)

まずはdevelopmentを指定している状態で、以下を実行

fastlane match development

adhoc、appstoreも同様に実行

fastlane match adhoc
fastlane match appstore

というか1タイプでも入れば自動でREADMEも更新されるのでそちらでも詳細は確認できます (英語ですが)

KeychainやApple DeveloperのCertificatesやProfilesを確認して、証明書が追加されていれば成功です。

これで証明書管理も楽になるのでぜひ取り入れておきましょう。