LoginSignup
14
15

More than 3 years have passed since last update.

fastlane match を使用した証明書の作成と更新

Last updated at Posted at 2019-07-18

fastlane match とは

fastlaneアクションの1つで、iOS用の証明書を管理・共有するための仕組みです。

Easily sync your certificates and profiles across your team

A new approach to iOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues.

なぜ証明書を共有する仕組みが必要なのか

Xcodeで実機向けビルドを行うには、証明書(Certificate)とProvisioning Profileが登録されている必要があります。
各開発者の環境やCIでのビルドを行う場合に、それぞれの環境で証明書とProvisioning Profileが必要になり、
環境が増えたり証明書の更新が発生した場合に、手動で配布し直すのはとても手間がかかる作業です。

証明書を新しく作成する

1. matchの初期化

fastlane match init

2. 証明書を作成する

新しくアプリを作る(Apple Dev CenterにApp IDが登録されていない)場合、下記を実行してアプリを登録します。既にApp IDが登録されている場合はスキップしてください。

fastlane produce -u ${apple_id} -a ${app_identifier} --skip_itc

以下コマンドで、証明書を作成します。リポジトリでGitを指定した場合に、途中Passphrase for Git Repo: と尋ねられる箇所は、証明書の暗号化/復号化の際に使用するパスフレーズを指定します。

fastlane match development

証明書を更新する

更新に関しては、fastlane match initで作成・管理された証明書が前提となります。

また、fastlane matchでは証明書を一つしか扱うことができず、証明書の更新を行うには、現在の証明書を削除してから新しい証明書を作成する必要があります。

1. 既存の証明書を削除する

fastlane match nukeコマンドを使用します。削除対象としてdevelopment or distributionを指定します。

nukeコマンドを実行すると、対象となる証明書及びProfileと、実行確認が表示されます。

example
fastlane match nuke development
...

+-----------------+------------+-------------+------------+
|        Certificates that are going to be revoked        |
+-----------------+------------+-------------+------------+
| Name            | ID         | Type        | Expires    |
+-----------------+------------+-------------+------------+
| iOS Development | XXXXXXXXXX | Development | 2020-07-10 |
+-----------------+------------+-------------+------------+

+--------------+------------+--------+-------------+------------+
|      Provisioning Profiles that are going to be revoked       |
+--------------+------------+--------+-------------+------------+
| Name         | ID         | Status | Type        | Expires    |
+--------------+------------+--------+-------------+------------+
| match        | XXXXXXXXXX | Active | iOS         | 2020-07-10 |
| Development  |            |        | Development |            |
| xxx.xxx.Xxx  |            |        |             |            |
+--------------+------------+--------+-------------+------------+
...

2. 新しい証明書を作成する

fastlane matchコマンドで証明書を作成します。

example
fastlane match development

NOTE: 証明書を削除するにあたって、以下の点に注意しておきましょう

  • AppStoreを経由しているアプリは、現在の証明書が削除されても使用できる
  • AppStoreを経由していないアプリ(enterprise)は、使用できなくなる
  • その他、以下リンク先の記載項目について確認しておく

共有された証明書を取得する

共有された証明書を取得するには、下記のコマンドを使用します。
readonlyオプションを付けることにより、新たに証明書・プロファイルが作成されなくなり、開発者ポータルへのアクセスを行うことなく証明書の取得が可能になります。

fastlane match development --readonly

Fastfileに以下のようなレーンを追加しておくことで、fastlaneコマンドから証明書を取得することが可能です。

Fastfile
lane :cert do
  match(type: "development", readonly: true)
end

参考URL

14
15
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
15