Skip to content

DNET_AndroidDeployment

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

Androidのデプロイ

概要

Androidのデプロイについてまとめる。

Google Play (公式ストア)

  • 汎用的なアプリケーションを世界市場に対して配信するようなケース。
  • Googleの審査を受けてGoogle Playに登録し、
    AndroidデバイスからGoogle Play経由でインストール。

サイドローディング

概要(サイドローディング)

方法

ADB (Android Debug Bridge)でインストールする。

ADB (Android Debug Bridge)(Androidのデバッグの該当節を参照)

  • Debugの際は、

    • ADBと言うコマンド ライン ツールを使用して、
    • 端末・PC 間で、各種の通信・処理を行う。
  • Windows側の設定
    USBドライバのインストール

    • Android Studioを開き、

      • [File]-[Setting]の左ペインから

      • [Appearance&Behavior]-[System Setting]-[Android SDK]を開く。

      • [SDK Tools]タブから「Google USB Driver」にチェックを入れ、ダウンロードする。
        (ドライバは「%USERPROFILE%\AppData\Local\Android\Sdk\extras\google\usb_driver」にダウンロードされる。)

    • 端末をUSB接続した状態でデバイス・マネージャを開く。

      • 接続した端末の状態を確認する。
      • Google USB Driverの更新が必要な場合は更新する。
  • 端末側の設定

    • 開発者向けオプションの有効化
      開発者向けオプションが表示されていない場合は、
      端末情報のビルド番号を表示し、7回タップすると表示される。

    • [設定]-[開発者向けオプション]を開き「USBデバッグ」をONにする。
      端末画面に「USBデバッグを許可しますか?」と表示された場合は、OKを押す。

    ※ ココの手順は、スマホ・デバイスごとに異なるので、個別にググる

  • 端末への転送
    以下コマンドを実行(PATH環境変数の設定が必須。Android Studioの該当節を参照)

    • デバイスの接続状態を確認する。

      adb shell
      
    • デバイスにインストールを行う。

      adb install -r [apkファイル]
      
    • (例)

      adb install -r .\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk
      

業務アプリの配布専用のマーケットを自社で立ち上げる。

  • apkファイルを管理するようなサイト
  • ダウンロード・リンクをユーザーに知らせる。
  • この場合、以下の設定が必要になる。

設定:提供元不明のアプリの提供を許可する。

  • ダウンロード・サイトから提供する場合、

  • 各Androidデバイスで、
    設定 > セキュリティ > 提供元不明のアプリ をONにすると、
    方法を問わず、apkファイルをインストールできるようになる。

  • なお、WWWサーバのMIME Typeには、
    「*.apk」:「application/vnd.android.package-archive」
    を指定する必要がある。

apkファイルの署名

キーストア・ファイル作成

以下のコマンドを実行し、署名を行うキーストア・ファイルを作成する。

keytool

keytool -genkey -v -keystore [任意の文字列].keystore -alias [任意の文字列] -keyalg RSA -keysize 2048 -validity 10000

(例) keytool

PKCS #12の該当節を参照。

>keytool -genkey -v -keystore sample.keystore -alias sample -keyalg RSA -keysize 2048 -validity 10000
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
姓名は何ですか。
  [Unknown]:  hogehoge
組織単位名は何ですか。
  [Unknown]:  hisho
組織名は何ですか。
  [Unknown]:  seigi
都市名または地域名は何ですか。
  [Unknown]:  hiroshima
都道府県名または州名は何ですか。
  [Unknown]:  hatsukaichi
この単位に該当する2文字の国コードは何ですか。
  [Unknown]:  ja
CN=hogehoge, OU=hisho, O=seigi, L=hiroshima, ST=hatsukaichi, C=jaでよろしいですか。
[いいえ]:  y // ココ、おかしいけど、y/nでyをこたえる。
10,000日間有効な2,048ビットのRSAの鍵ペアと自己署名型証明書(SHA256withRSA)を生成しています
ディレクトリ名: CN=hogehoge, OU=hisho, O=seigi, L=hiroshima, ST=hatsukaichi, C=ja
<sample>の鍵パスワードを入力してください
        (キーストアのパスワードと同じ場合はRETURNを押してください):
新規パスワードを再入力してください:
[sample.keystoreを格納中]

Warning:
 JKSキーストアは独自の形式を使用しています。
 "keytool -importkeystore -srckeystore sample.keystore -destkeystore sample.keystore -deststoretype pkcs12"
 を使用する業界標準の形式であるPKCS12に移行することをお薦めします。

キーストアでapkファイルを署名

jarsigner

次に以下コマンドを実行し、署名付きapkファイルを作成する。

jarsigner -verbose -keystore [署名ファイル名] [apkファイル] [エイリアス名]

(例) jarsigner

>jarsigner -verbose -keystore sample.keystore .\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk sample
キーストアのパスワードを入力してください:
更新中: ...
追加中: ...
署名中: ...
jarは署名されました。

警告:
-tsaまたは-tsacertが指定されていないため、このjarにはタイムスタンプが付加されていません。
タイムスタンプがないと、署名者証明書の有効期限(2045-12-04)後または将来の失効日後に、ユーザーはこのjarを検証できない可能性があります。

参考

実機・エミュレータ

開発ツール毎

補足:Google Play では 2021 年 8 月以降、新規アプリの公開形式が APK から Android App Bundle(AAB)に切り替わっており、 署名も Play App Signing(アップロード鍵と配布鍵の分離)が既定になっている。 本文の APK + keytool / jarsigner の手順は、 サイドローディングや自社配布のケースを前提としたものとして読むとよい。 また「提供元不明のアプリ」の一括設定は Android 8.0 で廃止され、 インストール元アプリごとの許可(不明なアプリのインストール)に変更されている。

移行メモ

  • 元 Wiki では見出しそのものが他ページへのリンクになっていた箇所 (「ADB (Android Debug Bridge)でインストールする。」「Androidの実機」 「Androidのエミュレータ」「Cordova - ビルドとデプロイ」 「Flutter - ビルドとデプロイ」「ReactNative - ビルドとデプロイ」)は、 GitHub Wiki では見出しからアンカが生成されるため、 見出しをプレーン・テキストとし、リンクは直下の本文(箇条書き)に置いた。
  • 同名の見出し(「概要」「(例)」)が複数あり GitHub Wiki でアンカが衝突するため、 括弧などで文脈を補って一意にした。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの PKCS に張り替えた。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名 の該当節を参照)」の形に置き換えた。

Tags: 移行, Android, デプロイ, Google Play, サイドローディング, ADB, apk, keytool, jarsigner, 署名

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally