You Shouldn't Be Clicking Around App Store Connect
Editorial about release governance: shipping mobile apps should not mean living inside App Store Connect and Google Play Console.
There's a specific kind of tired that has nothing to do with hard problems.
It's the tiredness of clicking. Log into App Store Connect. Wait for it to load. Find the right app. Find the right version. Paste the release notes. Upload the build you already built an hour ago. Switch tabs. Log into Google Play Console. Different layout, different words for the same thing, different number of confirmation screens. Re-type the changelog because the formats don't match. Click through a rollout wizard. Hope you didn't miss a required field that will bounce the whole submission tomorrow morning.
None of that is engineering.
It's data entry with extra loading spinners.
And the strange part is how normal we let it become. We'll automate a flaky test suite, script a database migration, and set up CI that runs on every commit — and then hand-deliver our releases through two of the slowest web interfaces we touch all month.
The console is not the source of truth
Here's the mental shift that fixes everything: the store console should not be where release decisions live.
It's an API with a UI bolted on top. Nothing more.
The moment you treat App Store Connect and Play Console as destinations — endpoints you push to — instead of places you work, the whole process changes shape. The real source of truth moves back into your repository, where it belongs: version numbers, changelogs, metadata, screenshots, signing config, rollout rules. All of it as text. All of it in git. All of it reviewable.
That's what governance actually means here. Not a policy document nobody reads. A release process that is versioned, reproducible, and auditable, because it's made of code instead of memory.
fastlane turns the ritual into a recipe
This is where fastlane earns its keep. It takes the entire release ritual and turns it into lanes — named, repeatable sequences you run with one command.
The boring, error-prone steps become declarations instead of clicks:
- Signing stops being a manual certificate hunt and becomes managed, shared, reproducible config.
- Building and uploading becomes a single lane instead of Xcode-export-then-drag-then-wait.
- Metadata and screenshots live as files in the repo and get pushed up, so the console reflects your repository, not the other way around.
- TestFlight and internal tracks get fed automatically, so testers have builds before anyone asks.
- Version bumps and changelogs are generated, not typed twice into two different boxes.
- Store submission and phased rollout become parameters, not a wizard you re-learn every quarter.
Run it locally when you need to. Run it in CI when you want to forget it exists. Either way, the release is the same, because it's the same code doing it — not you, remembering the order of operations at 6 PM on a Friday.
When something changes, it changes in a pull request. Someone reviews a diff. That's the whole audit trail. No screenshots of settings, no "who changed the rollout percentage," no tribal knowledge living in one person's head.
Think of it like autopilot
A good pilot does not hand-fly every second of a flight. They set up the system, let autopilot handle the tedious cruise, and keep their attention for takeoff, landing, and the moments something unexpected happens.
Nobody calls that lazy. We call it professional. The skill moved up a level — from operating every control to owning the flight and handling the exceptions.
Release automation is the same move. fastlane flies the cruise. You handle the parts that actually need judgment: what ships, when, to whom, and what to do when a submission gets rejected. Letting a machine do the clicking isn't cutting corners. It's putting your attention where it has leverage.
Where AI actually shines
Automation removes the clicking. AI removes the remaining friction around it — the small tasks that are too fuzzy for a script but too dull to deserve your focus.
The honest framing: AI is great at the tedious, low-stakes, high-volume work that sits between you and a release.
- Turning a messy list of merged PRs into a clean, human release note.
- Rewriting the same changelog into the tone and length each store expects.
- Drafting and maintaining the fastlane config itself, then explaining what a lane does when you come back to it months later.
- Catching the metadata problem — a missing field, a too-long subtitle, a screenshot that violates a guideline — before the review team does it for you.
- Localizing store copy without a round of copy-paste across a dozen locale fields.
Notice what all of these have in common. They're not the interesting part of the job. They're the scrolling, the reformatting, the remembering-which-box-wants-what. They are exactly the work a person who likes to code and think about problems should never have to do by hand.
AI doesn't make you a better engineer by writing your hard logic for you. It makes you a better engineer by clearing the busywork off your desk so you can spend that attention on the parts that need a brain.
The part that's still yours
None of this removes responsibility. It relocates it.
You still own the release. You decide the rollout strategy, read the crash numbers before widening it, and make the call when a submission gets rejected for something ambiguous. Automation and AI handle the how; you stay firmly in charge of the whether and the when.
That's the trade worth making. Give the machine the clicking, the copying, and the format-juggling. Keep the judgment, the architecture, and the decisions for yourself.
Because the goal was never to ship apps with less effort.
It was to spend your effort on the things that are actually hard — and let a slow web console stop being one of them.