--- name: gplay-migrate-fastlane description: Migration from Fastlane supply to gplay CLI using the gplay migrate fastlane command. Use when asked to convert a Fastlane-based Play Store workflow to gplay, or to import existing Fastlane metadata directories. --- # Fastlane Migration Use this skill when you need to migrate from Fastlane supply to the gplay CLI. ## Preconditions - Existing Fastlane metadata directory structure. - gplay CLI installed and authenticated. - Familiarity with the source Fastlane directory layout. ## Migrate Command ### Basic migration ```bash gplay migrate fastlane \ --source ./fastlane/metadata/android \ --output-dir ./metadata ``` ### Dry run (preview without writing files) ```bash gplay migrate fastlane \ --source ./fastlane/metadata/android \ --output-dir ./metadata \ --dry-run ``` ### Migrate specific locales only ```bash gplay migrate fastlane \ --source ./fastlane/metadata/android \ --output-dir ./metadata \ --locales en-US,es-ES,fr-FR ``` ### Dry run with specific locales ```bash gplay migrate fastlane \ --source ./fastlane/metadata/android \ --output-dir ./metadata \ --locales en-US,ja-JP \ --dry-run ``` ## Flags | Flag | Description | Required | |------|-------------|----------| | `--source` | Path to Fastlane metadata directory | Yes | | `--output-dir` | Output directory for gplay metadata | Yes | | `--dry-run` | Preview changes without writing files | No | | `--locales` | Comma-separated list of locales to migrate | No (all by default) | ## What Gets Migrated The command converts the Fastlane directory structure into the gplay metadata format: ### Fastlane source structure ``` fastlane/metadata/android/ ├── en-US/ │ ├── title.txt │ ├── short_description.txt │ ├── full_description.txt │ ├── video.txt │ ├── changelogs/ │ │ ├── 100.txt │ │ └── 101.txt │ └── images/ │ ├── phoneScreenshots/ │ │ ├── 1.png │ │ └── 2.png │ ├── icon.png │ └── featureGraphic.png ├── es-ES/ │ └── ... ``` ### Migrated output structure ``` metadata/ ├── en-US/ │ ├── listing.json │ ├── changelogs/ │ │ ├── 100.txt │ │ └── 101.txt │ └── images/ │ ├── phoneScreenshots/ │ │ ├── 1.png │ │ └── 2.png │ ├── icon.png │ └── featureGraphic.png ├── es-ES/ │ └── ... ``` ### File conversions - `title.txt`, `short_description.txt`, `full_description.txt`, `video.txt` are consolidated into `listing.json`. - `changelogs/` are copied as-is. - `images/` are copied as-is. ## Workflow Examples ### Full migration from Fastlane ```bash # 1. Preview the migration gplay migrate fastlane \ --source ./fastlane/metadata/android \ --output-dir ./metadata \ --dry-run # 2. Run the actual migration gplay migrate fastlane \ --source ./fastlane/metadata/android \ --output-dir ./metadata # 3. Verify the output ls -R ./metadata # 4. Import to Play Store gplay sync import-listings \ --package com.example.app \ --dir ./metadata ``` ### Incremental locale migration ```bash # Migrate English first gplay migrate fastlane \ --source ./fastlane/metadata/android \ --output-dir ./metadata \ --locales en-US # Verify and test gplay sync diff-listings \ --package com.example.app \ --dir ./metadata # Migrate remaining locales gplay migrate fastlane \ --source ./fastlane/metadata/android \ --output-dir ./metadata \ --locales es-ES,fr-FR,de-DE,ja-JP ``` ### CI/CD migration validation ```bash # In CI, validate that migration produces expected output gplay migrate fastlane \ --source ./fastlane/metadata/android \ --output-dir ./metadata-test \ --dry-run # Check exit code if [ $? -eq 0 ]; then echo "Migration validation passed" else echo "Migration validation failed" exit 1 fi ``` ## Replacing Fastlane Supply Commands | Fastlane Command | gplay Equivalent | |------------------|------------------| | `fastlane supply init` | `gplay sync export-listings --dir ./metadata` | | `fastlane supply` | `gplay sync import-listings --dir ./metadata` | | `fastlane supply --skip_upload_images` | `gplay sync import-listings --dir ./metadata` | | `fastlane supply --track beta` | `gplay release --track beta --bundle app.aab` | | `fastlane supply --track production --rollout 0.1` | `gplay release --track production --bundle app.aab --rollout 10` | ## Best Practices 1. **Always dry-run first** - Preview the migration output before writing files. 2. **Migrate locale by locale** - Start with your primary locale and verify. 3. **Keep Fastlane source** - Do not delete the Fastlane directory until fully migrated and verified. 4. **Validate after migration** - Use `gplay validate listing` to check character limits. 5. **Update CI/CD gradually** - Replace Fastlane commands one at a time. 6. **Version control the output** - Commit migrated metadata to track changes.