gplay-gradle-build について
Google Play 向けに Android アプリを準備する開発者のためのスキルです。Gradle ビルド、署名、バージョン管理、ビルドバリアント、リリース確認を扱います。
主な機能
- 01リリース用 AAB または APK のビルド
- 02リリース署名の設定
- 03アプリのバージョンコード管理
- 04プロダクトフレーバー別ビルド
- 05R8 設定とマッピングファイルのアップロード
活用シーン
- 01Android アプリの Play Store リリース準備
- 02CI/CD での署名済み成果物のビルド
- 03フレーバー別リリースバンドルの作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tamtom/ gplay-cli-skills --skill gplay-gradle-buildインストール後、Claude Code で/gplay-gradle-buildを入力して読み込まれたか確認します。
詳細
Google Play 向けの Gradle ビルド
Play ストアにアップロードする前に Android アプリをビルドする必要がある場合に、このスキルを使用します。
ビルドタイプ
App Bundle(AAB)- 推奨
Google Play の新しいアプリでは App Bundle が必須です。
./gradlew bundleRelease
出力先:app/build/outputs/bundle/release/app-release.aab
APK - レガシー
バンドルを使用しないアプリの場合:
./gradlew assembleRelease
出力先:app/build/outputs/apk/release/app-release.apk
署名の設定
build.gradle(app レベル)
android {
signingConfigs {
release {
storeFile file(System.getenv("KEYSTORE_FILE") ?: "release.keystore")
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias System.getenv("KEY_ALIAS")
keyPassword System.getenv("KEY_PASSWORD")
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
環境変数
export KEYSTORE_FILE=/path/to/release.keystore
export KEYSTORE_PASSWORD=your_keystore_password
export KEY_ALIAS=your_key_alias
export KEY_PASSWORD=your_key_password
./gradlew bundleRelease
バージョン管理
gradle.properties
VERSION_NAME=1.2.3
VERSION_CODE=123
build.gradle
android {
defaultConfig {
versionCode project.property('VERSION_CODE').toInteger()
versionName project.property('VERSION_NAME')
}
}
バージョンを更新する
# Read current version
CURRENT_VERSION=$(grep VERSION_CODE gradle.properties | cut -d'=' -f2)
NEW_VERSION=$((CURRENT_VERSION + 1))
# Update gradle.properties
sed -i "" "s/VERSION_CODE=$CURRENT_VERSION/VERSION_CODE=$NEW_VERSION/" gradle.properties
# Build
./gradlew bundleRelease
ProGuard/R8 の設定
R8 を有効にする(AGP 3.4 以降ではデフォルト)
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
マッピングファイルを生成する
マッピングファイルの場所:app/build/outputs/mapping/release/mapping.txt
クラッシュのシンボル化のため、Play Console にアップロードします。
gplay deobfuscation upload \
--package com.example.app \
--edit $EDIT_ID \
--apk-version 123 \
--type proguard \
--file app/build/outputs/mapping/release/mapping.txt
ビルドバリアント
プロダクトフレーバー
android {
flavorDimensions "version"
productFlavors {
free {
dimension "version"
applicationIdSuffix ".free"
}
paid {
dimension "version"
}
}
}
特定のフレーバーをビルドする
./gradlew bundleFreeRelease
./gradlew bundlePaidRelease
CI/CD ビルド
GitHub Actions の例
- name: Build Release AAB
run: |
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > release.keystore
export KEYSTORE_FILE=release.keystore
export KEYSTORE_PASSWORD="${{ secrets.KEYSTORE_PASSWORD }}"
export KEY_ALIAS="${{ secrets.KEY_ALIAS }}"
export KEY_PASSWORD="${{ secrets.KEY_PASSWORD }}"
./gradlew bundleRelease
- name: Upload to Play Store
env:
GPLAY_SERVICE_ACCOUNT: ${{ secrets.PLAY_SERVICE_ACCOUNT }}
run: |
gplay release \
--package com.example.app \
--track internal \
--bundle app/build/outputs/bundle/release/app-release.aab
よく使うビルドタスク
クリーンビルド
./gradlew clean bundleRelease
特定の SDK バージョンでビルドする
./gradlew bundleRelease -PminSdkVersion=21 -PtargetSdkVersion=34
テストを実行せずにビルドする
./gradlew bundleRelease -x test -x lint
複数のバリアントをビルドする
./gradlew bundle # Builds all variants
トラブルシューティング
署名エラーでビルドに失敗する
# Verify keystore
keytool -list -v -keystore release.keystore
AAB の内容を確認する
bundletool build-apks \
--bundle=app-release.aab \
--output=output.apks \
--mode=universal
unzip output.apks
バージョンコードを確認する
./gradlew tasks --all | grep Version
ベストプラクティス
- キーストアは決してコミットしない - 安全な場所に保管します
- 認証情報には環境変数を使用します
- リリースビルドでは ProGuard/R8 を有効にします
- リリースごとにマッピングファイルをアップロードします
- ビルドごとにバージョンコードを更新します
- アップロード前にリリースビルドをテストします
- 可能な場合は APK の代わりに App Bundle(AAB)を使用します
コメント
Markdown 対応