Help us understand the problem. What is going on with this article?

fastlane match で既存の証明書とプロファイルを使用する

More than 1 year has passed since last update.
  • 既存のプロジェクトに fastlane で CD 環境を構築したい
  • 証明書とプロファイルの管理は match を使いたい
  • 既存の証明書とプロファイルを使いたいけど公式ドキュメントには新規作成しか載っていない

ということで既存の証明書とプロファイルを match で管理する方法をまとめました
諸々の環境構築は既にされている前提です

手順

証明書だけ既存のものを使いたい場合はプロファイルに関する手順をスキップ

1. 必要なファイルを用意する

  • キーチェーンアクセスを起動して管理したい証明書(.cer)と秘密鍵(.p12)をそれぞれエクスポートする
    • ファイル名は証明書 ID にする
    • 証明書 ID は Developer Console から該当証明書の Download ボタンにカーソルを当てた際に表示される URL の certificateId=xxxx の xxxx の部分
  • Developer コンソールから管理したいプロファイルをダウンロードする
    • プロファイルの用途に合わせてファイル名をつける
用途 ファイル名
Development Development_{AppID}.mobileprovision
App Store AppStore_{AppID}.mobileprovision
Ad Hoc AdHoc_{AppID}.mobileprovision
In House InHouse_{AppID}.mobileprovision

2. match のリポジトリをクローンする

ターミナルでRubyシェルを起動
> irb
matchコマンドを使えるようにする
irb(main):xxx:x> require 'match'
matchで証明書を管理するgitリポジトリのURLを設定
irb(main):xxx:0> git_url = 'match 用リポジトリの URL'
shallow_cloneしない
irb(main):xxx:0> shallow_clone = false
decrypt用パスワードの指定
irb(main):xxx:0> manual_password = 'パスワード'  // match コマンドで使用するパスワード
リポジトリをクローン
irb(main):xxx:0> workspace = Match::GitHelper.clone(git_url, shallow_clone, manual_password: manual_password)

[xx:xx:xx]: Cloning remote git repo...
[xx:xx:xx]: 🔓  Successfully decrypted certificates repo
=> "クローン先のパスが表示される"

3. エクスポートした証明書とプロファイルを配置する

  • 用途にあった場所に証明書とプロファイルを配置する
    • フォルダが無い場合は下の構造を参照して作る
    • 不要なフォルダはわざわざ作る必要は無い
  • match リポジトリの構造
├── certs
│   ├── development    // Development 用証明書のフォルダ
│   ├── distribution   // Production 用証明書のフォルダ
│   └── enterprise     // Production 用証明書のフォルダ (Enterprise Program)
├── profiles
│   ├── adhoc          // Ad Hoc 用プロファイルのフォルダ
│   │   └── AdHoc_{AppID}.mobileprovision
│   ├── appstore       // App Store 用プロファイルのフォルダ
│   │   └── AppStore_{AppID}.mobileprovision
│   ├── development    // Development 用プロファイルのフォルダ
│   │   └── Development_{AppID}.mobileprovision
│   └── enterprise     // In House 用プロファイルのフォルダ (Enterprise Program)
│   │   └── InHouse_{AppID}.mobileprovision
├── README.md
└── match_version.txt

4. 証明書とプロファイルを Push する

pushする
irb(main):xxx:0> Match::GitHelper.commit_changes(workspace, "任意のコメント", git_url)



以上

参考

de_kichi
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away