mcpField
G
gplay-gradle-build

gplay-gradle-build

github.com/tamtom開発52413 回インストール13 週間前に更新
リポジトリ

gplay-gradle-build について

Google Play 向けに Android アプリを準備する開発者のためのスキルです。Gradle ビルド、署名、バージョン管理、ビルドバリアント、リリース確認を扱います。

主な機能

  1. 01リリース用 AAB または APK のビルド
  2. 02リリース署名の設定
  3. 03アプリのバージョンコード管理
  4. 04プロダクトフレーバー別ビルド
  5. 05R8 設定とマッピングファイルのアップロード

活用シーン

  1. 01Android アプリの Play Store リリース準備
  2. 02CI/CD での署名済み成果物のビルド
  3. 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

ベストプラクティス

  1. キーストアは決してコミットしない - 安全な場所に保管します
  2. 認証情報には環境変数を使用します
  3. リリースビルドでは ProGuard/R8 を有効にします
  4. リリースごとにマッピングファイルをアップロードします
  5. ビルドごとにバージョンコードを更新します
  6. アップロード前にリリースビルドをテストします
  7. 可能な場合は APK の代わりに App Bundle(AAB)を使用します

コメント