見出し画像

【Androidアプリ開発】4:APKファイル作成(野良アプリなどで使用)及び端末へのインストール


本記事の概要

概要

前回『プレビュー機能、実機テストとの戦い』からの続きです。

今回は「APKファイル作成(野良アプリなどで使用)及び端末へのインストール」へと挑む。

APKファイル

apkファイル

●apkファイル

実機テストにおいて、前回はUSB接続によるインストールを行いました。

こういった物理的(USBケーブル)ではなく、オンライン形式として「Wifiインストール」があります。
しかし、これはAndroid11未満なのでが出来ません。

何か良い方法はないものだろうか❓

… という訳で、今回は「apkファイル」なるものにチャレンジしたいと思います。

●AAB(Android App Bundle)
Google Play等、正規のアプリストアで公開するためのファイル形式。

●APKファイル
インストールや実行が可能なファイル形式。

つまり「apkファイル」を作成すれば、どこかにアップしてダウンロードしても良し、メールで送っても良しとなる訳です。
俗に言う「野良アプリ」もapkファイルが使われてます。

【注意点】
正規のアプリストア以外で、配信されている「野良アプリ」のインストールは危険です。
アプリのインストールは、原則、公式であるGoogle Playからのみにしてください。
※今回、「自作アプリのテスト」という事でapkファイルの作成及びインストールを行ってます。

apkファイルを作成する

●apkファイルを作成する

(上段メニュー)
Build → Generate Signed Bundles / APK を選択

「APK」を選択し「Next」ボタン押下

「アプリ署名鍵」設定の画面が出ます。

Create new」ボタン押下で、Android Keystoreを新規作成します。

ちなみに、作成済みのAndroid Keystoreを使用する場合、「Choose Keystore file」ボタン押下となります。
※今回は新規作成するので「Create new」の方とします。

「アプリ署名鍵」の詳細については、公式を確認してください。

・Key store path:KeyStoreのパス。
「KeyStore」とは、署名鍵や署名書を保存する場所のことです。

テスト用なので、ファイル名は test.jks。
/home/test/test.jks とします(Linuxの場合)。
macOSの場合は /Users/ユーザー名/ファイル名.jks のような感じになります。

本来は、KeyStore用ディレクトリを作成し
/home/ユーザー名/KeyStoreディレクトリ/ファイル名.jks としておくべきですが、学習用なので簡略化しユーザー直下においてます。

jksファイルは、暗号鍵と証明書を保存する Java KeyStore ファイルとなります。

・Password:KeyStoreのパスワード
Confirmは、再入力確認となります。

次に、Key(証明鍵)関連。

・Alias:署名鍵のエイリアス(別名)
取り敢えずデフォルトの key0 のままにしておきます。

・Password:署名鍵のパスワード
Confirmは、再入力確認となります。

・Validity(years):有効期限
ここでは25年のままとします。

最後に、Certificate(証明書)関連。

・First and Last Name:証明書のホスト名
よく、「作成者の氏名」と間違われますが、本当は『証明書のホスト名』(ドメインなど)を入力する場所です。
今回、学習用なので test とします。

※それ以外の項目は省略

新規作成されてます。
「Next」ボタン押下。

debugは、デバッグ機能(ログ検出など)が付加されたapkファイルを作成します。
パスは app/debug/app-debug.apk となる。

releaseは、デバッグ機能無しの純粋なリリース用ファイルです。
debugのものより高速です。
パスは app/release/app-release.apk となる。

今回、学習用テストなのでdebugにしておきます。
リリースする場合はreleaseの方を選んでください。

app-debug.apk が作成されます。

apkファイルをインストールする

このapkファイルをUSBケーブルで転送しても良いのですが、折角なのでオンライン的に実機に送りたいと思います。

方法は色々とありますが、メールに送付して送信しようとしました。

GmailからスマホのAUメールに送ろうとする

Gmailではセキュリティー上、apkファイル出来ない。
送付したければGoogleドライブを介して送付しなさいとエラーが出る。


Googleドライブを介して送付し送信

なかなか届かない

調べてみると、AUメールでは6MBの送付ファイルは、容量オーバーとなり受信出来ない。

仕方無いのでGmailアプリを使い「送信済みのメール」にて送付されたapkファイルをクリックする事に。

いやはや、何とも手間の掛かることでしたが、ここからさらに手間が掛かることになる

クリックすると、パッケージインストラーが出ます。

インストールをしようとするも

こうなってしまうので

この設定を

ONにします。

以前のものは置き換える。
インストール押下

GooglePlayプロテクト

GooglePlayプロテクトに掛かってしまう。

Playストアを起動します。

右上のアカウントアイコンをタップ。
そして「Playプロテクト」をタップします。

右上の歯車アイコンをタップ

スキャンの設定を

こんな風に

オフにします

で、インストールし直そうとすると
今度は「アプリはインストールされていません」とか出ます。

キャッシュを削除

調べたら、GooglePlayストアのキャッシュが残っている場合があるそうです。

設定 → アプリと通知 → アプリをすべて表示 (アプリ一覧にて)GooglePlayストア → ストレージ とタップしていく。

「キャッシュを削除」をタップする。

で、インストールし直そうとすると
またもや「アプリはインストールされていません」と出ます。

で、調査した結果、以前のを直接アンインストールしてみることに。
※アプリ名が「My Application」だった場合の例

設定 → アプリと通知 → アプリをすべて表示 (アプリ一覧にて)「My Application」 とタップしていく。

アンインストールをタップ。

で、インストールし直しますと

今度こそ出来ました✨

いやはや、実が骨の折れるというか、完成品のインストールならまだしも、テスト作業には不向きかなと思いました。

著書

プログラマーにおくるAndroidアプリ開発の入門書
2024年6月時点での最新技術をぎっしりと詰め込んであるので、アプリ開発に参画するエンジニアの人は、是非ともご覧になって頂ければと思います📱


この記事が参加している募集

#やってみた

37,014件

この記事が気に入ったらサポートをしてみませんか?