2008年8月24日日曜日

Program Portalの解説PDFその1

このメモは"iPhone Developer Program Standard Program Portal User Guide for OS X iPhone 2.0"という表題(ファイル名:iphone_developer_program_user_guide__standard_program_v1.1.pdf)のPDFファイルを読んだときのものです。

Welcomeの章では開発チームを作れとか、iPhone開発証明を要求して承認を得ろとか、App IDを生成しろなど、など何やら大袈裟なことが書かれています。

Developmentの章で大袈裟な理由が分かります。iPhoneの開発者向けサイトにある'Program Portal'というページに、開発に参加する人や使用する装置(iPhoneやiPod touchなど)、作る予定のアプリケーションを登録するためです。

推測ですが、
このような手続きにより少しでもウィルスなどの悪質なプログラムを閉め出すことを狙っているのかもしれません。iPhoneという新しいプラットフォームでは、PCのような状況はユーザとして避けたいものです。しかし、同時にさまざまなアプリケーションが提供されるというPCの良いところも取り入れたいのもの確かです。その暗中模索と折衷案が今回のAppleのiPhone SDKと見るべきと思われます。

閑話休題、
個人としてiPhone Developer Programに登録した人は、チームなどの登録は不要ですし、出来ません。

チームのメンバーには三つの役割が割り振られます。それぞれTeam Agent、Team Admin、Team Memberです。

Team AgentはiPhone Developer Programに登録した人で、Appleとの連絡やライセンスなどの責任者です。Team Agentができることは以下の通りです。
 Team AdominやMemberの登録、
 デジタル証明要求の承認、
 開発装置の登録、
 App IDの生成、
 iPhone Distribution Certificateの入手、
 開発用と配布用のProvisioning Profileの生成

Team AdominがProgram PortalでできることはTeam Agentと同じです。Team AdominとTeam Agent がチームの最小構成になります。Team Adominの数に制限はありません。
 新しいTeam AdominやMemberの登録、
 デジタル証明要求の承認、
 開発装置の登録、
 App IDの生成、
 iPhone Distribution Certificateの入手、
 開発用と配布用のProvisioning Profileの生成

Team Member ができることは以下の通りです。
 デジタル証明を要求
 開発用のProvisioning Profileのダウンロード

以上の三つのメンバーは装置でのアプリケーション検証ができます。

Adding Team Admins and Team Membersの小項目ではTeam AgentとTeam Adminが新規にTeam AdminやMemberを登録する方法を紹介しています。登録場所はProgram Portalページ左欄の'Team'を選択し'Invitation'タブにあります。Invitationの名前からも推測できますが、登録したメールアドレスにチームへの招待状を発送する方法で登録を処理します。

面白いことにTeam Agentの新規登録はProgram Portalページからはできないらしく、ADC Support Teamの連絡用ページを通して要求するようです。

次はiPhone Development Certificateの申請です。まず最初にMac OS X 10.5.xに付属するキーチェーンアクセス.appを使ってCSR(Certificate Signing Request)の時に公開鍵と非公開鍵を生成します。

ここからは、日本語版キーチェーンアクセス.appでも、英語版と同様にできるか試してみます。

「キーチェーンアクセス」メニューから「証明書アシスタント>証明局に証明書を要求...」を選択します。なお、左下欄「分類」の「鍵」が選択されていると、「証明局に証明書を要求...」の表示が異なりますので、注意してください。

「ユーザのメールアドレス」と「コモンネーム」には、iPhone Developer Programに登録したメールアドレスと名前を入力します。「CAのメールアドレス」は無視して、「要求の処理」で「ディスクに保存」「鍵ペア情報を指定」を選択し、「続ける」ボタンを押します。鍵情報を保存するダイアログが表示されますので保存します。

次の画面で「鍵のサイズ」を「2048ビット」、「アルゴリズム」を「RSA」を選択します。

以上でCSRファイルが指定した場所に保存されます。

以上でCSRファイルができたので、Program Portalに登録するそうです。ここからはProgram Portalでの作業なので動作検証せずにPDFを読み進みます。

WebブラウザSafariでProgram Portalのサイトを開き、‘Certificates’、 ‘Development’、‘Add Certificate’の順でクリックしていきます。

作成したCSRファイルをテキストエディタで開いて、内容をすべてコピーし、Safariに表示されているテキストフィールドにペーストし、「Submit」のボタンを押します。キーの大きさが2048ビットでないと、Program Portalからはねられます。

以上の作業でTeam Adminに登録完了のメールが届きます。登録失敗したときもその趣旨を書いたメールが届くそうです。さらに、Team AdminがCSRを承認したり削除してもメールが届くそうです。

Team AgentとAdminはiPhone Development Certificate要求の承認と非承認ができますが、Team Adminは自身のCSRの承認を得ないと、Team Memberからの要求に承認を出せないそうです。Approving Certificate Signing RequestsとDownloading and Installing Development Certificatesの小項目には承認と非承認の方法と証明書(拡張子.cerのファイル)のダウンロードとキーチェーンアクセス.appへのインストール方法が書かれています。

複数のコンピュータで開発していたり、何らかの理由でシステムを再インストールする場合に、個人鍵がないと開発ができなくなるのでCSRのファイルの管理は悩ましい問題です。Saving your Private Key and Transferring to other Systemsの小項目に複数のコンピュータでCSRファイルを共有する方法が書かれています。

iPhoneやiPod touchなどの装置の登録はTeam AgentかAdminが行います。登録にはUDID(Unique Device Identifier)と呼ばれる16進数で40桁の文字列が使用され、Program Portalに最大100まで登録できます。また、UDIDは後で生成するprovisioning profileにも含まれます。

UDIDは装置を接続してXcodeのバージョン3.1以降やiTunesのバージョン7.7以降で調べることができます。詳細はLocating a Unique Device ID with XcodeまたはLocating a Unique Device ID with iTunes 7.7の各小項目を参照してください。また、Program Portalへの登録、抹消、変更方法はAdding DevicesとRemoving Devices from your Development Team、Editing Devices on your Development Teamの各小項目を参照してください。

書いたコードをiPhoneやiPod touchなどの装置で動作検証するにはOS X iPhoneをインストールするそうです。インストールには色々と制限がありますが、詳細はInstalling OS X iPhoneを参照してください。

次にApp IDと言うものを生成します。Apple IDではありません(苦笑)装置に作ったアプリケーションをインストールするためにApp IDが必要だそうです。

作ったアプリケーションがキーチェインにアクセスすることをOS X iPhoneが承認するためにApp IDというものが必要だそうです。また、開発と配布のProvisioning ProfileにもApp IDが含まれているそうです。

App IDはAppleが生成した10文字の"Bundle Seed ID"プレフィックスと、Team Adminが定義した"Bundle Identifier"からなっています。ただ、複数のアプリケーションを開発配布する場合には問題があるようです。一時的な問題回避策として"Bundle Identifier"をアスタリスクにするように書いています。複数のアプリケーション開発に関しては別にPDFファイルがあります。これ以降はApp IDを生成する方法が書かれています。

次は今までにも出てきた開発用Provisioning Profileです。配布用は24ページから始まるDistributionの項目で説明されています。

開発用Provisioning Profileは動作検証のために各装置にインストールし、開発チームと装置を特定します。開発用Provisioning ProfileにはiPhone Development Certificate、Unique Device Identifier、App IDのセットが入っています。一つの装置に複数の開発用Provisioning Profileを入れることができるそうです。

'Creating a Development Provisioning Profile'にProgram Portal上での開発用Provisioning Profileの作り方が解説され、'Installing a Development Provisioning Profile'にProgram Portalから開発用Provision Profileをダウンロードし、Xcodeで装置にインストールする方法を紹介しています。また、iTunes 7.7でもインストールできると書いています。

この段階で以下のものがそろっているはずです。
 1.iPhone Development Certificate(承認されたもの)
 2.iPhoneまたはiPod touch(登録されたもの)
 3.開発用Provisioning Profile(正しくインストールされたもの)
もし、iPhone Development Certificateと開発用Provisioning Profileが一つだけであれば、Xcodeの初期設定のままでアプリケーションを走らせることができるはず・・・だそうです。'Running your Development Application on a Provisioned Device'にその手順が書かれています。

つづく・・・(笑)

0 件のコメント:

Open Source

Appleが主催するdarwin-devのMailing listにAppleのDarwin TeamのWilliam SiegristがDeveloper Tools 3.1.3とiPhone OS 3.0関連のソース一部を公開したと投稿していました。 Developer To...