2014年01月14日

iOS実機開発環境を複数台のMacに構築する

01/07から始まる続き記事でiOSアプリを実機デバイスで動かす方法について書きましたが、じつは、本サイトを開設して以来一番書きたかったのがこれらの記事でした。結構大きな労力を使いましたが、念願の記事を書けた達成感を味わっているところです(自己満足かもしれませんが・・・)。一度この実機デバイス環境を構築すると、いつでもiPad/iPhone/iPod touchでアプリを動かせるので、iOSアプリ開発への意欲が自然に高まってきます。iOS Developer Programの年間ライセンス料は8,400円(本記事投稿時現在)ですが、この環境を使い始めてから、その価値の大きさを日々実感しています。

さて、現在私がメインに使っているPCはMacBook Air 11"(Mid 2011)です。室内でも外出先でもこいつをメインに使っていて、もう一台のMac miniはサブ機的な使い方になってしまっています(MacBook Air 13", Late 2010と合わせて現在3台のMacを所有しています)。プログラム開発をやっていると、一台のマシンに現状の全ファイルを集約したくなるので自然にこんな風になります。せっかくデスクトップ機のMac miniを持っているので、こちらの方にもiOS実機開発環境を構築しておくことにしました(近いうちに、このMac miniはOS X Marveriksへアップグレードしようと考えています)。備忘録を兼ねて、その作業記録を記事に書いておきます。同じ事をやろうとしている人は結構いそうなので、そんな方には役立つ記事になるでしょう。なお、Mac miniで使っているiOS開発環境はXcode 4.6.3(iOS 5.0, 5.1, 6.0 SDKを追加済み)です。

■証明書の移植


2台目のMacにiOS実機開発環境を構築する場合、最初にやらなければならないのは証明書をそのMacへインストールすることです。作成済みの証明書のファイルはADCのiOS Provisioning Portalサイトから取得できるので、これをもう一台のMacへインストールすれば良いだけに思えますが、じつは、それだけではダメです。証明書に紐づいている秘密鍵がないと、証明書を参照することができないからです。01/07の記事の『開発用証明書の作成とインストール』でCertificate Signing Request(CSR)というものを作成しましたが、このCSRと一緒に秘密鍵が作成され、自動的にキーチェーンアクセスへ登録されています。もう一台のMacへ証明書をインストールするには、この秘密鍵を移植してやる必要があります。別のMacへ証明書を移植する手順を以下に説明します。

  1. 証明書をインストール済みのMacで[ユーティリティ]>[キーチェーンアクセス]を起動して、[証明書]カテゴリを開きます。

  2. 証明書エントリの左端が右向き三角1マークになっている場合は、それをクリックしてください。すると、下のような表示になります。
    SCShot140113_9117-Keychain_Access-Exporting_Certificate_Private_Key-900x555

  3. 開発用証明書にリンクされている秘密鍵のコンテキストメニューを開いて、その中から["<鍵の名前>"を書き出す]を選択します。
    SCShot140113_9125-Keychain_Access-Exporting_Certificate_Private_Key-900x555

  4. すると、下のようなファイル保存ダイアログが開きます。
    SCShot140113_0129-Keychain_Access-Exporting_Certificate_Private_Key-900x555
    適当なファイル名をつけて、[保存]ボタンを押します。すると、秘密鍵ファイルにパスワードを設定するように求められます。
    SCShot140113_0091-Keychain_Access-Exporting_Certificate_Private_Key-433x278.png
    任意のパスワードを入力して[OK]ボタンを押すと(上の両方のエディットボックスを空にすると、パスワードは設定されません)、さらに下のようなウィンドウが表示されます。
    SCShot140113_0077-Keychain_Access-Exporting_Certificate_Private_Key-433x233.png
    ログインパスワードを入力して[許可]ボタンを押せば、秘密鍵ファイルが作成されます(デフォルトでは、秘密鍵ファイルは~/Library/Keychainsに保存されます)。

  5. 配布用証明書も存在する場合は、上と同様の手順で、その秘密鍵ファイルを作成します。
    SCShot140113_9127-Keychain_Access-Exporting_Certificate_Private_Key-900x555

  6. 上で作成した秘密鍵ファイルを、実機デバイス環境を構築しようとしているMacへコピーします。

  7. 秘密鍵ファイルをコピーしたMacでキーチェーンアクセスを開き、[証明書]カテゴリを選択します。
    SCShot140114_0002-Keychain_Access-Importing_Certificate_Private_Key-900x555

  8. 開発用証明書の秘密鍵ファイルをダブルクリックするか、キーチェーンアクセスのウィンドウへドラッグ&ドロップします。すると、秘密鍵ファイルのパスワードを入力するように求めるウィンドウが表示されます。
    SCShot140114_0008-Keychain_Access-Importing_Certificate_Private_Key-443x227.png
    手順4で秘密鍵ファイルに設定したパスワードを入力して、[OK]ボタンを押します。すると、キーチェーンアクセスの[証明書]カテゴリに開発用証明書のエントリが追加されます(同時に、[鍵]カテゴリにも秘密鍵のエントリが追加されます)。
    SCShot140114_9010-Keychain_Access-Importing_Certificate_Private_Key-900x555

  9. 配布用証明書の秘密鍵ファイルが存在する場合は、上と同様の手順で、そちらもキーチェーンアクセスへ追加します。
    SCShot140114_9025-Keychain_Access-Importing_Certificate_Private_Key-900x555
    これで、新しいMacへ証明書をインストールできました。


■Provisioning Profileの取得


キーチェーンアクセスに証明書が登録できたら、後はProvisioning Profileをインストールしてやれば、Xcodeで実機デバイスが使えるようになります。この作業はOrganizer(Xcodeに含まれているツール)単独で行うことができます。iOS Provisioning PortalからProvisioning Profileのファイルを取得しておく必要はありません。
  1. Xcodeを起動して、[Window]>[Organizer]メニューを選択します。

  2. Organizerのウィンドウが開いたら(Organizerウィンドウの上部に並んでいるボタンのうち[Devices]が選択されていない場合は、同ボタンを選択してください)、左側の[LIBRARY]−[Provisioning Profiles]を選択します。
    SCShot140114_0027-Xcode4.6.3_Organizer-Refreshing_ProvProfiles-991x694.png
    上のウィンドウの右側エリアの右下に存在する[Refresh]ボタンを押します。

  3. すると、OrganizerはiOS Provisioning Portalへログインしようとします。下のようなウインドウが表示されたら、自分のADCアカウントのApple IDとパスワードを入力します。
    SCShot140114_9029-Xcode4.6.3_Organizer-Refreshing_ProvProfiles-991x694.png
    すると、OrganizerはiOS Provisioning Portalから全プロファイルを取得する処理を開始します。しばらく待つと、下のように[LIBRARY]−[Provisioning Profiles]ウィンドウの右側エリアにプロファイル情報が追加されます。
    SCShot140114_9062-Xcode4.6.3_Organizer-Refreshing_ProvProfiles-991x694.png
    これで、新しいMacへProvisioning Profileがインストールされました。

  4. ここまでの操作が終わったら、実機デバイスをMacへ接続します。すると、Organizerウィンドウの左側の[DEVICES]エリアにそのデバイスのエントリが追加されます(デバイス名は自動的にiOS Provisioning Portalに登録済みの名前になります)。
    SCShot140114_9063-Xcode4.6.3_Organizer-Refreshing_ProvProfiles-991x694.png
    追加されたデバイス名の右横に存在するマークの色がグリーンで、右側エリアの[Provisioning]に値が設定されていることを確認してください。Xcodeでアプリを転送して実行できるのは、この状態のデバイスだけです。


以上の操作によって、新しいMac上にiOS実機デバイス環境を構築することができました。後は、01/09の記事で説明した『Xcodeの実機デバイス用設定』の手順6以降に従って、実機デバイス用にプロジェクトを設定してやれば良いだけです。プロジェクトの設定を変更したら、実際にアプリが実機デバイスで動くか確認してみると良いでしょう。

【2014/01/15 追記】

上記の『Provisioning Profileの取得』の手順3で取得したプロファイルの中に、自分で作成した憶えのない「iOS Team Provisioning Profile: *」という名前の開発用プロファイルが存在することに気づくかと思います。これはOrganizer(Xcode)が自動的に作成するプロファイルのようです。

iOS Provisioning Portalサイトで確認すると、下のようなApp IDとProvisioning Profileが追加されていました。
ASShot140114_9017-ADC-Examining_AppID_ProvProfile_Xcode_Managed-1000x914.png
ASShot140114_0019-ADC-Examining_AppID_ProvProfile_Xcode_Managed-1000x745.png
このプロファイルに組み込まれている「Xcode iOS Wildcard App ID」という名前のApp IDはBundle IDが「*」に設定されています。これだとアプリ側のBundle IDがどんな値でも一致するので、すべてのアプリで使うことができます。つまり、プロジェクトのBundle IDを変更する必要がなくなります(Xcodeさん、賢いですね)。

これらはiOS Provisioning Portalで削除することもできますが、最高の汎用性を持つプロファイルなので、削除しないで残したまま利用した方が良いでしょう。

【参考ページ】

 GClue blog: Xcodeで実機デバッグをするまでの手順(スクリーンショット付き)
 デベロッパー登録を更新し2台目のMacにiOS開発環境をセットアップするためのメモ ≪ イナヅマTVログ
 iPhone開発 複数台のMacで開発 実機転送まで - WEB周辺の話

タグ:iOS Xcode
posted by とみやん at 09:31| Comment(0) | TrackBack(0) | モバイルアプリ開発 > iOS
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/85304109

この記事へのトラックバック