Pipeline d'actifs Play Store complet

Pipeline d'actifs Play Store complet : lance l'émulateur, capture des screenshots, extrait les couleurs, génère icônes et graphiques via IA (Gemini, Replicate).

Spar Skills Guide Bot
DeveloppementIntermédiaire
1027/07/2026
Claude Code
#android#flutter#play-store#asset-generation#screenshot

Recommandé pour


name: play-store-forge version: "1.0.0" description: "End-to-end Play Store asset pipeline — boots Android emulator, captures real screenshots, extracts brand colors, and generates icon, feature graphic, and framed screenshots using Gemini Imagen, AI Studio, or Replicate." argument-hint: "play-store-forge | play-store-forge screenshots | play-store-forge generate | play-store-forge icon" allowed-tools: Bash, Read, Write, Edit, AskUserQuestion author: ranahaani license: MIT repository: https://github.com/ranahaani/play-store-forge user-invocable: true metadata: openclaw: emoji: "🎨" requires: bins: - adb - python3 optionalEnv: - GEMINI_API_KEY - REPLICATE_API_TOKEN - GOOGLE_APPLICATION_CREDENTIALS optionalBins: - emulator - flutter files: - "scripts/*" tags: - android - flutter - play-store - asset-generation - screenshot - gemini - imagen - marketing

Play Store Forge

Full Play Store asset pipeline in one skill. Captures real screenshots from your running app, extracts brand colors, and generates production-ready icon, feature graphic, and screenshots using AI image generation.

Quick Start

/play-store-forge                  # full pipeline
/play-store-forge screenshots      # capture only
/play-store-forge generate         # generate assets only (skip capture)
/play-store-forge icon             # icon only

All scripts are in scripts/ next to this SKILL.md. Copy them anywhere and run independently.


STEP 0 — Read the project

Before anything, understand what you're working with:

# Flutter: get package name and app name
grep -E "applicationId|namespace" android/app/build.gradle.kts 2>/dev/null || \
grep "applicationId" android/app/build.gradle 2>/dev/null
grep "^name:" pubspec.yaml 2>/dev/null

# Detect brand colors from theme file (if Flutter)
python3 scripts/extract_colors.py --from-theme lib/theme/tokens.dart 2>/dev/null || \
python3 scripts/extract_colors.py --from-theme lib/theme/app_colors.dart 2>/dev/null || \
python3 scripts/extract_colors.py --from-xml android/app/src/main/res/values/colors.xml 2>/dev/null

Store what you find:

  • APP_NAME — display name
  • PACKAGE_ID — e.g. com.example.myapp
  • PRIMARY_COLOR — primary brand hex e.g. #2563EB

STEP 1 — Emulator check

# Check for running device/emulator
adb devices

# If none running, list available AVDs
emulator -list-avds 2>/dev/null || echo "emulator not in PATH — add \$ANDROID_HOME/emulator"

# Boot an AVD (replace <AVD_NAME>)
emulator -avd <AVD_NAME> -no-audio -no-boot-anim > /dev/null 2>&1 &

# Wait for boot
until adb shell getprop sys.boot_completed 2>/dev/null | grep -q "1"; do sleep 2; done
echo "Ready"

If no AVD exists, tell the user:

"No AVD found. Open Android Studio → Tools → Device Manager → Create Device, then re-run."


STEP 2 — Capture screenshots

Copy scripts/capture_screenshots.sh to the project root and run it:

# Make executable and run
chmod +x scripts/capture_screenshots.sh

# With package auto-launch
bash scripts/capture_screenshots.sh store_assets/raw_screenshots com.example.myapp

# Without auto-launch (you navigate manually)
bash scripts/capture_screenshots.sh store_assets/raw_screenshots

The script prompts for each screen type (home, feature, detail, settings, onboarding) and captures on Enter. Press 's' to skip a screen.

After capture, extract colors from the real screenshots:

python3 scripts/extract_colors.py
# Outputs: store_assets/colors.json + suggests --primary-color value

STEP 3 — Generate assets

Provider setup (choose one)

Option A: Vertex AI — ~$0.02/image (recommended, best quality)

# Needs: service account JSON with Vertex AI User role
python3 scripts/generate_assets.py \
  --provider vertex \
  --key /path/to/service-account.json \
  --project your-gcp-project-id \
  --app-name "My App" \
  --primary-color "#2563EB" \
  --tagline "Stay Protected"

Option B: AI Studio API key — free tier available

# Get key: aistudio.google.com → Get API key
python3 scripts/generate_assets.py \
  --provider aistudio \
  --api-key "AIza..." \
  --app-name "My App" \
  --primary-color "#2563EB"

Option C: Replicate — no GCP needed

# Get token: replicate.com → Account → API tokens
python3 scripts/generate_assets.py \
  --provider replicate \
  --api-key "r8_..." \
  --app-name "My App" \
  --primary-color "#2563EB"

Generate only specific assets

# Icon only
python3 scripts/generate_assets.py --provider vertex --key key.json --project proj \
  --app-name "My App" --primary-color "#2563EB" --assets icon

# Feature graphic + screenshots
python3 scripts/generate_assets.py ... --assets feature_graphic screenshot_1 screenshot_2

STEP 4 — Resize to Play Store specs

pip install Pillow -q

# Resize all generated assets at once
python3 scripts/resize_assets.py --all

# Or individually
python3 scripts/resize_assets.py --icon store_assets/icon.jpg
python3 scripts/resize_assets.py --feature store_assets/feature_graphic.jpg

Play Store exact specs:

  • Icon: 512×512 PNG, max 1024KB
  • Feature graphic: 1024×500 JPG or PNG
  • Screenshots: 320–3840px on either side, JPG or PNG

STEP 5 — Final output

After the full pipeline, store_assets/ should contain:

store_assets/
├── icon_512.png                    ← Upload as App icon
├── feature_graphic_1024x500.jpg    ← Upload as Feature graphic
├── screenshot_01_ready.jpg         ← Phone screenshots
├── screenshot_02_ready.jpg
├── screenshot_03_ready.jpg
├── colors.json                     ← Brand colors (reference)
└── raw_screenshots/                ← Original adb captures
    ├── 01_home.png
    ├── 02_feature.png
    └── 03_detail.png

Play Console upload path:

Grow users → Store listings → Default store listing → Edit → Listing assets


Install dependencies

# Core (always needed)
pip install Pillow

# Vertex AI or AI Studio
pip install google-genai google-auth

# Replicate
pip install replicate requests

Tips for better results

| Goal | Prompt tip | |---|---| | No text on icon | Add Absolutely NO text, NO letters, NO words anywhere | | On-brand colors | Include exact hex: deep blue #1D4ED8 not just "blue" | | Store quality | Add professional, Play Store icon, app store quality | | Clean icon | Add flat design, minimal, geometric, white background | | Cinematic feature | Add wide cinematic, dramatic lighting, marketing banner |

If an image has unwanted text: add absolutely NO text and regenerate — never retry the same prompt.


Troubleshooting

| Error | Fix | |---|---| | adb: no devices | Start emulator or connect device first | | emulator: command not found | export PATH=$PATH:$ANDROID_HOME/emulator | | 403 PERMISSION_DENIED (Vertex) | IAM takes ~60s to propagate — wait and retry | | ModuleNotFoundError: PIL | pip install Pillow | | ModuleNotFoundError: google.genai | pip install google-genai google-auth | | Feature graphic wrong size | Run resize_assets.py --feature after generation | | Blurry icon | Use --assets icon and regenerate with more specific prompt |

Skills similaires