iOS用アプリのAdHoc版を作る(Xcode)

スポンサーリンク

iOS用アプリ開発中に、限られたデバイスだけで実行できるテスト版を作りたいときは、AdHoc版を用意するのが便利です。
今までAdHoc版の作り方のMEMOを残していなかったので、プロビジョニングプロファイルを作成するところからスクリーンショット付きでMEMOしておきます。

AdHoc版野作り方

iOS Developer Programを購入する方法を参考にしてプログラムを購入し、以下の手順でAdHoc用のビルドを用意するといいと思います。
また、AdHoc用のプロビジョニングプロファイルは、これまためちゃめちゃ便利なTestFlightというサービスを利用する際にも使います。(TestFlightについてのMEMOは「TestFlight とりあえずどんなものか」を。)

AdHoc用のプロビジョニングプロファイルの作成

  1. iOS Provisioning Portal>Provisioning>Distribution にアクセスして「New Profile」をクリック。

    iOS Provisioning Portal

  2. 「Ad Hoc」にチェック。Devicesではテストを実施するUDIDの登録済みデバイスを選択します。「Profile Name」は適当にAdHocである事がわかる名前を、「Distribution Certificate」は配布用のものを、App IDでは「*」を指定したものを選んでおくといいです。

    Ad Hoc用の設定

  3. 登録直後は、Statusが「Pending」となるのでちょっと待ちます。

    Pending

  4. 数秒ほど待ってページを更新すると、StatusがActiveとなります。

    Active

FlashなどでiOS用アプリを作る場合は、この「Download」を押して、プロビジョニングプロファイルを入手してください。

AdHoc用のプロビジョニングプロファイル

次にXcodeでAdHoc用のipaを作り、配布するページを作るところまでMEMOしておきます。

AdHoc用のipaを作る

  1. 適当なXcodeのプロジェクトを開きます。

    適当なXcodeのプロジェクトファイル

  2. 右上の方のボタンを押して、Organizerを開きます。

    Xcodeの右上の方のボタンでOrganizerを開く

  3. 「Devices」の「Provisioning Profiles」の右下の方の「Reflesh」で最新の状態に更新します。先ほど登録したAdHoc用のプロビジョニングプロファイルが出てくると思います。(このスクリーンショットの例で、さっそくプロファイルがあと9日で期限切れになりそうになってるのは気にせずに)

    OrganizerでReflesh

  4. Xcodeに戻ります。「Build Settings」>「Code Signing」の「Release」欄で、先ほど作成したAdHoc用のプロビジョニングプロファイルのものを選択できるようになると思いますので、リストから選択。

    Build SettingsのCode SigningのRelease

  5. Xcodeのプロジェクトをアーカイブします。Runの設定がiOS Device(あるいは接続しているデバイス名)になってないと「Product>Archive」が選択できない状態になるので超注意です。これ意外と毎回忘れます。

    Archiveを実行

  6. 配布用のアーカイブがOrganizerのArchivesに現れます。
    今、作成したばかりのArchive(アーカイブした日付が表示されてます)を選択して「Distribute…」を押します。

    OrganizerのArchives

  7. 「Save for Enterprise or Ad-Hoc Deployment」を選択して「Next」を押します。

    「Save for Enterprise or Ad-Hoc Deployment」を選択

  8. 「Code Signing Identity」では先ほどXcodeのBuild Setting>Releaseで選択したAdHoc用のものを選択。

    AdHoc用のCode Signingを選択

  9. 保存先を指定し、「Save for Enterprise Distribution」をチェック。「Application URL」と「Title」は必ず入力しなければなりません。特に「Title」の方は注意が必要で、こちら未入力でも先に進めちゃいます。しかし、最後にiPhoneでインストール用のリンクを選んでも、何のメッセージもなしに無反応となり、ここが原因である事がわからない状態に陥ります。

    Save for Enterprise Distoributionをチェック

  10. 配布に必要な「.ipa」と「.plist」が作成されます。

    「.ipa」と「.plist」が作成される

  11. 「.plist」を開いてみると、上記で入力した情報が組み込まれています。

    .plistの中身

Webを介して配布する際に必要な、AdHoc版「.ipa」と「.plist」が準備できました。
あとは、HTMLファイルにリンクを作成するのですが、リンク先のURLには、

itms-services://?action=download-manifest&url=○○.plist

にします。

AdHoc版インストール用のリンク

このリンクを記述したHTMLと「.ipa」、「.plist」をサーバにアップし、そのHTMLファイルのURLをテストユーザに知らせてあげます。当然ですが、「.ipa」のURLは先ほど「.plist」に組み込んだURLと一致するようにサーバにアップします。

HTMLと.ipaと.plist

テストユーザは、AdHocのプロビジョニングプロファイルに登録してあるデバイスで、そのURLを開くとWebを介してインストールする事が可能です。

ダウンロードが始まってインストールの最後の最後で失敗する場合は、プロビジョニングプロファイルにそのデバイスのUDIDが含まれていない可能性もありますので、その辺を確認してみましょう。

コメント

  1. […] まず、AdHoc版をビルドする手順が必要なので、「iOS用アプリのAdHoc版を作る(Xcode)」を参考にAdHoc版用のアーカイブを作ります。大事な点は、Release用のCode SigningをAdHoc版のものにしてお […]

  2. nakamura より:

    大変参考になりました。ありがとうございました。

  3. filuni より:

    参考になりました!
    が、私の場合はそれ以前にアプリIDを適当にしてしまっていて、証明書との整合性がとれていなく悪戦苦闘しました。

//gist-embed