TestFlight とりあえずどんなものか

広告:超オススメUnity Asset
  広告:超オススメUnity Asset

iOSアプリを開発中、AdHoc版を用意するなどして、いくつかの異なるデバイス環境でベータテスティングを行いたい場合がよくあります。
純粋にAdHoc版を作って配布してがんばってきましたが、その労力をかなり軽減させてくれる便利なサービスが「TestFlight」です。

このたび(2012年12月)、Adobe AIRにおいても、Gaming SDKというのがリリースされ、その中にTestFlightに対応したANEが含まれていて、これはとりあえず触ってみないわけにはいかないと思います。(iOSアプリ開発の分野に力を入れまくっているアドビさんが買収しそうな匂いがプンプンしますね^^)[追記(2014.2.26):買収したのはAppleさんでした。→「iOSアプリ開発に便利すぎるTestFlightがAppleへ」]

というわけで、TestFlight環境をセットアップして、とりあえずベータビルドをテストユーザに配布、通知するところまでをMEMOしておきます。

TestFlight

で、実際、TestFlightのベータテスティング環境を作ってみると

  • AdHoc版による配布なので、テストユーザのデバイスにインストールしやすい。
  • テストユーザの各デバイスのUDIDを登録しやすい。
  • AdHoc版をビルドした後、簡単に適切な場所にアップロードし、特定のテストユーザに通知できる。
  • ビルドの細かいバージョン管理、リリースノートの管理がしやすい。
  • さまざまな環境でデバッグするための機能が用意されている(未検証)

と、ちょっと触っただけでもメリットがたくさんあります。

これに加えて、クローズドなフォーラムやバグベース、ソーシャルネットワーク経由での通知、などの機能があったら完璧だと思います。(←たぶん、まだない)
今後に期待ですね。

TestFlight Top

TestFlightで自分のアプリ用のベータプログラム(Team)を開設する

  1. Sign Up」を押して新規アカウントを作るところから。名前、メールアドレス、パスワードなどを入れた後、DeveloperをONにしてSing Upしときましょう。

    Sign Up

  2. ダッシュボードが表示されますが、初期画面では何もないので、まず「Team」という自分のアプリのテスト用メンバーの集まりを作ります。「Create a new team」を選択。

    初期画面

  3. Team Nameに適当な名前をつけます。このチームは、後に自分のアプリを開発段階でテストしてもらう人たちを集めますので、それがわかるような名前がいいです。

    Team Name

  4. 僕の感覚では、なんとなく次のステップでは、チームメンバーを招待するステップだと思ったのですが、流れは、最初のベータ版アプリをアップロードしておく手順になるようです。
    アップロードにはとても便利なデスクトップ用アプリが用意されていますのでゲットしましょう。「The TestFlight Desktop App」の「Download it now」を選択。

    Upload Build

  5. アプリを起動して登録したアカウント情報を入れてサインインしましょう。

    TestFlight Desktop App

とりあえず、ここまでで開発ビルドをアップロードする準備ができました。

Drag IPA Here

自分のアプリのベータ版をアップロード

ベータ版には、何かTestFlight用のプログラムを組み込んでおかないといけないのかと思ったのですが、その必要はなく、AdHoc用にビルドしてあげればいいようです。
「Invalid IPA:The keychain-access-group in the embedded.mobileprovision and your binary don’t match.」とか出たり、「Invalid IPA: Couldn’t find executable specified in Info.plist – check the value of your CFBundleExecutable key.」とか出たり、なかなか最初は、苦労するかもしれませんが、流れが出来さえすれば、後はどんどんベータ版を作ってアップロード>通知、していくだけになるので、がんばってみましょう。

エラー

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

    AdHoc用のアーカイブを作る

  2. TestFlightのDesktop Appをインストールしていたら、アーカイブ作成直後に画面右上の方に「New Archive Detected」(新しいアーカイブ発見!)とTestFlightアプリが通知してくれます。この通知、5秒くらいで消えるので、その間がチャンスです。「Upload」ボタンを押しましょう。

    Desktop Appからの通知

  3. もし、この通知の「Upload」ボタンを押し損なったら。。。XcodeのOrganizer>Archivesを開き、対象となるアーカイブを「Show in Finder」で開き、TestFlightのデスクトップアプリ「Drag IPA Here」にドラッグ&ドロップします。

    Organizer
    アーカイブをドラッグ&ドロップ

  4. TestFlightでAdHocビルドを作成する準備段階となります。Build SettingsのReleaseで指定したIDと異なるプロビジョニングプロファイルが選択されていると「Next」が押せない状態になっています。(※TitaniumやFlashなどで直接作成したAdHoc用のipaの場合は、このプロビジョニングプロファイルの選択はないと思います。)

    Nextが押せない

  5. Xcodeで指定したものと同じもの(AdHoc用のもの)を選択することで次に進めます。

    Nextが押せるようになる

  6. AdHoc版がビルドされ、リリースノートを書くテキストフィールドが現れると同時にデータがアップロードされます。このビルドに関するリリースノートを書き加え、次に進みます。

    リリースノート

  7. このビルドがリリースされた事をテストユーザに通知します。まだチームメンバーを招待していない状態なので、自分だけになっていると思います。

    テストユーザへ通知

  8. 「Build Submitted」と緑のチェックマークが表示されれば成功です。

    Build Submitted

あとは、新しいベータバージョンができるたびに、この作業を繰り返すだけで、テストユーザへ通知、配布する事がかなり楽になります。

テストユーザを招待 > 承認

現時点では、メールでの通知しかできないんだと思います。招待するにもメールアドレスが必要そうなので、教えてもらいましょう。(他の招待方法があるのか調べ中)
開発者側は、招待した人からAcceptしてもらうと、自動でそのデバイスのUDIDを受け取ることができます。受け取ったUDIDは手動でiOS Provisioning Portal-Devicesに登録して、AdHoc用のプロビジョニングプロファイルを更新しましょう

  1. ダッシュボードから「Invite People」を選択。

    Invite People

  2. ここで入力するメールアドレスは、テストユーザさんのiPhoneなどでメール確認できるメアドがベターです。通常メインで使っているメアドは確認できるようにしていると思いますが、連絡できるような間柄なら先に確認しておくのもいいでしょう。メールアドレスを入力して、招待する人へメッセージを添えて送信します。「Team Developer?」は開発チームのメンバーでなければOFFにしときましょう。

    Invite a teammate

  3. 招待した人の承認待ちとなります。

    承認待ち

追記:テスターの方に簡単に説明できるように以下のグレイで囲まれた部分(テスターのための設定手順部分)にショートURLを用意しておきました。
「http://bit.ly/testflight_tester」です。
このURLを開くとこちらのアンカーリンク部分が表示されます。

TestFlightに招待された人のための設定

「TestFlight」というのは、iOS版アプリの開発段階(アプリをApp Storeに公開する前)に限られた人の間だけでベータテスティング(実際のものに近い段階でのアプリの動作確認)を行う際に、その細かなベータバージョンを配布しやすくしたサービスです。
このサービスを介して、新しいベータバージョンを簡単に(Installボタンを押すだけで)テスターのiOSデバイスにインストールする事ができるようになります。以下の手順で、アカウントを作成していけば、テストに使うデバイスのUDIDも自動的に開発チームに送信してくれます。

  1. 招待された側の人は、テスト機として使いたいデバイスでそのメールを確認します。

    TestFlightのTeamへの招待状

  2. メールの「Accept」をタップすると、Safariが立ち上がります。すでにアカウントを持っている人の場合、すぐにその招待状に対してAcceptできます。

    すでにアカウントを持っている人の場合

    まだ、アカウントを持っていない場合は、TestFlightにSign Upしてアカウントを作ります。

    新規アカウント作成
    Sign Up

  3. 招待にAcceptが完了し、testerになった旨が表示されます。

    You are now a tester.

  4. 「View All Apps」を選択すると、インストール可能なアプリが表示されます。過去にTestFlightを使ってテストした事があり、デベロッパーがそのデバイスをアプリに登録済みであれば、すぐにインストール可能な最新ビルドが表示されると思います。

    インストール可能なビルド

    初めてTestFlightを利用するデバイスの場合、「You have no apps yet」と表示されたりします。その場合、「Connect Current Device」(左上のメニューアイコンを押して「Device Information」を見るなど)を選択して、そのデバイスでTestFlightを使えるようにすると同時に、開発者にUDIDを知らせます(自動)。

    Connect Current Device

    「設定」画面で「Install」を押すように言われるので、その手順に従っていきます。

    Connect Device
    TestFlight Access
    プロファイルのインストール
    TestFlight WebClip

    この作業は、同じアカウントであっても別のデバイスでテストする場合には、必要な作業になります。「完了」を押すとSafariに戻り、「Device successfully conected!」と表示され、新しいビルド待ちとなります。

    Device successfully connected!

開発者によって新しいベータバージョンが準備され、テスターへ通知されると、登録したメアドに「noreply@n.testflightapp.com」からメールが届きます。そのメールに書かれている「Install」ボタンを押せば最新ベータバージョンを試す事ができるようになります。
テスト機では、このメールを受信できるようにしておきましょう。

UDIDの登録

テストユーザが上記の作業で新しいデバイスを登録すると、開発者にUDIDの情報がメールで送られてきます。

UDIDが送られてくる

開発者は、このデバイス情報をiOS Provisioning Portal-Devicesに登録して、AdHoc用のプロビジョニングプロファイルを更新後、新しいバージョンをビルドして、再び、TestFlightへアップロードします。

ここまでくれば、あとは、ビルド>通知、ビルド>通知、の繰り返しになります。

TestFlightにはSDKが用意されており、アプリにプログラムを組み込む事で、ユーザの動作をログする事ができ、デバッグに役立ちます。また、前述したように、Adobe AIRでは、Gaming SDKに含まれるANEを利用することで、簡単にその機能が使えるようです。ここではAdobe AIRアプリでの利用方法はまだMEMOしていませんが試してみる価値ありありです。

追記(2013.2.3):ADC(Adobe Developer Connection)でGaming SDKに関するSIHOさん記事が公開されました。Flash Proを使ってTestFlightによるデバッグを試してみたい方はぜひ。

コメント

  1. […] TestFlight とりあえずどんなものか […]

  2. […] Beta Testing(追記 2013.01.07:これについては詳しくはこちらも) […]

  3. […] identity not found」 | MUSHIKAGO APPS MEMO Problem while trying to set up distribution profile TestFlight とりあえずどんなものか | MUSHIKAGO APPS MEMO TestFlightの使い方と導入方法 | Technology-Gym 29 MARCH, 2013 < PREV POST […]

  4. […] んな人にテストしてもらうのに便利なサービス)にハマりました。スマホアプリ開発者にとってとても便利なサービスです。TestFlightについては、「TestFlight とりあえずどんなものか」を。 […]

  5. […] モード。iOS書き出しが超高速になります。インタープリターモードで書き出したものをTestFlightで配布できるようで、これは開発がかなり便利に!ただし、インタープリターモードで書き […]