android-deploy について
android-deployは、Androidアプリのリリース自動化を行うスキルで、本番公開、テスト、内部配布のワークフロー向けです。Gradleのビルドと署名に加え、Google Play Console、Firebase App Distribution、Fastlane、bundletoolの作業を扱います。
主な機能
- 01Gradleバリアントのビルド
- 02APKとAABの署名
- 03Google Playへのリリース登録
- 04Firebase経由のビルド配布
- 05Fastlaneによるリリース手順の自動化
- 06AABからデバイス別APKを作成
活用シーン
- 01署名済み本番リリースの準備
- 02アプリのPlayトラックへの登録
- 03テスターへのベータ版配布
- 04CIでのAndroidリリース自動化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill android-deployインストール後、Claude Code で/android-deployを入力して読み込まれたか確認します。
詳細
android-deploy
目的
このスキルは、Gradle ベースのビルド、APK/AAB の署名、Google Play Console へのアップロード、Firebase による配布、Fastlane や bundletool などのツールを活用した CI/CD の効率化など、Android アプリのデプロイを自動化します。
使用する場面
Android アプリを本番環境にデプロイする場合、テスト用のバリアントを作成する場合、またはリリースを自動化する場合にこのスキルを使用します。CI パイプライン、Google Play へのアプリのアップデート、Firebase による社内配布に最適です。Android 以外のプロジェクトや、デプロイを必要としない基本的なビルドには使用しないでください。
主な機能
- build.gradle の設定を使用して、Gradle のバリアント(例:debug、release)をビルドして選択します。
- キーストアを使用して APK または AAB に署名し、v1 と v2 の署名方式に対応します。
- API を介してアプリを Google Play Console にアップロードし、編集内容やトラックを管理します。
- Firebase App Distribution を介してビルドを配布し、ベータテストを実施します。
- ビルドやデプロイのレーン定義など、Fastlane でワークフローを自動化します。
- bundletool を使用して AAB から APK を生成し、テストすることで、デバイスに合わせて最適化します。
使用パターン
Android アプリをデプロイするには、まず build.gradle でバリアントを設定します(例:buildTypes { release { ... } } を設定)。次に Fastlane を使用して、ビルド、署名、アップロードなどのタスクを連結します。CI に統合する場合は、スクリプトから Gradle タスクを呼び出し、キーを環境変数で渡して、後続のステップで使用する出力を処理します。実行前にキーストアのパスと API 認証情報を必ず確認してください。たとえば、./gradlew assembleRelease の後に bundletool による抽出を実行する Fastlane のレーンを実行します。
主なコマンド/API
- バリアントの Gradle ビルド:
./gradlew assembleRelease --stacktrace(デバッグには--stacktraceを使用します)。 - APK に署名:
apksigner sign --ks my.keystore --ks-key-alias myalias myapp.apk(キーストアファイルとエイリアスが必要です)。 - Google Play にアップロード:Google Play API エンドポイント
POST https://www.googleapis.com/androidpublisher/v3/applications/{packageName}/editsを使用します。$GOOGLE_PLAY_API_KEYの OAuth トークンを指定します。curl の例:curl -H "Authorization: Bearer $GOOGLE_PLAY_API_KEY" -d '{"title": "Edit"}' https://...。 - Firebase App Distribution:
firebase appdistribution:distribute myapp.apk --app <APP_ID> --groups my-testers(認証用に$FIREBASE_TOKENを設定します)。 - Fastlane のレーン:Fastfile で定義します:
lane :deploy do |options| sh("./gradlew assembleRelease") end。fastlane android deployで実行します。 - AAB 用の bundletool:
bundletool build-apks --bundle=myapp.aab --output=myapp.apks --ks=my.keystore($KEYSTORE_PASSのような環境変数でパスワードを渡すには--ks-passを含めます)。 - build.gradle での Gradle ビルドのコードスニペット:
android { buildTypes { release { signingConfig signingConfigs.release } } }(2 行)。 - スクリプトでの API 呼び出し:
response = requests.post('https://www.googleapis.com/androidpublisher/v3/...', headers={'Authorization': f'Bearer {os.environ["GOOGLE_PLAY_API_KEY"]}'} )(2 行)。
統合に関する注意事項
機密データには環境変数を設定して統合します。たとえば、OAuth 用に export GOOGLE_PLAY_API_KEY=$SERVICE_API_KEY を設定します。プロジェクトのルートに Fastfile を置き、Gradle タスクを参照するレーンを含めて Fastlane を設定してください。Firebase では Firebase CLI を追加し、サービスアカウント JSON を使用して $FIREBASE_TOKEN を設定します。ビルドパイプラインで bundletool を JAR として使用する場合は、バージョンに互換性があること(例:1.14.0+)を確認してください。ワークフロー YAML に run: fastlane android deploy のステップを追加し、GitHub Actions などの CI ツールと連携します。
エラー処理
キーストアのパスとパスワードを確認して、署名エラーに対処してください(たとえば、apksigner が「Keystore not found」というエラーを返した場合は、ファイルが存在することを確認します)。API へのアップロードでは、$GOOGLE_PLAY_API_KEY が有効で期限切れになっていないことを確認して、401 エラーを処理してください。Gradle のビルド失敗は、バリアントの不一致が原因であることがよくあります。./gradlew tasks を使って、利用可能なタスクを一覧表示してください。Fastlane では、fastlane --verbose でデバッグします。bundletool が「Invalid bundle」を報告した場合は、bundletool validate --bundle=myapp.aab で AAB を検証してください。スクリプトでは、次の例のように、コマンドを常に try-catch ブロックで囲んでください。try { sh("./gradlew assembleRelease") } catch { echo "Build failed: $error" }。
具体的な使用例
例 1:リリース用 APK のビルドと署名
まず、build.gradle に次の設定があることを確認します。signingConfigs { release { storeFile file("my.keystore") keyAlias "myalias" } }。次に、./gradlew assembleRelease を実行します。最後に、次のコマンドで署名します。apksigner sign --ks my.keystore --ks-key-alias myalias app/build/outputs/apk/release/app-release-unsigned.apk。これにより、配布可能な署名済み APK が生成されます。
例 2:Fastlane を使った Google Play へのアップロード
次の内容で Fastfile を作成します。lane :upload do upload_to_play_store track: 'internal' apk_path: 'app/build/outputs/apk/release/app-release.apk' end。環境変数を設定します。export SUPPLY_JSON_KEY_FILE=$GOOGLE_PLAY_SERVICE_ACCOUNT。fastlane upload を実行します。これにより、ビルド、署名、Google Play Console の内部テストトラックへのアップロードが自動化されます。
グラフの関係
- 関連先:モバイルクラスター(例:iOS デプロイメントスキルと依存関係を共有します)。
- 統合先:CI/CD パイプライン(例:Gradle などのビルドツールに接続します)。
- 依存先:認証サービス(例:Google Play API キー)。
- 競合対象:モバイル以外のスキル(例:Web デプロイメント)。