2012年4月20日金曜日

プロビジョニングプロファイルの作成と実機での動作確認

概要

今までiOS Developer Programの購入とアクティベーションを行いました。既にXcodeを利用した開発や、iOSシミュレータを使ったテストはできるのですが、まだ実機で動作させることはできません。そこで、今回は実機でアプリを動かすための手順です。
全て英語ページで管理することになりますが、難しくはありません。また、手順としては長いですが、そんなに時間はかかりません。

前提


手順の確認

1.「Member Center」にアクセスし、「iOS Provisioning Portal」に移動します。

2. 右側に「How-To's」がまとまっているため、その通りに進めてゆきます。クリックすると、各サポートページに飛びます。
  1. Obtaining your Certificate(証明書の作成と登録)」
  2. Assigning Devices(デバイスの登録)」
  3. Creating your App IDs(アプリケーションIDの作成)」
  4. Creating Provisioning Profiles(プロビジョニングプロファイルの作成)」

1. 「Obtaining your Certificate(証明書の作成と登録)」


1-1. もともとインストールされているアプリケーションの「キーチェーンアクセス」を使用します。「アプリケーション > ユーティリティ > キーチェーンアクセス.app」で起動します。

1-2. 起動後、メニューの「キーチェーンアクセス > 環境設定 > 証明書タブ」を開き、「証明書状況プロトコル(OCSP)」「証明書失効リスト(CRL)」を「切」にして閉じる。

1-3. メニューの「キーチェーンアクセス > 証明書アシスタント > 認証局に証明書を要求...」を選択し、証明書アシスタントを起動。

1-4. 証明書アシスタントに「ユーザのメールアドレス」「通称」を登録時に入力した通りに記入し、「ディスクに保存」「鍵ペア情報を指定」を選択して「続ける」をクリックして「CertificateSigningRequest.certSigningRequest」を保存する場所を選択する。どこでも構いませんが、今後も使用するため、誤って削除しないようにしましょう。

1-5. 鍵ペア情報の設定で「鍵のサイズ:2048ビット」「アルゴリズム:RSA」を選択し「続ける」をクリック。

1-6. 上述の「1-4」で指定した場所に保存されるので「完了」をクリック。

1-7. 「iOS Provisioning Portal」の「Certificates」をクリックし「Development」のタブが開かれていることを確認して「Request Certificate」をクリック。

1-8. 今までの作業内容が表示されるので、「ファイルを選択」をクリックし、1-6で作成した「CertificateSigningRequest.certSigningRequest」を選択して「Submit」をクリック。

1-9. Statusが「Pending Issuance」になるので、数秒待ってページをリロード。

1-10. すると、Statusが「Issued」になるので「Download」をクリックし、「ios_development.cer」を保存。また、「click here to download now」もクリックし「AppleWWDRCA.cer」を保存します。どこでも構いませんが、今後も使用するため、誤って削除しないようにしましょう。

1-11. ダウンロード後「ios_development.cer」をダブルクリックし、キーチェーンアクセスへ登録します。同様に「AppleWWDRCA.cer」もダブルクリックし、キーチェーンアクセスへ登録します。

2. 「Assigning Devices(デバイスの登録)」

2-1. まずはデバイスのUDIDを確認する必要があるため、iTunes(7.7以降)を起動します。またもうひとつの方法として、Xcodeのオーガナイザでも確認できます。どちらでも「Command + c」でコピーすることができるので、コピーします。
iTunesでの確認
オーガナイザでの確認

2-2. 「iOS Provisioning Portal」の「Devices」をクリックし、「Manageタブ」の「Add Devices」をクリック。

2-3. デバイスに対し、分かりやすい名前を付け、先程コピーしたUDIDを貼り付け、「Submit」をクリック。

2-4. デバイスが追加されていれば完了です。

3. 「Creating your App IDs(アプリケーションIDの作成)」

3-1. 「iOS Provisioning Portal」の「App IDs」をクリックし、「Development」のタブが開かれていることを確認。「New Profile」をクリック。

3-2. 「Description」に分かりやすい名前を入力し、「Bundle Identifier (App ID Suffix)」を入力します。ドメイン名を逆さまにしたものが推奨されています。本ブログは「uqtimes.blogspot.jp」なので「jp.blogspot.uqtims」という具合です。
App IDは一度作成すると、削除することはできないので気をつけましょう。

3-3. App IDが追加されていれば完了です。

4. 「Creating Provisioning Profiles(プロビジョニングプロファイルの作成)」

4-1. 「iOS Provisioning Portal」の「Provisioning」をクリックし「Development」のタブが開かれていることを確認して「New Profile」をクリック。

4-2. 「Profile Name」に分かりやすいプロファイル名、「Certificates」に先程設定した人の名前を選択、「App ID」に作成したID、「Devices」に登録したデバイス名を選択し、「Submit」をクリック。

4-3. Statusが「Pendin」になるので、数秒待ってページをリロード。

4-4. すると、Statusが「Active」になるので「Download」をクリックし、「(プロファイル名).mobileprovision」を保存します。どこでも構いませんが、今後も使用するため、誤って削除しないようにしましょう。

4-5. いよいよ、実機への登録です。Xcodeの「Organizer」を起動し、接続されているデバイスの情報を見ます。「Use for Development」をクリック。

4-6. 認証画面が出るので、「メールアドレス」「パスワード」を入力し「Log in」をクリック。

4-7. プロビジョニングプロファイルを選択する画面が表示されるので、上述4-4で保存した「(プロファイル名). mobileprovision」を選択します。無事に登録されると完了です。

4-8. それでは、実際にサンプルプログラムを実機で動作させてみます。オーガナイザで「Documentation」タブを開き、「OpenGLES」を検索します。するといくつかサンプルがヒットするので「GLEssentials」を選び、「Open Project...」でプロジェクトを保存します。

4-9. 自動的にプロジェクトが開かれるので、「Bundle Identifier」を作成したApp IDに変更します。そして、接続されているデバイス名が選ばれていることを確認したら「Run」で実行します。

4-10. 実機で以下のようなアプリが動作すれば完璧です。

4-11. ちなみに、オーガナイザを利用することで実機のスクリーンショットを取得することができます。


長くなりましたが、以上でプロビジョニングプロファイルの登録と実機での動作確認は完了です。

6 件のコメント:

  1. 初心者ですが、この記事を参考にアプリを入れることができました。
    他のサイトより詳細で非常に役に立ちました。ありがとうございました。

    返信削除
    返信
    1. 今更の返信で申し訳ありません。
      嬉しいコメントありがとうございます!分かりやすい内容にするように心がけてゆきます。

      削除
  2. アプリ投入出来たと喜んだのもつかのまで、問題が出てしまいました。
    オーガナイザーからサンプルのGLEssentialsアプリを開くと、X-Codeから自分のiPhone名が出てきてビルドできるのですが、X−Codeから新規プロジェクトや他の既存ファイルを出した場合、"iOS-Device"となり認識されません。
    (ERROR: Xcode cannot run using the selected device....)
    他に記載してあるBuildSettingを確認しましたが、差異は見つからず、何が異なるのか分からない状況です。
    お手数ですが、なにか分かりましたら教えて頂けないでしょうか?

    返信削除
    返信
    1. PROJECTの "Info" > "Deployment Target" や、
      TARGETSの "Summarry" > "Deployment Target" は接続しているデバイスのiOS以上になっていますでしょうか。
      接続しているデバイスのiOS以上に設定されていると、転送することができなくなっています。

      削除
  3. 初心者です。

    App IDは作成したら、削除出来ないんですね。
    うまくiPhoneで作動しなくて3つも作成してしまった…。

    次にプログラム作った場合も同じApp IDを使用するってことになるんでしょうか?
    トホホ・・。

    返信削除
    返信
    1. 新しいApple Developerサイトになってから、App IDの削除が出来るようになったようです。
      ただ、試した限りだと、削除できたり出来なかったりするようで。。。まだ違いが分からないのですが、削除したいApp IDを選択し、"Edit"。次のページで、下部の"Delete"で削除できるようです。

      削除