クライアントアプリ作成について(2) – 開発前の準備(認証ファイル等)

 

開発メンバーの招待(AgentとAdminができることできないこと)

MemberCenterから開発メンバーを招待します。メンバーの役割には、No Access、Member、Admin、Agentの4種類がありますが、AgentはiDPに登録した責任者だけで追加や変更することはできません。

AgentだけがDistribution用(AdHoc,AppStore)のProvisioningファイルを作成することができます。iDPへ登録するアカウントで弊社がログインできない場合、Provisioningファイルの作成などの複雑な作業をクライアントにお願いすることになります。

Adminは開発用のProvisioningの作成やデバイスの登録など、配布の前の段階で必要な作業はすべてできます。MemberはProvisioningをダウンロードし、開発ができるというだけであまり役に立ちません。開発に参加するメンバーは外注などもAdminとして登録するほうがいいでしょう。

プロジェクトメンバーを招待するときに、主要メンバーを一人ずつ招待するという考えもありますが、プロジェクト内で共有のAppleIDを作成し、誰でもログインできる状態にしておくほうがいいかもしれません(規約的に大丈夫かどうかは不明ですが)。

というのは、一つのAppleIDは複数のiDPの開発チームに所属することができますが、複数のiTunesConnect(iTC)アカウントには所属できないためです(iTCにはチームという概念が無いようです)。例えば、yasuhiko.nishimuraというAppleIDは個人とbA、PCJという2つの開発チームに所属していますが、このAppleIDでbAやPCJのチームで作ったアプリをiTunesConnectから審査に出すことができません。なので、今回の案件用にiTunesConnectに登録するためのAppleIDを作りました。

csr(証明書要求)、cerの準備

このあたりを参考にcsrを作成&アップロードし、cer(証明書)をダウンロードしインストールします。
このとき、通称は登録する個人名ではなく、クライアント名もしくはプロジェクト名にしておいたほうがいいでしょう。
これは登録した人だけでなく、開発に携わる全ての人が触れるので個人名が入ってるとややこしくなります。
CITROENの案件の場合はPEUGEOT CITROEN JAPON CO.,LTD.としています。

秘密鍵/公開鍵の保存

インストールした証明書を秘密鍵(p12)を書き出します(パスワードは任意)。
これらcsr、cer、p12のファイルは必ず保存しておいてください。

http://blog.asial.co.jp/732
2. CSRと秘密鍵は、必ずペアして保存しておこう
秘密鍵とともに、証明書要求用のCSRのファイルが生成されると思います。このCSR、中間ファイルっぽいので、よく捨てられてしまう事があります。
が、実はこのファイル、安易に捨ててはいけません。

というのも、最初の証明書を発行してから一定期間が経過すると証明書が
有効期限切れになってしまい、再度証明書の要求をする必要がでてきます。
その際に、同じ秘密鍵を使い続ける=環境を特にいじらずに済ますには、
再び現行の秘密鍵と対応するCSRで証明書の要求をすることで、
そのまま同じ環境を、大していじらずに使い続けることが可能になります。

と、長期間続けて使い続けるには、このCSRが割と重要であるにもかかわらず、一度失ってしまうとあとから容易に復元でないため、このファイルは必ず、対応する秘密鍵とともにペアで保存しておくようにするとよいでしょう。

開発用(Developer)/配布用(Distribution)の準備

AdHocやAppStoreで配布する時には配布用の証明書やProvisioningが必要になります。手順的には開発用のときと同じですが、この作業はAgentしかできません(2010年11月時点)。AgentのAppleIDがクライアントしか使えずログインできない場合、この手順をクライアントに説明することになりますが、まず理解してもらえないでしょう。

CITROENの場合、Provisioning Portal > Certificates以下のDeveloperとDistributionのタブの違いがわかり辛く、結局AppleIDとパスワードを教えてもらってこちらで作業しました。

AppID

AppIDは何故か一度作ったら削除できません。あんまり変な名前は付けない方がいいでしょう。同じAppIDで複数のアプリが作れるので、むやみに作らない方がいいと思います。Description 他と同じ名前のIDが登録できてしまいますが、後から見分けがつかなくなるので気をつけましょう。

Bundle Seed ID (App ID Prefix) 同じキーチェーンにアクセスするなら同一のBundle Seed IDを指定する必要がありますが、基本はGenerate Newでいいんじゃないでしょうか?(よくわかりません)Bundle Identifier AppIDに対する一意の識別子です。基本的にはドメインを逆から記載し、最後を*にしたスタイルでいいと思います。シトロエンC3場合はjp.citroen.*としています。

Provisioning Profile

特に迷うところは無いと思いますが、Devicesを後から修正する度に、
関係者全員がProvisioning Profileをインストールしなおさなければいけなくなるので、
最初からできるだけ多くのデバイスを登録しておくほうがいいと思います。

参考

お問い合わせやご意見などは@yasnisまでどうぞ