Firebase App Distribution (Beta) 使ってますか?
Fabric から移行しないとなー的空気が漂う今日このごろ、つい最近 App Distribution によるテストアプリの配布が可能になり、いよいよ本格的に Firebase を使っていく流れができつつあります。

テストアプリの配布に関していろいろと検証していたところ、面白いことが分かりましたので書いてみようと思った次第です。

Firebase App Distribution はテスターを Google アカウントで管理する

さっそくですがこれがテスター管理画面です。
赤枠を付けたところがテスター情報で、上段がGoogleアカウント、下段が招待メールを送ったメールアドレスになります。

ん?って思った人がいるかもしれません。
「上段が『Googleアカウント』で下段が『Gmailアドレス』じゃないの?」と。

結論から言ってしまうと、そうとは限らないんですね。
Invitation を送ったメールアドレスが、テスターのGoogleアカウントのGmailとは限りません。

テスターを招待する時に宛先のメールアドレスをもらって、「テスターまたはグループを追加」から追加すると思います。
この時、もらうメールアドレスはGoogleアカウントのものでなくても構いません。
テスターがメールを受信できるメールアドレスなら何でも、なんならYahooでも問題ありません。

そのメールアドレスにメールを送った後、デバイスの所有者がメールから招待リンクを開きます。
開いたWebページがGoogleアカウントへのログインを要求してくるので、テストに使いたいアカウントでログインすることにより、そのアカウントがテスターとして登録されるわけです。
このとき、ログインするアカウントは最初に招待してもらったメールアドレスとは関係なくて構いません。

ここでログインされたGoogleアカウントがテスターとして登録され、Firebaseに認識され、このアカウントにテスト用アプリへのアクセスが許可されます。

そして、招待メールアドレスとテスターGoogleアカウントが紐付けられ、Firebaseによって管理されます。
その紐付いた状態を表したのが、最初のスクリーンショットになります。

招待メール(リンク)の拡散でテスターを増やすことはできない

ここでふと疑問が湧いてきます。
最初の招待メール、あるいはリンクを他の人に渡して、新しいテスターを増やすことができるか?ということです。

これも結論からいうと不可能です。
先述の通り、招待メールアドレスはテスターとして登録されたGoogleアカウントと紐付けられてFirebaseに管理されています。
したがって、すでにGoogleアカウントが紐付けられた招待メールアドレスの招待リンクからは、別のアカウントをそれ以上紐付けることができません。

テスターをGoogleアカウントで管理する、それを最初の招待メールアドレスと紐付ける。
これにより、一通の招待メールからテスターを無軌道に増やされることを防いでいるわけです。

Fabric Betaで発生していたことのある問題がこれによって解決されています。
Fabricでは招待リンクを入手してしまえば誰でもテストアプリをインストールすることができていましたが、Googleアカウントを使うFirebaseではそういうことはできなくなっています。

例えば、ブラウザ拡張機能などを利用している時に悪意あるコードを埋め込まれたりしてリンク情報を盗まれる可能性もゼロではありません。
Firebase App Distributionでは、たとえリンクを盗み出せても承認されたGoogleアカウント以外ではテストアプリをダウンロードすることができないので、そういう場合でも安心です。

テスターがデバイスを変えることは簡単にできる

それとは逆に、テストアプリへのアクセスを許可されたGoogleアカウントのユーザーは、自分のデバイスを変えることは簡単にできます。
テストアプリへのアクセス権はGoogleアカウントに紐付いているので、App Distribution のページにそのアカウントでログインすれば、どの端末でもテストアプリへアクセスすることが可能です。

Fabricの時でも別デバイスで招待リンクを開けば可能ではありました。これはこれで別段難しいわけではありませんでしたが、若干作業としては面倒な感じでした。
Firebaseではこれがアカウントで管理されているので、より今のサービスっぽい、直感的な管理ができそうな感じです。

終わり

テスター向けAndoirdテストアプリのインストール手順の記事もよかったらどうぞ
こちら

元記事はこちら

Firebase App Distribution と Fabric Beta のテスター管理の違いについて