2
4

More than 3 years have passed since last update.

[Flutter] AppBundle をビルド + 実機にインストール

Last updated at Posted at 2020-01-02

Flutter の公式ドキュメントは Build and release an Android app

1. bundletool のインストール

brew install bundletool

詳細は bundletool の公式ドキュメント を参照

2. App Bundle の build + 実機へのインストール

build flavor による分岐も含めて、こんな感じでスクリプト化しています。普段から頻繁に使うので。

export KEY_STORE_PASS=XXX
export KEY_PASS=YYY
./scripts/install_aab.sh -f development -s
scripts/build_aab.sh
#!/bin/sh

# 以下2つは、環境変数としてセットされていることを前提とする
# • KEY_STORE_PASS
# • KEY_PASS

SKIP_INSTALL=0
while getopts sf: OPT
do
    case $OPT in
        s)  SKIP_INSTALL=1
            ;;
        f)  FLAVOR=$OPTARG
            ;;
    esac
done

AAB_PATH=/sampleProjects/${FLAVOR}Release/app-${FLAVOR}-release.aab
APKS_PATH=/sampleProjects/build/app/outputs/app.apks
KEY_STORE_PATH=/foo/bar/key.jks
KEY_ALIAS=key

# 生成済みだとエラーになるので、まず削除する
rm $APKS_PATH

# aab の build
flutter build appbundle -t lib/main_${FLAVOR}.dart --release --flavor ${FLAVOR}

# aab を実機に install しなくていい場合は、ここで終了
if [ $SKIP_INSTALL -eq 1 ]; then
  exit
fi

# bundletool を使って aab, apks を生成する
# See: https://developer.android.com/studio/command-line/bundletool
DEVICE_ID=XXX # 自分の Android 実機
bundletool build-apks \
--connected-device \
--device-id=${DEVICE_ID} \
--bundle=${AAB_PATH} \
--output=${APKS_PATH} \
--ks=${KEY_STORE_PATH} \
--ks-pass=pass:${KEY_STORE_PASS} \
--ks-key-alias=${KEY_ALIAS} \
--key-pass=pass:${KEY_PASS}

# USB で接続済みの端末にインストールする
bundletool install-apks --apks=${APKS_PATH} --device-id=${DEVICE_ID}
2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4