Android
gmail
adb
GoogleDrive
GooglePlay

Google Play 以外の Android アプリの配信方法(インストールとアップデート)を試してみる

More than 1 year has passed since last update.


0.はじめに

自作した Android アプリを実機でテストするにあたり、

Google Play 以外にどういう配信方法があるのか、色々と試してみました。


1.APK デジタル署名したパッケージファイル(.apkファイル)を準備する


  1. Android Studio からデジタル署名したパッケージファイル (.apk ファイル) を作成します。




2.配信方法

以下の配信方法を試してみたいと思います。


  1. パソコンから ADB (Android Debug Bridge) を使って USB ケーブル経由で配信

  2. メール (Gmail) で配信

  3. クラウドストレージサービス (Google Drive) を通じて配信

  4. チャットなどのクラウドサービス (Chatwork) で配信

  5. ウェブサイト (Amazon S3) で配信


2−1.パソコンから ADB (Android Debug Bridge) を使って USB ケーブル経由で配信



  1. パソコンに 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




  2. パソコンに USB ケーブルで実機を接続




  3. ADB から パッケージファイル (.apk ファイル) をインストール

    $ adb install app-release.apk 
    
    Success





  4. ADB から パッケージファイル (.apk ファイル) をアップデート

    $ adb install -r app-release.apk 
    
    Success




ざっくりと、まとめ



  • メリット



    • 無料。


      • ただ、パソコン必要だけどね…。




    • インストール時、ネット接続不要。


      • あくまで、インストール時の話…。




    • 端末側で「提供元不明のアプリ」の許可設定を行う必要がない。







  • デメリット


    • USB ケーブルとパソコンが必要。

    • パソコンに ADB をインストールしないといけない。

    • ターミナルからコマンドを打たないといけない。


    • アプリの更新の通知や配信は別途必要。


      • っていうか、この手順はあくまでインストールの手順だけ…。

      • 何か無駄なことしてるだけの気が…。






2−2.メール (Gmail) で配信


  1. 事前に、端末側で「提供元不明のアプリ」の許可設定を行う。



  2. パッケージファイル (.apk ファイル) をメールに添付して送ります。




  3. 端末側で Gmail からメールを確認します。



    • 0001.jpg





    • 0002.jpg





    • 0003.jpg






  4. 添付されているパッケージファイル (.apk ファイル) をタッチします。



    • 0004.jpg






  5. インストールの確認画面が表示されるので、「インストール」リンクをタッチします。



    • 0005.jpg



      事前に、端末側で「提供元不明のアプリ」の許可設定を行っていないと、以下の画面が表示されます。


    • 0005-x.jpg






  6. インストールが開始され、インストールが完了すると以下の画面が表示されるので、「開く」リンクをタッチするとアプリが起動します。



    • 0007.jpg





    • 0008.jpg






  7. アプリを更新したい場合は、同様の手順でアップデートできます。




ざっくりと、まとめ



  • メリット


    • 無料。

    • アプリの更新の通知と配信を一回のメール送信で出来る。


    • 特定のユーザーへの配信ができる。


      • 逆に不特定多数への配信は出来ない。









  • デメリット


    • 端末側で「提供元不明のアプリ」の許可設定を行う必要がある。

    • 事前に配信先のメールアドレスを知っておく必要がある。

    • メール添付ってセキュリティ的にどうなんだろう…。宛先ミスったりすると恐い…。

    • それなりに大きいファイルをメール添付で送ると、場合によっては受信できないこともある気がする…。ネットワーク的にも何か…。




2−3.クラウドストレージサービス (Google Drive) を通じて配信

基本的には、「2−2.メール (Gmail) で配信」と同じ様な感じですが、配信がメール (Gmail) ではなく、クラウドストレージサービス (Google Drive) を使います。


  1. 事前に、端末側で「提供元不明のアプリ」の許可設定を行う。




  2. クラウドストレージサービス (Google Drive) でパッケージファイル (.apk ファイル) をアップロードし、ファイルやフォルダを共有します。



  3. 端末側でクラウドストレージサービス (Google Drive) を確認します。




  4. パッケージファイル (.apk ファイル) をタッチします。




  5. インストールの確認画面が表示されるので、「インストール」リンクをタッチします。




  6. インストールが開始され、インストールが完了すると以下の画面が表示されるので、「開く」リンクをタッチするとアプリが起動します。




  7. アプリを更新したい場合は、同様の手順でアップデートできます。




ざっくりと、まとめ


2−4.チャットなどのクラウドサービス (Chatwork) で配信

基本的には、「2−2.メール (Gmail) で配信」と同じ様な感じですが、配信がメール (Gmail) ではなく、チャットなどのクラウドサービス (Chatwork) を使います。


  1. 事前に、端末側で「提供元不明のアプリ」の許可設定を行う。




  2. チャットなどのクラウドサービス (Chatwork) でパッケージファイル (.apk ファイル) をアップロードします。




  3. 端末側でチャットなどのクラウドサービス (Chatwork) を確認します。




  4. パッケージファイル (.apk ファイル) をダウンロードします。




  5. インストールの確認画面が表示されるので、「インストール」リンクをタッチします。




  6. インストールが開始され、インストールが完了すると以下の画面が表示されるので、「開く」リンクをタッチするとアプリが起動します。




  7. アプリを更新したい場合は、同様の手順でアップデートできます。




ざっくりと、まとめ



  • メリット



    • 無料のものも。有料のものも


      • 各種サービスの料金形態によるかな。




    • 特定のユーザーのみへの配信が出来る。


      • 不特定多数への配信は、各種サービスの共有の設定の仕様によるかな?




    • アプリの更新の通知と配信を一回で出来る。


      • 各種サービスの仕様にもよるけど。









  • デメリット


    • 端末側で「提供元不明のアプリ」の許可設定を行う必要がある。

    • 配信先と配信元が同じサービスを利用していることが前提。




2−5.ウェブサイト (Amazon S3) で配信

基本的には、「2−2.メール (Gmail) で配信」と同じ様な感じですが、配信がメール (Gmail) ではなく、ウェブサイト (Amazon S3) を使います。っていうか、ウェブサイトの構築をするのか?って感じもあるけど…。


  1. 事前に、端末側で「提供元不明のアプリ」の許可設定を行う。




  2. ウェブサイト (Amazon S3) を構築し、パッケージファイル (.apk ファイル) をアップロードします。



  3. 端末側でウェブサイト (Amazon S3) を確認します。




  4. パッケージファイル (.apk ファイル) をダウンロードします。




  5. インストールの確認画面が表示されるので、「インストール」リンクをタッチします。




  6. インストールが開始され、インストールが完了すると以下の画面が表示されるので、「開く」リンクをタッチするとアプリが起動します。




  7. アプリを更新したい場合は、同様の手順でアップデートできます。




ざっくりと、まとめ



  • メリット



    • 不特定多数への配信が出来る。


      • 逆に、特定のユーザーのみへの配信は出来ない。

      • 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 での配信を試してみたいと思います。