7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at
  • 既存のプロジェクトに 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)

以上

参考

7
7
0

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
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?