開発のドキュメント

【iOS開発】複数台のMacでiOSアプリを開発する方法:プロビジョニング周り

はじめに

問題意識

この記事の問題意識は

  • iOS をチーム開発する際に、プロビジョニング周りで毎回ちょっとつまづく
  • 正直、プロビジョニング周りあんまりわかってない

って感じです。

まる
まる

会社でこの辺りで最近ちゃんとつまづいたので、まとめておきます

この記事のゴール

この記事のゴールは

  • プロビジョニングとは何かわかっている
  • チーム開発の際に、どのような運用にすればいいか把握している

こととします。

【iOS 開発】複数台の Mac で iOS アプリを開発する方法:プロビジョニング周り

プロビジョニングとは

まずは、プロビジョニングとは何か理解します。

プロビジョニングとは、設備やサービスに新たな利用申請や需要が生じた際に、資源の割り当てや設定などを行い、利用や運用が可能な状態にすること。

参照: プロビジョニング 【 provisioning 】

ios に置けるプロビジョニングとは、つまり開発・配布に必要な設定や端末の割り当てを行うということ。

そのプロビジョニングを行うためのファイルが、プロビジョニングプロファイルっていうものらしい。

「どこどこの誰々さん」は「どのアプリケーション」を作っていて、「どのデバイス」を使っているかという情報が書いてあるファイル。開発中(や AdHoc 用)アプリを、iPhone/iPad の実機にインストールするために必要。アプリケーション ID、デバイス識別子、正規開発者証明書の関係をまとめたファイル。

参照: 【iOS】アプリ申請/プロビジョニングプロファイル周りの用語解説

上記の参照ページめちゃめちゃわかりやすいのでみることをお勧めします。
開発だけでなく、Store 配布の時にも、本番用のプロビジョニングプロファイルが必要とされる

プロビジョニングプロファイルの中身

プロビジョニングファイルとは、以下の 3 つの関係をまとめたファイルとのこと。

  • 正規開発者証明書(.p12 ファイル)
  • アプリケーション ID(App ID)
  • デバイス識別子(UDID)
まる
まる

つまり、アプリを実機で動かすためには以下の 3 つを揃える必要があるってことですね

プロビジョニングプロファイルの種類

プロビジョニングプロファイルには以下の 2 種類あるそう
作成の流れはほぼ同じらしいので、一緒に作成しておきましょう。

  • Development(開発用)
  • Distribution(配布用)

プロビジョニングプロファイル作成の流れ

以下の流れを実行することで、プロファイルの作成が出来ます。

  1. Mac 上で公開鍵・秘密鍵を生成
  2. 公開鍵を含めた CSR(Certificate Signing Request – 証明書署名要求)作成
  3. 作成した CSR を Apple に送信し、 正規開発者証明書(.p12 ファイル) を発行してもらう
  4. 正規開発者証明書(.p12 ファイル)をダウンロードし、Mac のキーチェーンに登録
  5. Apple の Member Center で証明書やアプリ ID、デバイスなどの情報を元に プロビジョニングプロファイル を作成する
  6. プロビジョニングプロファイルをダウンロードし、Mac のキーチェーンに登録

少し古い記事になりますが、図解してくれていてわかりやすいので、わからない方はこちらを参照ください。

Automatically manage signing 機能が便利

Automatically manage signing 機能を使うと、上記と同じことを xcode 上だけで実現することが出来ます。
Apple もこっち推奨らしいです。

チーム開発の際に、どのような運用にすればいいか

チーム開発の際にどのような運用にするかは、開発かリリースかで別れるようです。

開発の場合

開発の場合、現在では Multiple Development Certificates(Signing Certificate per Mac) という機能が Xcode に実装され、特段何か用意する必要はないみたいです。

Signing Certificate per Mac は、Debug ビルド用の証明書については個々の Mac で別個に作成して使えるようにしよう、というもので要点としては以下の通りです。

Debug ビルド only
Xcode と iOS Dev Center の双方で生成できる
Xcode8 移行から生成可能
Xcode7 以前でも使用可能

What’s New in Xcode App Signing まとめ

リリースの場合

リリースの場合には、Multiple Development Certificates のような機能はないので、以下のいずれかのような対策を取る必要があります。

  • リリース用の Mac を指定し、毎回指定の Mac からリリースする
  • Automatically manage signing を使用し、本番用の 正規開発者証明書(.p12 ファイル) を各 Mac で共有する
  • Automatically manage signing を使用せず、本番用の プロビジョニングプロファイル を各 Mac で共有する

各 Mac への共有方法

最初に開発した Mac の keychain に登録されているらしいので、それを DL してなんらかの方法でシェアすればいいはず。secure フォルダなどあれば、そこにおくのがベストな気がする

おまけ

用語の詳細がたくさん紹介されている記事

まとめ

  • プロビジョニングプロファイルは、実機配布、もしくは、store 配布の際に必要
  • Xcode8 以降の現在では、Automatically manage signing がやってくれてる
  • 開発の際には、Multiple Development Certificates があるので特段困らない
  • リリースの際には、各 Mac でファイルを共有するか、固定の Mac からのみリリースする運用とする必要がある
まる
まる

完璧な理解とは行かなくても、Automatically manage signing が何をやってるのか一回理解しておくととてもスッキリしました。おすすめです

参考

ABOUT ME
aoi maru
aoi maru
94-24/色々実験だ。音楽(@kigurumi_band)とプログラミングやってます。