![見出し画像](https://assets.st-note.com/production/uploads/images/131950939/rectangle_large_type_2_633008caf9043c3939cc0fa84596c9f6.png?width=800)
【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ファイルを作成する
![](https://assets.st-note.com/img/1708788112282-vjrTtweCqX.png?width=800)
(上段メニュー)
Build → Generate Signed Bundles / APK を選択
![](https://assets.st-note.com/img/1708788129185-0akX8WXhMP.png?width=800)
「APK」を選択し「Next」ボタン押下
![](https://assets.st-note.com/img/1708788160706-99hnLoYw9l.png?width=800)
「アプリ署名鍵」設定の画面が出ます。
![](https://assets.st-note.com/img/1708788183426-VgaNbCL5hP.png?width=800)
「Create new」ボタン押下で、Android Keystoreを新規作成します。
![](https://assets.st-note.com/img/1708788211184-FPnPIIYV9K.png?width=800)
ちなみに、作成済みのAndroid Keystoreを使用する場合、「Choose Keystore file」ボタン押下となります。
※今回は新規作成するので「Create new」の方とします。
「アプリ署名鍵」の詳細については、公式を確認してください。
![](https://assets.st-note.com/img/1708788272633-f5SgXKoBfU.png)
・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 とします。
※それ以外の項目は省略
![](https://assets.st-note.com/img/1708788316747-F5TAoM0fha.png?width=800)
新規作成されてます。
「Next」ボタン押下。
![](https://assets.st-note.com/img/1708788384110-Uyok50dCjB.png?width=800)
debugは、デバッグ機能(ログ検出など)が付加されたapkファイルを作成します。
パスは app/debug/app-debug.apk となる。
releaseは、デバッグ機能無しの純粋なリリース用ファイルです。
debugのものより高速です。
パスは app/release/app-release.apk となる。
今回、学習用テストなのでdebugにしておきます。
リリースする場合はreleaseの方を選んでください。
![](https://assets.st-note.com/img/1708788407447-aOii0hT9Vq.png?width=800)
app-debug.apk が作成されます。
apkファイルをインストールする
このapkファイルをUSBケーブルで転送しても良いのですが、折角なのでオンライン的に実機に送りたいと思います。
方法は色々とありますが、メールに送付して送信しようとしました。
GmailからスマホのAUメールに送ろうとする
↓
Gmailではセキュリティー上、apkファイル出来ない。
送付したければGoogleドライブを介して送付しなさいとエラーが出る。
↓
Googleドライブを介して送付し送信
↓
なかなか届かない
↓
調べてみると、AUメールでは6MBの送付ファイルは、容量オーバーとなり受信出来ない。
↓
仕方無いのでGmailアプリを使い「送信済みのメール」にて送付されたapkファイルをクリックする事に。
![](https://assets.st-note.com/img/1708788449748-ihteTUzAqC.png?width=800)
いやはや、何とも手間の掛かることでしたが、ここからさらに手間が掛かることになる
![](https://assets.st-note.com/img/1708788923651-4MHaK7xmM1.png?width=800)
クリックすると、パッケージインストラーが出ます。
![](https://assets.st-note.com/img/1708788949962-ZTclbIFvdl.png?width=800)
インストールをしようとするも
![](https://assets.st-note.com/img/1708788974802-g8ANFn3Wn1.png?width=800)
こうなってしまうので
![](https://assets.st-note.com/img/1708789005581-MNbS0UqmKL.png?width=800)
この設定を
![](https://assets.st-note.com/img/1708789040061-FJYQvt8Py6.png?width=800)
ONにします。
![](https://assets.st-note.com/img/1708789071665-b8XvsVzdv4.png?width=800)
以前のものは置き換える。
インストール押下
GooglePlayプロテクト
![](https://assets.st-note.com/img/1708789200542-rcEra0adE5.png?width=800)
GooglePlayプロテクトに掛かってしまう。
![](https://assets.st-note.com/img/1708789238196-jkgNuORy5M.png?width=800)
Playストアを起動します。
![](https://assets.st-note.com/img/1708789290691-gSgcnVcbVE.png?width=800)
右上のアカウントアイコンをタップ。
そして「Playプロテクト」をタップします。
![](https://assets.st-note.com/img/1708789381578-BLdrf21BP1.png?width=800)
右上の歯車アイコンをタップ
![](https://assets.st-note.com/img/1708789395618-XeHpfWrnzV.png?width=800)
スキャンの設定を
![](https://assets.st-note.com/img/1708789499904-VXzGq6bXwI.png?width=800)
こんな風に
![](https://assets.st-note.com/img/1708789516041-zlacxtD0SN.png?width=800)
オフにします
で、インストールし直そうとすると
今度は「アプリはインストールされていません」とか出ます。
キャッシュを削除
調べたら、GooglePlayストアのキャッシュが残っている場合があるそうです。
![](https://assets.st-note.com/img/1708872631939-hQQqYbdbnj.png?width=800)
設定 → アプリと通知 → アプリをすべて表示 (アプリ一覧にて)GooglePlayストア → ストレージ とタップしていく。
![](https://assets.st-note.com/img/1708872657955-oTTi1gG1K4.png?width=800)
「キャッシュを削除」をタップする。
で、インストールし直そうとすると
またもや「アプリはインストールされていません」と出ます。
で、調査した結果、以前のを直接アンインストールしてみることに。
※アプリ名が「My Application」だった場合の例
設定 → アプリと通知 → アプリをすべて表示 (アプリ一覧にて)「My Application」 とタップしていく。
![](https://assets.st-note.com/img/1708872709018-Dmf97cPEIY.png?width=800)
アンインストールをタップ。
で、インストールし直しますと
![](https://assets.st-note.com/img/1708872732343-mxEr8EKJ9X.png?width=800)
今度こそ出来ました✨
いやはや、実が骨の折れるというか、完成品のインストールならまだしも、テスト作業には不向きかなと思いました。
著書
『 プログラマーにおくるAndroidアプリ開発の入門書』
2024年6月時点での最新技術をぎっしりと詰め込んであるので、アプリ開発に参画するエンジニアの人は、是非ともご覧になって頂ければと思います📱
この記事が気に入ったらサポートをしてみませんか?