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テスター(メールを受け取った人)の登録手順は以下のような感じになります。
- メールを受け取る
- メール内のURLからTestFlightアカウントを登録する
- “Register Device”からTestFlightのプロファイルをインストールする
- 端末のホーム画面にTestFlightのアイコンが出現する
MiCHiLU Labs. // TestFlightテスター登録の手順を解説 を参考にすれば、元々ほぼ一本道なので登録は意外と簡単だと思います。
アクティベートしていないiPhoneだと、プロファイルのインストールができないので、アクティベートした端末を使用する必要があります。JailbreakでHacktivateしているものがそれに該当すると思いますが、JBしてあってもアクティベートされていれば問題なく利用できます。
テスターがTestFlightの利用準備ができても、TestFlightアプリにインストールできるアプリ表示されるかは、招待されたチームのチームリーダー(開発者)が決定するようになっているので、開発者が手続きをするまでテスターが何かすることはないです。
テスターにアプリをインストールできるようにする(開発者視点)
テスターがTestFlightに登録する手順で2,3でそれぞれメールの通知が開発者にやってきます。3でくるメール通知にはテスターのUDIDが含まれているので、このUDIDを含んだProvisioning Profilesを使ってiOSアプリをビルドしないと、このテスターはアプリをインストールできません。(インストールするときにエラーになる)
そのため、開発者は3のメールを受け取ったら次のような手順でアプリのアップロードまでを行います。
- 3のメールに書かれているUDIDをコピー
- Provisioning PortalのAdd DevicesからUDIDを追加
- UDIDの追加が反映されたProvisioning ProfilesをXCodeにインストール
- Provisioning Profilesからダウンロードしてインストール
- 既にインストール済みのProvisioning Profilesなら、XCode -> Orfanizer -> Provisioning ProfilesからRefreshだけ大丈夫
- インストールしたProvisioning ProfilesをBuild SettingのCode Signingに指定
- Product -> Archiveを行いビルド
- OrganizerでShareからIdentityのsignを適当に(Ad-hocが推奨)行いipaファイルを生成
- TestFlightにipaファイルをアップロード
- インストールできるテスターを選択する画面で、先ほどのテスターにチェックを入れてComplete
これで、テスターもアプリをインストールできるようになります。
7のアップロードでいろいろとエラーが出たりすると思いますが、説明やググればなんとかなると思います。
自分の場合は、 Edit SchemeからArchiveがちゃんとReleaseビルドになっているかを書くにして、ShareでのCode SignをAd-hocのProvisioning Profileで行ったものをアップロードしています。
iOS Team Provisioning Profileでsignしたものでもアップロードできますが、Development Provisioning ProfilesなのでEntitlementsファイルのget-task-allowの値を変更しないとダメだった気がします。
その他のエラーなどの参考
新規テスターの追加はAdhocビルドの配布と同様に面倒な所がありますが、アプリのアップデートは更新したipaをアップロードするだけで行えるのでとても楽になります。(上記の手順で言うと5〜)
TestFlightの便利な機能
TestFlightで誰がどのアプリをインストールできるのかをアプリのアップデート事にConfirm Testers画面でチェックできますが、毎回特定のユーザー群を選ぶのは面倒なので、Distribution Listsを作ってユーザーのグループ分けをして管理するととても便利です。
また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もいろいろと強化されてきているので、これからもっと便利になると思います。