MUSHIKAGO APPS MEMO

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

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

追記:2017.11 秘密鍵+CSR作成〜証明書作成〜.p12作成〜プロビジョニングプロファイル作成までの流れについて、2017年版を作成したのでこちらにもリンクを置いておきます。

久しぶりにXcode以外で使う.p12ファイルやプロビジョニングプロファイルを作成したので、全スクリーンショットを残しておきました(2017...

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

追記 ここで記載しているTestFlightは、現在では利用できなくなっています。こちらの記事をご参考に。

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

  1. iOS Provisioning Portal>Provisioning>Distribution にアクセスして「New Profile」をクリック。
  2. 「Ad Hoc」にチェック。Devicesではテストを実施するUDIDの登録済みデバイスを選択します。「Profile Name」は適当にAdHocである事がわかる名前を、「Distribution Certificate」は配布用のものを、App IDでは「*」を指定したものを選んでおくといいです。
  3. 登録直後は、Statusが「Pending」となるのでちょっと待ちます。
  4. 数秒ほど待ってページを更新すると、StatusがActiveとなります。

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

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

AdHoc用のipaを作る

  1. 適当なXcodeのプロジェクトを開きます。
  2. 右上の方のボタンを押して、Organizerを開きます。
  3. 「Devices」の「Provisioning Profiles」の右下の方の「Reflesh」で最新の状態に更新します。先ほど登録したAdHoc用のプロビジョニングプロファイルが出てくると思います。(このスクリーンショットの例で、さっそくプロファイルがあと9日で期限切れになりそうになってるのは気にせずに)
  4. Xcodeに戻ります。「Build Settings」>「Code Signing」の「Release」欄で、先ほど作成したAdHoc用のプロビジョニングプロファイルのものを選択できるようになると思いますので、リストから選択。
  5. Xcodeのプロジェクトをアーカイブします。Runの設定がiOS Device(あるいは接続しているデバイス名)になってないと「Product>Archive」が選択できない状態になるので超注意です。これ意外と毎回忘れます。
  6. 配布用のアーカイブがOrganizerのArchivesに現れます。
    今、作成したばかりのArchive(アーカイブした日付が表示されてます)を選択して「Distribute…」を押します。

  7. 「Save for Enterprise or Ad-Hoc Deployment」を選択して「Next」を押します。
  8. 「Code Signing Identity」では先ほどXcodeのBuild Setting>Releaseで選択したAdHoc用のものを選択。
  9. 保存先を指定し、「Save for Enterprise Distribution」をチェック。「Application URL」と「Title」は必ず入力しなければなりません。特に「Title」の方は注意が必要で、こちら未入力でも先に進めちゃいます。しかし、最後にiPhoneでインストール用のリンクを選んでも、何のメッセージもなしに無反応となり、ここが原因である事がわからない状態に陥ります。
  10. 配布に必要な「.ipa」と「.plist」が作成されます。
  11. 「.plist」を開いてみると、上記で入力した情報が組み込まれています。

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

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

にします。

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

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

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