Tag Archives: Webservice

TestFlight というiOSアプリのテスト版の配布をとても楽にするWebサービスが便利なので、使い方や利用方法の紹介です。

開発者視点と利用者(テスター)視点の2種類あるので、まずは開発者視点から

TestFlight » iOS beta testing on the fly から開発者なので”I am a developer”にチェックを入れてアカウント登録をします。
ログインしてDashboardのTeam Managementタブから、試してもらいたいアプリのテスターを増やしていきます。
テスターの追加方法は2種類あり、 チームメイトとリクルートがあります。

  • Invite a Teammateからメールを送りチームメイトに加える
  • Recruitment URL(or 各アプリのページから)からリクルートテスターとして加える。

内部の人ならチームメイトで、外部の人に試してもらうならリクルートというような使い分けでいいと思います。リクルートで追加した人はTestFlight » Edit Recruitment OptionsからCloseすれば、そこでテスターとしての役割は終わりになるので、一時的な利用者という感じの使い分けもできます。

まずはテスターを追加しないと意味が無いので、チームメイトに追加する方法から見ていきます。(リクルートも殆ど同じです)
Invite a Teammateからチームメイトにしたい人へメールを送り、メールを受け取った人はTestFlightへの登録をする必要があります。

TestFlightテスターの登録手順(テスター視点)

TestFlightテスター(メールを受け取った人)の登録手順は以下のような感じになります。

  1. メールを受け取る
  2. メール内のURLからTestFlightアカウントを登録する
  3. “Register Device”からTestFlightのプロファイルをインストールする
  4. 端末のホーム画面にTestFlightのアイコンが出現する

MiCHiLU Labs. // TestFlightテスター登録の手順を解説 を参考にすれば、元々ほぼ一本道なので登録は意外と簡単だと思います。
アクティベートしていないiPhoneだと、プロファイルのインストールができないので、アクティベートした端末を使用する必要があります。JailbreakでHacktivateしているものがそれに該当すると思いますが、JBしてあってもアクティベートされていれば問題なく利用できます。

テスターがTestFlightの利用準備ができても、TestFlightアプリにインストールできるアプリ表示されるかは、招待されたチームのチームリーダー(開発者)が決定するようになっているので、開発者が手続きをするまでテスターが何かすることはないです。

テスターにアプリをインストールできるようにする(開発者視点)

テスターがTestFlightに登録する手順で2,3でそれぞれメールの通知が開発者にやってきます。3でくるメール通知にはテスターのUDIDが含まれているので、このUDIDを含んだProvisioning Profilesを使ってiOSアプリをビルドしないと、このテスターはアプリをインストールできません。(インストールするときにエラーになる)

NewImage

そのため、開発者は3のメールを受け取ったら次のような手順でアプリのアップロードまでを行います。

  1. 3のメールに書かれているUDIDをコピー
  2. Provisioning PortalAdd DevicesからUDIDを追加
  3. UDIDの追加が反映されたProvisioning ProfilesをXCodeにインストール
    1. Provisioning Profilesからダウンロードしてインストール
    2. 既にインストール済みのProvisioning Profilesなら、XCode -> Orfanizer -> Provisioning ProfilesからRefreshだけ大丈夫
      NewImage
  4. インストールしたProvisioning ProfilesをBuild SettingのCode Signingに指定
    NewImage
  5. Product -> Archiveを行いビルド
  6. OrganizerでShareからIdentityのsignを適当に(Ad-hocが推奨)行いipaファイルを生成
  7. TestFlightにipaファイルをアップロード
  8. インストールできるテスターを選択する画面で、先ほどのテスターにチェックを入れてComplete

これで、テスターもアプリをインストールできるようになります。

7のアップロードでいろいろとエラーが出たりすると思いますが、説明やググればなんとかなると思います。
自分の場合は、 Edit SchemeからArchiveがちゃんとReleaseビルドになっているかを書くにして、ShareでのCode SignをAd-hocのProvisioning Profileで行ったものをアップロードしています。

NewImage

iOS Team Provisioning Profileでsignしたものでもアップロードできますが、Development Provisioning ProfilesなのでEntitlementsファイルのget-task-allowの値を変更しないとダメだった気がします。

その他のエラーなどの参考

新規テスターの追加はAdhocビルドの配布と同様に面倒な所がありますが、アプリのアップデートは更新したipaをアップロードするだけで行えるのでとても楽になります。(上記の手順で言うと5〜)

TestFlightの便利な機能

TestFlightで誰がどのアプリをインストールできるのかをアプリのアップデート事にConfirm Testers画面でチェックできますが、毎回特定のユーザー群を選ぶのは面倒なので、Distribution Listsを作ってユーザーのグループ分けをして管理するととても便利です。

NewImage

またTestFlightのActivity表示はリアルタイムで反映されるので、誰がインストールしたかやメールを受け取ったなどの状態がわかるのでとても使い易いです。

TestFlight SDKを利用すれば、配布するだけの場所ではなくてフィードバックやインストールした端末でのlog(NSLogでコンソールに表示する部分)を収集できるので、より多くの情報をテスターから得ることができます。

また一つで複数の端末を持っている場合も、わざわざUSBを繋いでビルドしなくても無線からインストールできるため、個人利用でも意外と便利だったりします。

ハマった所

  • UDIDは全アカウントで1つのみ
    他のアカウントで登録してあるUDIDの端末で、別アカウントをつくろうとするDuplicateというエラーになりプロファイルのインストールが完了しない
    -> TestFlight » Your Accountでremoveしてから、別アカウントを作る
  • XCode4.2でビルドしたものをアップロードすると、iOS4.2とかの端末で
    This device cannot install this build. This build was compiled for an architecture that this device doesnt support. Contact your developer to have them release a new build for your architecture.”
    となりインストールできなくなった
    -> Xcode 4.2 doesn’t support armv6 natively | 85devlog の通りに、Architecturesをarmv6に変更してビルドするとインストールできるようになった。
  • アップロード時にエラーがでる
    これはかなり遭遇したけど大抵はビルド設定の問題なので、ちゃんと正しいcode signなのかやArchieveのビルド設定等を確認して試す。(Provisioning Profileがいつの間にかおかしくなってるとかXCodeがおかしいような問題もあるので確認する)

元々のAdhoc配布が不便すぎるので、TestFlightでの配布方法はとても楽で、なくてはならないような存在です。
TestFlight SDKもいろいろと強化されてきているので、これからもっと便利になると思います。