0.はじめに
自作した Android アプリを実機でテストするにあたり、
Google Play 以外にどういう配信方法があるのか、色々と試してみました。
1.APK デジタル署名したパッケージファイル(.apkファイル)を準備する
- Android Studio からデジタル署名したパッケージファイル (.apk ファイル) を作成します。
- 以下のページの手順を参考に。
- Androidで署名付きapkを作成する - Qiita
- 【注意】メニューからは、「Build APK」ではなく、「Generate Signed APK...」を選択すること。
- 以下のページの手順を参考に。
2.配信方法
以下の配信方法を試してみたいと思います。
- パソコンから ADB (Android Debug Bridge) を使って USB ケーブル経由で配信
- メール (Gmail) で配信
- クラウドストレージサービス (Google Drive) を通じて配信
- チャットなどのクラウドサービス (Chatwork) で配信
- ウェブサイト (Amazon S3) で配信
- ※ 参考:
2−1.パソコンから ADB (Android Debug Bridge) を使って USB ケーブル経由で配信
-
パソコンに ADB をインストール
- 以下のページの手順を参考に。
$ cd $ ls -la $ sudo cp -p .bash_profile .bash_profile.ORG $ ls -la $ sudo echo 'export PATH="$PATH:/Users/{ユーザー名}/Library/Android/sdk/platform-tools"' >> ~/.bash_profile $ source .bash_profile $ which adb
パソコンに USB ケーブルで実機を接続
-
ADB から パッケージファイル (.apk ファイル) をインストール
- 以下のページの手順を参考に。
$ adb install app-release.apk Success
-
ADB から パッケージファイル (.apk ファイル) をアップデート
- 以下のページの手順を参考に。
$ adb install -r app-release.apk Success
ざっくりと、まとめ
-
メリット
-
無料。
- ただ、パソコン必要だけどね…。
-
インストール時、ネット接続不要。
- あくまで、インストール時の話…。
-
端末側で「提供元不明のアプリ」の許可設定を行う必要がない。
-
無料。
-
デメリット
- USB ケーブルとパソコンが必要。
- パソコンに ADB をインストールしないといけない。
- ターミナルからコマンドを打たないといけない。
-
アプリの更新の通知や配信は別途必要。
- っていうか、この手順はあくまでインストールの手順だけ…。
- 何か無駄なことしてるだけの気が…。
2−2.メール (Gmail) で配信
- 事前に、端末側で「提供元不明のアプリ」の許可設定を行う。
- セキュリティ上あまりよろしく無いかもしれませんが…、「提供元不明のアプリ」の許可設定を行います。
- 以下のページの手順を参考に。
- パッケージファイル (.apk ファイル) をメールに添付して送ります。
- 端末側で Gmail からメールを確認します。
- 添付されているパッケージファイル (.apk ファイル) をタッチします。
- インストールの確認画面が表示されるので、「インストール」リンクをタッチします。
- インストールが開始され、インストールが完了すると以下の画面が表示されるので、「開く」リンクをタッチするとアプリが起動します。
- アプリを更新したい場合は、同様の手順でアップデートできます。
ざっくりと、まとめ
-
メリット
- 無料。
- アプリの更新の通知と配信を一回のメール送信で出来る。
-
特定のユーザーへの配信ができる。
- 逆に不特定多数への配信は出来ない。
- 逆に不特定多数への配信は出来ない。
-
デメリット
- 端末側で「提供元不明のアプリ」の許可設定を行う必要がある。
- 事前に配信先のメールアドレスを知っておく必要がある。
- メール添付ってセキュリティ的にどうなんだろう…。宛先ミスったりすると恐い…。
- それなりに大きいファイルをメール添付で送ると、場合によっては受信できないこともある気がする…。ネットワーク的にも何か…。
2−3.クラウドストレージサービス (Google Drive) を通じて配信
基本的には、「2−2.メール (Gmail) で配信」と同じ様な感じですが、配信がメール (Gmail) ではなく、クラウドストレージサービス (Google Drive) を使います。
- 事前に、端末側で「提供元不明のアプリ」の許可設定を行う。
- クラウドストレージサービス (Google Drive) でパッケージファイル (.apk ファイル) をアップロードし、ファイルやフォルダを共有します。
- 端末側でクラウドストレージサービス (Google Drive) を確認します。
- パッケージファイル (.apk ファイル) をタッチします。
- インストールの確認画面が表示されるので、「インストール」リンクをタッチします。
- インストールが開始され、インストールが完了すると以下の画面が表示されるので、「開く」リンクをタッチするとアプリが起動します。
- アプリを更新したい場合は、同様の手順でアップデートできます。
ざっくりと、まとめ
-
メリット
- 無料。
-
特定のユーザーのみへの配信も不特定多数への配信も出来る。
- クラウドストレージサービス (Google Drive) の共有の設定による。
- クラウドストレージサービス (Google Drive) の共有の設定による。
-
デメリット
- 端末側で「提供元不明のアプリ」の許可設定を行う必要がある。
-
アプリの更新の通知と配信を一回で出来ない。
- こういうやり方もあるみたいだが…。
- 事前に共有するユーザーのメールアドレスを知っておく必要がある。
2−4.チャットなどのクラウドサービス (Chatwork) で配信
基本的には、「2−2.メール (Gmail) で配信」と同じ様な感じですが、配信がメール (Gmail) ではなく、チャットなどのクラウドサービス (Chatwork) を使います。
- 事前に、端末側で「提供元不明のアプリ」の許可設定を行う。
- チャットなどのクラウドサービス (Chatwork) でパッケージファイル (.apk ファイル) をアップロードします。
- 端末側でチャットなどのクラウドサービス (Chatwork) を確認します。
- パッケージファイル (.apk ファイル) をダウンロードします。
- インストールの確認画面が表示されるので、「インストール」リンクをタッチします。
- インストールが開始され、インストールが完了すると以下の画面が表示されるので、「開く」リンクをタッチするとアプリが起動します。
- アプリを更新したい場合は、同様の手順でアップデートできます。
ざっくりと、まとめ
-
メリット
-
無料のものも。有料のものも
- 各種サービスの料金形態によるかな。
-
特定のユーザーのみへの配信が出来る。
- 不特定多数への配信は、各種サービスの共有の設定の仕様によるかな?
-
アプリの更新の通知と配信を一回で出来る。
- 各種サービスの仕様にもよるけど。
- 各種サービスの仕様にもよるけど。
-
無料のものも。有料のものも
-
デメリット
- 端末側で「提供元不明のアプリ」の許可設定を行う必要がある。
- 配信先と配信元が同じサービスを利用していることが前提。
2−5.ウェブサイト (Amazon S3) で配信
基本的には、「2−2.メール (Gmail) で配信」と同じ様な感じですが、配信がメール (Gmail) ではなく、ウェブサイト (Amazon S3) を使います。っていうか、ウェブサイトの構築をするのか?って感じもあるけど…。
- 事前に、端末側で「提供元不明のアプリ」の許可設定を行う。
- ウェブサイト (Amazon S3) を構築し、パッケージファイル (.apk ファイル) をアップロードします。
- 以下のページの手順を参考に。
- 端末側でウェブサイト (Amazon S3) を確認します。
- パッケージファイル (.apk ファイル) をダウンロードします。
- インストールの確認画面が表示されるので、「インストール」リンクをタッチします。
- インストールが開始され、インストールが完了すると以下の画面が表示されるので、「開く」リンクをタッチするとアプリが起動します。
- アプリを更新したい場合は、同様の手順でアップデートできます。
ざっくりと、まとめ
-
メリット
-
不特定多数への配信が出来る。
- 逆に、特定のユーザーのみへの配信は出来ない。
- IP アドレスでの制限とか、IAM や Lambda とか使ってどうこうっていうのは出来る気がするけど…。
-
不特定多数への配信が出来る。
-
デメリット
-
有料。
- 多少お金は掛かる。
- サーバーの構築や運用の手間が掛かる。
- 端末側で「提供元不明のアプリ」の許可設定を行う必要がある。
-
アプリの更新の通知と配信をプッシュ出来ない。
- Lambda とか使って何か出来そうだけど…。
- ユーザー側が勝手に見に行くか、
- アプリ側に更新チェックの機能を付ける?
-
有料。
99.ハマりポイント
- 特にハマったところはなかったんですが、さすがにまとめるのが大変でした…。
XX.まとめ
全般的なまとめです。
1. PCから USB接続で |
2. メール (Gmail) |
3. ストレージサービス (GoogleDrive) |
4. チャットサービス など |
5. ウェブサイト (Amazon S3) |
|
---|---|---|---|---|---|
費用 | 不要 | 不要 | 不要 | 場合によっては サービス利用料が掛かる |
ウェブサイト(Amazon S3) の運用費用が掛かる |
その他 付属物品や サービス |
PC, USBケーブル |
不要 | ストレージサービス (GoogleDrive) |
チャットサービス など |
ウェブサイト (Amazon S3) |
ネット | インストール時は不要 ※通知&配信に関しては別途 |
必要 | 必要 | 必要 | 必要 |
「提供元不明のアプリ」 の許可設定 |
不要 | 必要 | 必要 | 必要 | 必要 |
手間や 難易度 |
[中] | [小] | [小] | [小] | [大] |
ADBのインストール コマンド実行 など ※通知&配信に関しては別途 |
対象数にもよるが、 ただのメール送信 |
アップロードするだけ ※通知に関しては別途 |
投稿するだけなので 一番簡単 |
ウェブサイトの構築 運用など ※通知に関しては別途 |
|
インストール の通知 |
別途必要 | 一通のメール送信で 通知&配信 |
別途必要 ※作り込めば… |
一度の投稿で 通知&配信 |
別途必要 ※作り込めば… |
インストール の配信 |
ストレージサービス (GoogleDrive) |
ウェブサイト (Amazon S3) |
|||
アップデート の通知 |
別途必要 ※作り込めば… |
別途必要 ※作り込めば… |
|||
アップデート の配信 |
ストレージサービス (GoogleDrive) |
ウェブサイト (Amazon S3) |
|||
対象 | ※通知&配信方法に寄る | 特定ユーザ:○ ※事前にメールアドレスの取得が必要 |
特定ユーザ:○ ※事前にメールアドレスの取得が必要 |
特定ユーザ:○ ※同じサービスを利用が前提 |
特定ユーザ:× ※かなり頑張って作り込めば… |
不特定多数ユーザ:× | 不特定多数ユーザ:○ ※サービスの共有設定の仕様に寄る |
不特定多数ユーザ:△ ※サービスの共有設定の仕様に寄る |
不特定多数ユーザ:○ | ||
※ 備考 |
何か無駄なことしてる気が… | メール添付って 最近セキュリティ的に… |
Google Play を使わないとなると、
やはり基本的には本当に少人数への数回程度の、っていう感じかなと思います。
1 の PC 経由の ADB でのインストールは、どちらかというと本格運用後の検証等で利用する手順みたいですね。
ウェブサイト経由の配信は、本格運用でも使える様にも思いますが、やっぱり「提供元不明のアプリ」としての配信となってしまうのは、気持ち悪さがありますね。
ただ、不特定多数へ配信したくないのであれば、こういうやり方もいいのかもしれません。でも、その際はアプリ側に更新チェックの機能をつけた方がいい気がします。じゃないとユーザーが利用するアプリのバージョンをあまりにも管理できなくて辛くなるかなと。
とりあえず今回は、Google Play 以外の配信方法を試してみたので、
次は Google Play での配信を試してみたいと思います。
↓↓↓
コメント
@Yoji0806リンクをコピー このコメントを報告 1
@kusokamayarouリンクをコピー このコメントを報告 0
丁度探していた情報を丁寧にわかりやすくありがとうございます!
総合的にGmailが良さそうですね
@Yoji0806 さん
わざわざコメントありがとうございます! 🙇♂️
ご参考になれば、幸いです。
アプリの開発頑張ってくださいね♪