TestFlight » Beta Testing On The Fly
最近は Xamarin を使って iOS 向けアプリを書いていたりするんですが、テスター向けにアプリを配布するのが非常にめんどくさかったので、今回は TestFlight を使って配布することにしました。
普通に OTA でアプリを配布できるのが便利なのですが、用意されている SDK を組み込むとクラッシュレポートとか、セッション情報を見れたりするみたいなので組み込んでみます。
TestFlight » Beta Testing On The Fly
ちょっと調べてみた感じでは TestFlight SDK の iOS 向けバインディングは GitHub にて公開されているみたいですが、バイナリ自体は配布対象となっていないみたいでした。なので、ソースをダウンロードして自分でビルドすることにしました。
mono/monotouch-bindings · GitHub
MonoTouch (Xamarin.iOS) 向けのバインディングプロジェクトが沢山用意されています。とりあえずこのリポジトリを clone するか、Zip でダウンロードするなどして、ローカルに持ってきます。
ビルドするためには TestFlight SDK の 2.0.2 が必要になるみたいですが、現在の最新版は 2.1.3 なのでそれをダウンロードして、GitHub からダウンロードしてきたソースの中に TestFlight というディレクトリがあるので、さらにその中の binding ディレクトリに保存します。
ちなみにファイル名は 2.0.2 と変更しないと make で失敗するので変更してあります。
後は binding ディレクトリまでターミナルで移動して、make コマンドを実行するだけです。
これで TestFlight.dll がビルドされたので、後は Xamarin Studio でプロジェクトの参照に追加するだけです。ネイティブなバイナリ自体が DLL に埋め込まれているみたいなので、単体ファイルで問題ないみたいですね。
参照を追加したら、アプリの AppDelegate 内に TestFlight 開始用のコードを追加するだけで完了です。
public override bool FinishedLaunching(UIApplication app, NSDictionary options) { TestFlight.TakeOff("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"); }
そして最後に Xamarin Studio を使って TestFlight へ Ad-hoc ビルドされたバイナリをアップロードします。これは公式のドキュメントが詳しいので、そっちを参照してください。
ちなみに TestFlight へのアップロードが完了すると、ダッシュボードから組み込まれている SDK のバージョンの確認が出来ます。
ここでインストール数やクラッシュ回数も分かるので非常に便利ですね。
上手く設定が完了していると、TestFlight SDK を組み込んだアプリをインストールして、起動が行われたかといった情報が見れると思います。
今は UDID が取れなくなっているので Anonymous なユーザーとして扱われています。クラッシュした場合は別にクラッシュレポートのページがあるので、そちらから確認できるはずです。
テスターがどのバージョンをインストールして、どのぐらいの時間実行しているかなど簡単に見れるので、バグの発見に役に立ちそうです。