{"slug": "five-switches-two-app-stores-how-i-built-fud-ais-release-pipeline", "title": "Five switches. Two app stores. How I built Fud AI’s release pipeline", "summary": "A developer built a GitHub Actions-based release pipeline for the Fud AI mobile app that automates App Store and Google Play store listings, screenshots, release notes, subscription catalog handling, and review submission. Five repository variables act as switches controlling which steps run, with `android-v*` and `ios-v*` tags triggering separate Android and iOS workflows that build signed artifacts, create GitHub Releases, and optionally push to production tracks. The iOS path still requires a manual handoff because Actions does not yet wait for Xcode Cloud or select the matching build.", "body_md": "Building the app was only half the release. I still had store listings, screenshots, notes, and subscriptions to deal with.\n\nFor Fud AI, I moved those steps into GitHub Actions. Five switches decide what runs; a version tag starts the workflow.\n\nThe diagram shows the five repository variables. Listing updates and screenshots can run independently of production rollout or review submission.\n\nUnset means off. Enabled switches stay enabled for future releases. On iOS, listing updates include What’s New; Play release notes require a binary upload.\n\nAn `android-v*` tag runs checks, builds signed AAB/APK files, adds signatures and provenance, and creates a GitHub Release.\n\nProduction rollout is optional. When enabled, it uploads the AAB to Play’s production track with status completed, subject to Google’s processing and review. There’s no testing-track selector.\n\nI still increment `versionCode` before tagging.\n\nAn `ios-v*` tag starts two paths: Xcode Cloud archives and uploads the binary; GitHub Actions handles checks, metadata, review submission, and the GitHub Release.\n\nThe matching App Store version must already exist, with the right build selected. Actions doesn’t yet wait for Xcode Cloud or select that build. I’m planning that handoff for the next update.\n\nSubmitting still means waiting for Apple’s review.\n\nThe submission script includes eligible subscriptions and in-app purchases from the repository’s catalog. Subscriptions use their subscription-version relationship.\n\nIf a required product can’t be attached, app submission stops. Retries reuse the draft and skip products already added.\n\nListing copy lives in `APPSTORE.md` and `PLAYSTORE.md`. Notes and screenshots also come from the repo. A dry run prepares the files and validates the catalog before any store API calls.\n\nCredentials stay in GitHub Secrets; switches are repository variables. RevenueCat catalog writes aren’t implemented yet, so enabling that sync fails explicitly.\n\nCurrently, iOS listing updates and review submission are enabled. Android rollout, screenshots, and Play release notes are off.\n\nThe next step is the iOS build handoff. If you’re building something similar, start with a dry run, then enable store actions as each release is ready.\n\nWhich part of your mobile release still makes you open the store console?\n\nImplementation: [https://github.com/apoorvdarshan/fud-ai/tree/main/store](https://github.com/apoorvdarshan/fud-ai/tree/main/store)\n\nOriginally published on [X](https://x.com/apoorvdarshan/status/2106686145052676320).", "url": "https://wpnews.pro/news/five-switches-two-app-stores-how-i-built-fud-ais-release-pipeline", "canonical_source": "https://dev.to/apoorvdarshan/five-switches-two-app-stores-how-i-built-fud-ais-release-pipeline-4l5", "published_at": "2026-10-11 06:18:20+00:00", "updated_at": "2026-10-11 06:21:36.376949+00:00", "lang": "en", "topics": ["developer-tools", "ai-products"], "entities": ["Fud AI", "GitHub Actions", "Xcode Cloud", "App Store", "Google Play", "RevenueCat", "GitHub", "Apple"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/five-switches-two-app-stores-how-i-built-fud-ais-release-pipeline", "markdown": "https://wpnews.pro/news/five-switches-two-app-stores-how-i-built-fud-ais-release-pipeline.md", "text": "https://wpnews.pro/news/five-switches-two-app-stores-how-i-built-fud-ais-release-pipeline.txt", "jsonld": "https://wpnews.pro/news/five-switches-two-app-stores-how-i-built-fud-ais-release-pipeline.jsonld"}}