What Flutter teams specifically struggle with
Most Flutter shops ship to Play Console first and App Store Connect second, often with different humans owning each store. The friction shows up in places that unified tooling promised to remove but couldn't.
- Apple-specific metadata fields don't map to Play Console. App Store Connect has a 30-character subtitle, a 100-character keyword field, and a 170-character promotional text — none of which exist on Play Console. Copy that was perfect for Android looks awkward on iOS, and iOS-optimised copy confuses Android.
- Screenshot specs diverge. iOS requires iPhone 6.9", 6.5", iPad Pro 13", iPad Pro 12.9" with specific pixel sizes. Play Console has phone/7-inch tablet/10-inch tablet slots with different rules. Your design pipeline has to export two sets every time.
- Privacy labels diverge. Apple's privacy nutrition labels are a separate questionnaire from Google Play's Data safety section. The categories are different, the granularity is different, the review implications are different.
- Age rating is different. Apple uses its own age rating declaration. Google uses IARC. You answer similar-but-not-identical questions twice, and catching mismatches falls to whoever submits the release.
- TestFlight expires after 90 days. Internal Google Play testing doesn't. Flutter teams that rely on TestFlight for beta distribution have to budget release cadence around that expiry, which surprises teams that are used to Play's behavior.
How AppConsul helps Flutter teams
iOS-only on purpose
AppConsul is not a cross-platform store manager and doesn't try to be. The iOS surface is large enough — metadata, screenshots, age rating, privacy, in-app purchases, custom product pages, territories, TestFlight — that doing it well requires specialising in it. Keep Google Play Console open for Android in a browser; use AppConsul for iOS.
Built around Apple's actual model
Screen names, button labels, and workflows match App Store Connect. When Apple ships a new App Store Connect change, AppConsul updates to track it, not to smooth it into a unified abstraction that would hide it. If you already have a mental model of how App Store Connect works, AppConsul is familiar in minutes.
Every metadata field in every locale, side by side
If your Flutter app supports English, Spanish, French, German, Portuguese, Italian, Dutch, and Japanese, all eight locales are columns in the same editor. Live UTF-16 character counts mirror Apple's limits (30/30/170/4000/100/4000). Per the character counter, spaces and line breaks count, and emoji typically cost 2 characters.
Screenshot management with diff uploads
Import the screenshots live in App Store Connect, reorder by drag, replace only the shots that changed, upload the diff. The screenshot size reference covers exact dimensions for every Apple device class. If you capture from the iOS simulator, AppConsul can pull the image directly and assign it to the right device class.
Guided Flow for TestFlight expiry
TestFlight builds expire after 90 days. AppConsul's TestFlight surface flags builds approaching expiry and the Set Up TestFlight Beta Guided Flow walks you through uploading a replacement build, reassigning groups, and notifying testers.
Pro: custom product pages for ad campaigns
Custom product pages — up to 35 per app — let you ship variant screenshots and promotional text for each ad campaign. For Flutter teams running Apple Search Ads or Meta ads into iOS, custom product pages often outperform a single one-size-fits-all listing; see the custom product pages guide.
Recommended Flutter release workflow
- CI builds the iOS IPA. Codemagic, Bitrise, or GitHub Actions produces the archive and uploads it.
- AppConsul notifies when processing completes. The build appears in the build picker.
- Create version, attach build.
- Metadata update. Write What's New in English. Use Pro's AI translation (or your translation agency) for other locales. Adjust for iOS-specific ASO: use the 30-character subtitle and 100-character keyword field — they don't exist on Play.
- Screenshots. If the UI changed, re-export iOS sizes, reimport into AppConsul, upload diff.
- Age rating and privacy labels. App Details panel — only if anything shifted. AppConsul renders these as side-by-side toggles instead of Apple's long scrolling form.
- Pre-flight. Validates metadata, build, screenshots, age rating, privacy URL, privacy labels.
- Submit for review. Phased release and manual-release toggles in the same panel.
- Play Console (separate workflow). Update Android separately — different store, different tooling.
Tools you'll use most
- Screenshot size reference — iOS device class dimensions so your Flutter design team exports the right sizes first time.
- Metadata character counter — for drafting iOS-specific subtitle and keyword copy that Play-Console ASO doesn't cover.
- Keyword field optimizer — the 100-character keyword field is the single biggest iOS ASO lever and doesn't exist on Play.
Frequently asked questions
Why is AppConsul iOS-only?
Because the two stores genuinely behave differently at the listing level — screenshots, privacy, age rating, keywords, categories. A unified UI either hides those differences or lowest-common-denominators them. Play has its own tooling; AppConsul focuses on iOS.
Does AppConsul work with Codemagic or Bitrise?
Yes. Any CI that produces an IPA and uploads it to App Store Connect works. AppConsul picks up the processed build from App Store Connect's build pool.
How do iOS metadata fields differ from Play Console?
iOS has a 30-char name, 30-char subtitle, 170-char promotional text (editable without a new version), 100-char keyword field, 4000-char description that is not indexed for search. Play indexes the description and has no keyword field. Copy for Play does not port cleanly.
Do Flutter apps have special ASC requirements?
No. Apple cares about the binary. Privacy manifest, export compliance, and age rating apply identically. Flutter-specific gotchas (Info.plist usage descriptions for plugin permissions) are build-side.
Can I handle 10+ locale listings efficiently?
Yes. Every locale is a column in AppConsul's editor. Pro's AI translation drafts non-primary locales from your primary metadata; see the localization guide.
A tool that respects how iOS differs from Android.
Install AppConsul, connect your App Store Connect API key, and stop fighting the Play/App Store mismatch.
See AppConsul →