mcpField
A
android-playstore-setup

android-playstore-setup

github.com/hitoshura25クラウド・DevOps3118 回インストール40 週間前に更新
リポジトリ

android-playstore-setup について

Fastlane と GitHub Actions を使い、Android プロジェクトを Google Play の内部テストトラックへ公開するための設定を案内するスキルです。署名、バージョン管理、ストア素材、プライバシーポリシー、API 接続を整えます。

主な機能

  1. 01プロジェクトを調査して設定チェックリストを作成
  2. 02Fastlane と署名の設定
  3. 03アイコン、スクリーンショット、ストア情報の準備
  4. 04バージョン管理とプライバシーポリシーの設定
  5. 05GitHub Actions ワークフローの作成
  6. 06Play Store API 接続の検証

活用シーン

  1. 01Android アプリの内部テスト公開設定
  2. 02スクリーンショットの自動生成とストア素材の整理
  3. 03GitHub Actions によるビルドとデプロイ
  4. 04サービスアカウントや署名設定の問題調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hitoshura25/claude-devtools --skill android-playstore-setup

インストール後、Claude Code で/android-playstore-setupを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

templates/
GITHUB_SECRETS.md
RELEASE_NOTES_README.md
TRACKS.md
validate-playstore.py
whatsnew-template.txt

詳細

Android Play ストアのセットアップ

このスキルは、Fastlane を使用して 内部テストトラック への自動公開を行う、Google Play ストアへの完全なデプロイ環境を構成します。

このスキルでできること

対象範囲: 内部テストトラックへのデプロイのみ(迅速なテスト向けに簡略化)

Fastlane を使用した Play ストアへの自動デプロイに必要なすべての設定を行います。

  1. プロジェクトのスキャン - プロジェクトを分析し、セットアップ用チェックリストを生成します
  2. Fastlane のセットアップ - supply と screengrab を使用するよう Fastlane を構成します
  3. アプリアイコン - アイコンアセットを生成して配置します
  4. スクリーンショット - スクリーンショットの撮影を自動化します
  5. ストアの掲載情報 - フィーチャーグラフィックとメタデータを設定します
  6. プライバシーポリシー - GitHub Pages 用のプライバシーポリシーを生成します
  7. バージョン管理 - Git タグベースのバージョン管理をセットアップします
  8. 署名設定 - リリース署名を構成します
  9. サービスアカウント - Play ストア API へのアクセスを設定します
  10. GitHub Actions - Fastlane を使用する CI/CD ワークフローを設定します

前提条件

  • Google Play デベロッパー アカウント(初回のみ 25 ドル)
  • Google Cloud Platform アカウント(無料)
  • Play Console の管理者アクセス権
  • Play Console で予約済みのパッケージ名

ワークフローの概要

1. Scan → 2. Review → 3. Setup → 4. Deploy
   ↓          ↓          ↓          ↓
  📋        ✅         🔧         🚀

手順

Step 1: プロジェクトのスキャン(分析のみ)

/devtools:android-playstore-scan を実行します

実行内容:

  • AndroidManifest.xml と build.gradle をスキャンします
  • Health Connect、広告、分析機能を検出します
  • プライバシーポリシーの有無を確認します
  • 回答が事前入力された PLAY_CONSOLE_SETUP.md を生成します

出力: PLAY_CONSOLE_SETUP.md

作業: 生成されたファイルを確認し、警告に対処します


Step 2: プライバシーポリシーの生成(必要な場合)

PLAY_CONSOLE_SETUP.md にプライバシーポリシーがないと記載されている場合:

/devtools:privacy-policy-generate を実行します

実行内容:

  • プロジェクトをスキャンしてアプリ情報を取得します
  • Health Connect とサードパーティ SDK を検出します
  • デベロッパー情報の入力を求めます
  • docs/privacy-policy.md を生成します
  • GitHub Pages のセットアップガイドを作成します

確認:

test -f docs/privacy-policy.md && echo "✓ Privacy policy created"

次の手順: GitHub Pages を有効にします(Settings → Pages → Source: docs/)


Step 3: バージョン管理のセットアップ

platform=gradle を指定して /devtools:version-management を実行します

実行内容:

  • scripts/version-manager.sh(コア)を作成します
  • scripts/gradle-version.sh(Android アダプター)を作成します
  • 初期バージョンを設定した version.properties を作成します
  • app/build.gradle.kts を更新し、version.properties から読み込むようにします

確認:

./scripts/version-manager.sh latest
./scripts/gradle-version.sh generate patch

Step 4: キーストアの生成

/devtools:android-keystore-generation を実行します

実行内容:

  • production-release.jks(CI/CD 用)を生成します
  • local-dev-release.jks(ローカルテスト用)を生成します
  • 認証情報を記載した KEYSTORE_INFO.txt を作成します
  • .gitignore を更新します

確認:

ls keystores/*.jks
cat keystores/KEYSTORE_INFO.txt

Step 5: 署名の設定

/devtools:android-signing-config を実行します

実行内容:

  • app/build.gradle.kts に署名設定を追加します
  • 認証情報のデュアルソース(環境変数と gradle.properties)を構成します
  • ローカルの ~/.gradle/gradle.properties を更新します
  • リリースビルドの検証を追加します

確認:

./gradlew assembleRelease

Step 6: ProGuard の設定(未設定の場合)

/devtools:android-proguard-setup を実行します

実行内容:

  • 安全なデフォルト設定を含む app/proguard-rules.pro を作成します
  • 難読化とリソースの縮小を有効にします
  • 必要に応じてライブラリ固有のルールを追加します

確認:

grep "isMinifyEnabled = true" app/build.gradle.kts

Step 7: Fastlane のセットアップ

/devtools:android-fastlane-setup を実行します

実行内容:

  • fastlane と screengrab を含む Gemfile を作成します
  • パッケージ名を設定した fastlane/Appfile を作成します
  • デプロイ用レーンを含む fastlane/Fastfile を作成します
  • スクリーンショットの自動化用に fastlane/Screengrabfile を作成します
  • fastlane/metadata/ ディレクトリ構成を作成します

確認:

bundle exec fastlane --version
bundle exec fastlane lanes

Step 7a: アプリアイコンの生成

/devtools:android-app-icon を実行します

実行内容:

  • プロジェクトを分析してアプリ名と色を確認します
  • IconKitchen の手順を記載した docs/APP_ICON_SETUP.md を生成します
  • IconKitchen からダウンロードしたファイルを処理するヘルパースクリプトを提供します
  • mipmap リソースと Play ストア用アイコンをコピーします

確認:

test -f fastlane/metadata/android/en-US/images/icon.png
file fastlane/metadata/android/en-US/images/icon.png | grep "512 x 512"

ステップ 7b:スクリーンショット自動化をセットアップする

/devtools:android-screenshot-automation を実行します

実行内容:

  • screengrab 依存関係を app/build.gradle.kts に追加します
  • 必要な権限を含むデバッグ用マニフェストを作成します
  • 自動キャプチャ用の ScreenshotTest.kt を作成します
  • ステータスバーを整える DemoModeRule.kt を作成します

確認:

bundle exec fastlane screenshots
ls fastlane/metadata/android/en-US/images/phoneScreenshots/

ステップ 7c:ストア掲載用アセットを作成する

/devtools:android-store-listing を実行します

実行内容:

  • docs/STORE_LISTING_GUIDE.md を生成します
  • メタデータのテンプレート(タイトル、説明など)を作成します
  • フィーチャーグラフィック生成スクリプトを提供します
  • アセットの作成手順を案内します

確認:

test -f fastlane/metadata/android/en-US/images/featureGraphic.png
wc -c fastlane/metadata/android/en-US/*.txt

ステップ 8:デプロイ用ワークフローを作成する

/devtools:android-workflow-internal を実行します

実行内容:

  • .github/workflows/build.yml を作成します(CI のみ。push/PR 時に実行されます)
  • .github/workflows/release-internal.yml を作成します(Fastlane を使った手動リリース)
  • Ruby のセットアップとバンドルのキャッシュを追加します
  • デプロイに bundle exec fastlane deploy_internal を使用します
  • すべてのアクションを SHA に固定します

確認:

test -f .github/workflows/build.yml
test -f .github/workflows/release-internal.yml
grep "bundle exec fastlane" .github/workflows/release-internal.yml

ステップ 9:サービスアカウントをセットアップする

/devtools:android-service-account-guide を実行します

実行内容:

  • Google Cloud のセットアップ手順を順を追って案内します
  • サービスアカウントの作成方法を説明します
  • Play Console のセットアップドキュメントを作成します

手動で必要な手順:

  1. Google Cloud でサービスアカウントを作成します
  2. JSON キーをダウンロードします
  3. Play Console で権限を付与します
  4. JSON を GitHub Secrets に SERVICE_ACCOUNT_JSON_PLAINTEXT として追加します

ステップ 10:キーストアを GitHub Secrets に追加する

keystores/KEYSTORE_INFO.txt を参照し、次のシークレットを GitHub に追加します:

# From KEYSTORE_INFO.txt, copy the base64 encoded keystore:
SIGNING_KEY_STORE_BASE64: <base64_string>
SIGNING_KEY_ALIAS: upload
SIGNING_STORE_PASSWORD: <password>
SIGNING_KEY_PASSWORD: <password>

ステップ 11:API 接続を検証する

/devtools:android-playstore-api-validation を実行します

実行内容:

  • scripts/validate-playstore.py を作成します
  • Play Store API 接続をテストします
  • サービスアカウントの権限を検証します

確認:

python3 -m venv .venv
source .venv/bin/activate
pip install google-auth google-api-python-client
python3 scripts/validate-playstore.py /path/to/service-account.json com.example.app

ステップ 12:初回の手動アップロード(重要)

⚠️ GitHub Actions でデプロイする前に、最初のリリースを必ず手動でアップロードする必要があります。

理由
  1. Google Play では、ストア掲載情報を完成させるために初回の手動アップロードが必要です
  2. 本番用キーストアがアップロードキーになります
  3. Play App Signing が自動的に有効になります
手順:
# 1. Build release bundle locally
./gradlew bundleRelease

# 2. Verify it's signed
jarsigner -verify -verbose app/build/outputs/bundle/release/app-release.aab

# 3. Manual upload via Play Console

Play Console で:

  1. リリース → 内部テストに移動します
  2. 新しいリリースを作成をクリックします
  3. app-release.aab をアップロードします
  4. ストア掲載情報(タイトル、説明、アイコン)を完成させます
  5. アプリのコンテンツに関する申告を完了します
  6. 内部テストに公開します

重要: この初回アップロードに使用するキーストアは、GitHub Secrets に設定したものと同じである必要があります!


ステップ 13:Fastlane のデプロイをテストする

初回の手動アップロードが完了したら:

# Push to main branch to trigger deployment
git add .
git commit -m "Setup Play Store deployment"
git push origin main

実行内容:

  1. GitHub Actions のワークフローが開始されます
  2. 単体テストを実行します
  3. リリースバンドルをビルドします
  4. 内部テストトラックにデプロイします

状況の確認: リポジトリの Actions タブに移動します


Play App Signing の仕組み

2 つのキーの仕組み
キーの種類目的保持者リセット可能か
アプリ署名キーユーザー向け APK に署名しますGoogleいいえ(永続)
アップロードキーアップロードを認証しますあなたはい(Play Console から)
自動セットアップ

2021 年 8 月以降に作成されたアプリでは、Play App Signing が自動的に有効になります:

  1. 初回アップロード時:Google がアプリ署名キーを生成します
  2. 本番用キーストアがアップロードキーになります
  3. 配布前に、Google がアプリ署名キーで再署名します

操作は不要です。そのまま機能します!


最終確認チェックリスト

# Project files
✓ Fastlane configured (Gemfile, Fastfile, Appfile)
✓ Version management scripts in scripts/
✓ Keystores in keystores/ (gitignored)
✓ Privacy policy in docs/privacy-policy.md
✓ Metadata in fastlane/metadata/android/en-US/
✓ CI workflow in .github/workflows/build.yml
✓ Release workflow in .github/workflows/release-internal.yml

# Build verification
✓ ./gradlew assembleRelease succeeds
✓ Unit tests pass
✓ ProGuard enabled

# GitHub Secrets configured
✓ SERVICE_ACCOUNT_JSON_PLAINTEXT
✓ SIGNING_KEY_STORE_BASE64
✓ SIGNING_KEY_ALIAS
✓ SIGNING_STORE_PASSWORD
✓ SIGNING_KEY_PASSWORD

# Play Console
✓ First manual upload completed
✓ Internal testing track active
✓ Service account has permissions

# API validation
✓ scripts/validate-playstore.py passes

次のステップ

ベータ版/本番環境へのデプロイ

内部テストが機能したら:

# Add beta track
/devtools:android-workflow-beta

# Add production track
/devtools:android-workflow-production
トラック情報
トラック対象ユーザー審査時間用途
内部テスト最大 100 人のテスター即時手早いテスト、審査なし
クローズド(アルファ版)招待されたテスター< 24hベータテスト
オープン(ベータ版)誰でも参加可能< 24h公開ベータ
本番環境すべてのユーザー1~7 日正式リリース

トラブルシューティング

API 検証で「パッケージが見つかりません」と表示される
  • Play Console にアプリが存在することを確認します
  • パッケージ名が完全に一致していることを確認します
  • 初回の手動アップロードを完了します
「アップロードキーが一致しません」と表示される
  • 初回アップロード時のキーストア ≠ GitHub Secrets のキーストア
  • 解決方法:Play Console → アプリの署名 → アップロードキーのリセットをリクエスト
  • 正しいキーストアを使って再アップロードします
サービスアカウントで「権限が拒否されました」と表示される
  • Play Console で「本番環境へのリリース」権限を付与します
  • 権限が反映されるまで 5~10 分待ちます
GitHub Actions でデプロイに失敗する
  • すべての GitHub Secrets が正しく設定されていることを確認します
  • ワークフローのログで具体的なエラーを確認します
  • 初回の手動アップロードが完了していることを確認します

まとめ

次の設定が正常に完了しました:

  • ✅ プライバシーポリシー(GitHub Pages の準備完了)
  • ✅ バージョン管理(Git タグベース)
  • ✅ リリース署名(本番環境 + ローカル開発)
  • ✅ Fastlane によるデプロイの自動化
  • ✅ GitHub Actions CI/CD(内部テストトラック)
  • ✅ Play Store API 接続

これで、アプリを継続的インテグレーションとデプロイに利用する準備が整いました!

main へのプッシュまたは PR ごとに → ビルドとテストを自動実行(CI)✅ ワークフローを手動で実行 → バージョン管理 + 内部テストトラックへのデプロイ 🚀

このスキルを完了としてマークする前に、すべてのチェックに合格する必要があります。

完了条件

以下のすべてを確認するまで、完了としてマークしないでください:

✅ サービスアカウントの設定

  • Google Cloud でサービスアカウントを作成済み
  • JSON キーをダウンロードし、安全に保管済み
  • Play Developer API を有効化済み
  • サービスアカウントを Play Console にリンク済み
  • 「リリース」権限を付与済み

✅ ストアのメタデータ構成

  • fastlane/metadata/android/en-US/ ディレクトリが存在する
  • 少なくとも en-US ロケールを設定済み
  • メタデータファイル(タイトル、説明、変更履歴)を作成済み
  • docs/PLAY_STORE_TRACKS.md ドキュメントを作成済み

✅ API 検証

  • scripts/validate-playstore.py が存在する
  • 検証スクリプトが正常に実行される
  • API 接続を確認済み
  • パッケージへのアクセスを確認済み

✅ ドキュメント

  • PLAY_CONSOLE_SETUP.md が存在する(プロジェクトのルート)
  • GITHUB_SECRETS.md が存在する(必要な場合)

まとめレポート

完了後、次の形式で概要を提示してください:

✅ Android Play Store Setup Complete!

🔐 Service Account:
  ✓ Created in Google Cloud
  ✓ JSON key downloaded
  ✓ Linked to Play Console
  ✓ Permissions granted

📝 Store Metadata:
  ✓ Structure created: fastlane/metadata/android/en-US/
  ✓ Locales configured
  ✓ Templates ready

✅ API Validation:
  ✓ Validation script created
  ✓ API connection tested
  ✓ Package access confirmed

📋 Next Steps:

  For GitHub:
    1. Add secrets (see GITHUB_SECRETS.md if it exists)
    2. Create "production" environment with reviewers

  For Deployment:
    1. Run: /devtools:android-playstore-publish
    2. Generate deployment workflows

⚠️  CRITICAL REMINDERS:
  - NEVER commit service account JSON to git
  - Store JSON key in password manager
  - Add all 5 secrets to GitHub before deploying
  - Wait 5-10 minutes after granting permissions

他のスキルとの連携

このスキルは、次のスキルの前提条件です:

  • android-playstore-publishing - デプロイにサービスアカウントを使用します
  • android-playstore-pipeline - パイプライン全体を設定します

トラブルシューティング

いずれかのスキルが失敗した場合:

  1. そのスキルの該当する問題を修正します
  2. 完了するまでそのスキルを再実行します
  3. 残りのスキルに進みます
  4. 最終確認を実行します

よくある問題:

  • サービスアカウントが見つからない → Google Cloud プロジェクトを確認します
  • 権限が拒否された → 「リリース」権限を付与します
  • API 検証に失敗する → 反映されるまで 5~10 分待ちます

コメント