ちょっと話題の記事

[iOS 7] アプリ開発入門 1からはじめるiOS7 – プロビジョニングプロファイルの作り方

2013.09.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

アプリケーションを実機で動かす

こんにちは。こむろです
今回はiOSのアプリケーションを実機で動作確認をするために必要な【プロビジョニングプロファイル】の作成についてです。Androidでは端末のドライバさえ入ってれば、そのまま開発中のアプリケーションを実行できましたが、iOSの場合はそうもいかないようです。
以前に iOSアプリを実機で動作確認しよう-プロビジョニングプロファイルの作成手順- というエントリもありますが、少し古い情報なので、新たに最新の環境での作成手順を1から見ていこうと思います

プロビジョニングプロファイルとは?

iPhoneやiPod touch, iPadなどの実機で開発中のアプリケーションを起動させるためや、App Storeにアプリケーションを公開したりするために必要なファイルです。誰が作ったかよくわからないものを起動させるのは怖いので、最低限Appleが身元を保証してくれる、というものでしょうか。ずいぶんAndroidとはスタンスが違いますね。Androidのkeystoreと比べ、より細かな情報を入力する必要があるようです。

実行したいアプリケーションのメタデータや作成者の署名など、利用する端末を登録していきます

プロビジョニングプロファイル作成手順

DevelopmentとDistributionの2種類があるようですが、今回は開発者向けにDevelopment用のプロビジョニングプロファイルに焦点を当て、手順を見ていきます。大まかな流れは次の通りです

  1. Request a development certificate. 開発用の署名をリクエストする
  2. Add your device to the portal. ポータル(現在は名称が変更されている模様)にアプリケーションを実行する対象デバイスを追加
  3. Code sign your app. 開発中の対象となるアプリケーションを署名に含める
  4. generate provisioning file. プロビジョニングプロファイルを作成
  5. Launch your app on the device Xcodeを経由して対象のデバイスにアプリケーションを転送

1. 開発者ごとの署名ファイルを作成する

署名ファイルは、開発者ごとに作成する必要があるようです。開発者アカウント一つに対して一つの署名が必要です。

必要な情報

署名の種類
署名の種類には、二種類あるようです

  • Development : 開発用。開発中のアプリケーションを実行したい場合はこっち
  • Production : リリース用。App Storeに公開したい場合やXcodeを通さずにアプリケーションのインストールをしたい場合はこっち

スクリーンショット_2013-09-05_17.56.36

アプリケーションの用途
どのようなアプリケーションかによって、認証ファイルが異なるようです。

登録手順(署名ファイルの作成)

署名ファイルの作成方法は2種類あります。Xcodeから登録する方法と旧来の登録方法です。
Xcode5からXcode内で操作できるようになったため、非常に楽になったそうです

方法1. Xcodeから署名ファイルを作成する(お手軽)

  1. Xcodeを起動する
  2. Xcode -> Preferences を選択する
  3. Xcode5から増えた Accounts タブをクリックする
  4. 対象とするアカウントを選択する
    スクリーンショット_2013-09-06_12.16.38
  5. View Details をクリックする
  6. アカウント詳細情報から、「+」をクリックする
    スクリーンショット_2013-09-06_12.18.23
  7. 【iOS Development】を選択
  8. プログレスが閉じるまでWait
  9. 成功すると、【iOS Development】の署名ファイルがiOS Member Centerにも自動的に登録されています

方法2. Webページから作成する

こちらが旧来の署名の作成方法となります。基本的には、こちらのエントリに則れば作業が完了します。

  1. iOS Member Center にログインしておきます
  2. 【Certificates, Identifiers & Profiles】にアクセスし、【Certificates】を選択します
    スクリーンショット 2013-09-05 10.58.44
  3. Certificateの右上部の「+」をクリックします
    スクリーンショット_2013-09-05_12.44
  4. 【iOS Development】を選択します
    スクリーンショット_2013-09-06_13.00
  5. CSRファイルを作成する旨が描写された画面が表示されます
    スクリーンショット 2013-09-05 17.57.07
  6. 開発を行うMacから認証リクエストファイルを生成する必要があります。Macの【キーチェーンアクセス】を起動します
    スクリーンショット_2013-09-05_17.58.49
  7. キーチェーンアクセス -> 証明書アシスタント -> 認証局に証明書を要求 を選択します
  8. メールアドレスと通称を入力し、【ディスクに保存】を選択、ローカルにCSRファイルを保存します
    スクリーンショット_2013-09-05_18.00.44
  9. 再びWebページの方に戻り、【Continue】をクリックし、先に進みます
  10. 認証の要求ファイルを指定する必要があるので、先ほどキーチェーンアクセスで作成したファイルを指定します スクリーンショット_2013-09-05_17.57.28
  11. 有効になった【Generate】をクリックすると、作業が完了します
    スクリーンショット 2013-09-05 18.01.38
  12. 【Download】というリンクがありますが、特にDownloadしなくても、Xcodeにアカウントが紐づいている状態であれば勝手に反映されるようです

正直、旧来の方法は非常に面倒なので、Xcode5からは方法1の方を積極的に使うべきだと思います。とりあえず、これで自分の開発用署名ファイルが作成されました

2. アプリケーションを実行させる対象デバイスを登録する

必要な情報

開発に利用するデバイスを登録します。必要な情報は端末の【UDID】です

登録手順

  1. 端末の【UDID】を確認します
  2. 確認したい端末をLightningケーブルで接続しておきます
  3. Xcode -> Window -> Organizer を開きます。対象の端末を選択するとこちらで確認できます
    スクリーンショット_2013-09-06_14.45.26
  4. この端末のIDを登録します
  5. 一度も開発機登録されていない場合は、【Use for Development】というボタンが出ているらしいので、それをクリックすると自動的に登録されるようです。
    ※真っ白な端末が存在しなかったので、再現できませんでした。ここもかわってる可能性があるので、確認したら再度追記します
  6. 【Certificates, Identifiers & Profiles】にアクセスし、【Devices】以下に先ほど登録した端末の「名前」と「UDID」が表示されていれば登録が完了しています

Webページから端末情報を登録する場合
Webページでも登録は可能ですが、複数端末の登録を行う以外は、あまり使う機会がないかもしれません

  1. 【Devices】を選択し、「+」をクリックします
    スクリーンショット_2013-09-06_19.13.59
  2. 取得した端末の【UDID】と端末名を入力します。複数の端末を登録する場合は、下の【Register Multiple Devices】を選択するようです
    スクリーンショット 2013-09-06 19.18.18
  3. 【Continue】をクリックして登録を行います

3. アプリケーション情報を登録する

アプリケーションの各種メタ情報を登録します。

必要な情報

スクリーンショット_2013-09-06_16.50.06

1. App IDの情報(説明)
登録するApp IDの説明。App IDのみだと訳が分からなくなるので、何のApp IDであるかの説明を記述するものと思われます

2. App ID Prefix
同じApp IDでも一意に判別できるようにPrefixを指定するようです。チームのIDを指定します。以前は新規作成ができたようですが、今は新規作成はできないようになっているようです。

IDのタイプ
Explicit App ID : 指定されたBundle IDのみ有効なApp IDを作成します。アプリごとにApp IDが必要な場合はこちらを指定
Wildcard App ID : Bundle IDを指定しないので、App IDを使い回すことができます。ただし、いくつか利用できるサービスに制限が加わるので注意が必要です

アプリケーションで利用するサービスを選択
利用するサービスを選択します。Wildcard App IDを指定している場合、【Game center】【In-App Purchase】【Push Notification】の機能が選択不可となります。これらのサービスを利用したアプリケーションの場合は、アプリケーションごとに個別にApp IDを生成する必要があります

この情報のみ2013.09現在、削除が不可能 となっていますのでご注意ください(新規・編集・無効は可能)

登録手順

  1. 【Identifiers】を選択して、「+」をクリックします
    スクリーンショット_2013-09-06_16.11.41
  2. 必要な情報をすべて入力し、【Continue】をクリックします
  3. 登録の確認画面が表示されます
    スクリーンショット_2013-09-06_17.05.16
  4. 【Submit】をクリックするとApp IDの登録が完了します

これでプロビジョニングプロファイル作成に必要な情報の登録が完了しました。ようやくプロビジョニングプロファイルを作成します

4. プロビジョニングプロファイルを作成する

必要な情報

作成するプロビジョニングプロファイルのタイプ
Development : 開発用。開発に利用するプロビジョニングプロファイルを作成する場合はこちらを選択
Distribution : 配布用。App Storeでの配布など、Xcodeを経由せずに、不特定多数の他の端末へアプリケーションをインストールする場合はこちらを選択

プロビジョニングプロファイルに含ませる対象のApp ID
このプロビジョニングプロファイルでどのアプリケーションを実行するかを指定します
【Explicit App ID】の場合は、指定されたアプリケーション以外は動作しないようです
【Wildcard App ID】の場合は、制限はないようです

プロビジョニングプロファイルを利用する開発者の署名
複数選択可能。このプロビジョニングプロファイルを利用してアプリケーションを端末で実行する開発者を選択します。

プロビジョニングプロファイルを利用してアプリケーションを実行する端末ID
複数選択可能。このプロビジョニングプロファイルを通してアプリケーションを実行するための対象となる端末を選択します

プロファイル名
このプロビジョニングがどういうものなのかを判別するための名称。

作成手順

  1. 【Provisioning Profile】をクリックし、「+」をクリックします
    スクリーンショット_2013-09-06_17.42.38
  2. iOS App Developmentを選択します
    スクリーンショット 2013-09-05 20.07.59
  3. App IDを指定します
    スクリーンショット_2013-09-05_20.08.27
  4. 開発者の署名を指定します
    スクリーンショット_2013-09-05_20.08.39
  5. アプリケーションを実行する対象の端末を指定します
    スクリーンショット_2013-09-05_20.08.50
  6. このプロビジョニングプロファイルのプロファイル名を設定します
    スクリーンショット_2013-09-05_20.09.00
  7. プロファイル名を設定したら、【Generate】をクリックしたら、作成完了です

5. Xcodeにプロビジョニングプロファイルを設定する

プロビジョニングプロファイルを作成したら、これをXcodeに設定します

  1. 【Provisioning Profiles】 の一覧を開きます
  2. スクリーンショット_2013-09-05_16.21.43
  3. 【Download】をクリックし、ローカルにプロビジョニングプロファイルを保存します
  4. Xcodeを起動します
  5. Xcode -> Window -> Organizer を開きます
  6. 先ほど登録した端末を選択し、【Provisioning Profiles】をクリックします
    スクリーンショット_2013-09-06_18.36.43
  7. 矢印の【Add】をクリックし、先ほどDownloadして保存したプロビジョニングプロファイルを指定します(※)
  8. 正常にプロビジョニングプロファイルが読み込まれると、このような表示になります
    スクリーンショット_2013-09-06_18.36.50

これで、プロビジョニングプロファイルの作成と設定が完了しました。実際の端末で動かしてみます

※ プロビジョニングプロファイルを直接ダブルクリックするだけでも、登録されました。
特にインポートしなくても自動的にWildcard App IDのプロビジョニングプロファイルが読み込まれるようです

6. アプリケーションを実行する

ようやく実機でアプリケーションを実行する準備が整いました。早速実行してみます

  1. アプリケーションを実行する対象を接続している端末に設定します
    スクリーンショット_2013-09-05_20.36.00
  2. 実行します
    Screenshot 2013.09.06 19.06.46

結果は分かりづらいですが実機で実行ができました

まとめ

iOSアプリケーション開発の一歩として、実機でのアプリケーションを実行させるために必要なプロビジョニングプロファイルを作成しました。
Androidと比較すると、かなり細かい情報を要求されますが、一度作ってしまうとあまり触れる機会がない箇所だそうです。以前の画面や項目の名称が変更されている箇所があることも多いようなので、適当なタイミングで確認してみた方がよいかもしれません。
また、Xcodeに機能として組み込まれている部分も多く、Webページ以外でも登録や操作を行うことができるようです。Xcodeに自動的に読み込まれたり自動化されている部分も多いようです

参考