Skip to content
Stacklyn Labs
  • Products
  • Services
  • Contact
  • About
  • GuidesStep-by-step buying and building playbooksBlogTutorials, architecture notes, updatesHelp CenterSetup, licence and support articles
  • Hire Us
  1. Home
  2. Help Center
  3. App Store Submission Checklist for Flutter Apps: Google Play and iOS

App Store Submission Checklist for Flutter Apps: Google Play and iOS

Last updated: October 23, 2026

On this page

Before you open either consoleGoogle Play submission checklistApple App Store submission checklistTroubleshooting
Before you open either consoleGoogle Play submission checklistApple App Store submission checklistTroubleshooting

You have a signed .aab and an iOS build sitting in App Store Connect, and the app still isn't on either store. Both consoles want forms, policies, screenshots and answers about data before anyone reviews a line of code. This app store submission checklist for Flutter apps covers Google Play first, then Apple, in the order the consoles ask. If you don't have signed builds yet, start with signing your first Flutter release build.

Requirements below were checked against Google's and Apple's documentation in October 2026. Both stores change them often, so recheck any number near a deadline.

Before you open either console

Prepare three things first:

  • A privacy policy URL. Both stores require one, even when the app collects nothing. Host it on a public page you control.
  • A support URL. Apple requires it, and it must give users a way to contact you.
  • A list of what your build sends off the device. Both privacy forms depend on it.

What "collected" means for our templates

Google and Apple both define collection as data leaving the device. Data processed only on the device isn't collected and doesn't need declaring. Our Flutter templates keep records in a local database on the device with no backend, so the template's own features usually send nothing. Vet Vault and Agri Ops declare no data collected or shared on Google Play and "Data Not Collected" on the App Store.

Ads change that. StyleBook, CleanSync, MemberKeep, TutorTrack, SubZero and Zenith ship with AdMob. Google's own disclosure for the Mobile Ads SDK lists data it collects automatically, including IP address, product interactions, diagnostics and the advertising ID. Both stores make you declare data sent by third-party SDKs as well as your own code.

So declare what your build actually does. If you switched ads off (MemberKeep and TutorTrack have an ads switch, CleanSync a flag), or added Firebase, analytics or a server, your answers change with it.

Google Play submission checklist

  1. Check the target API level. Since 31 August 2026, new apps and updates must target Android 16 (API level 36). Google offered extensions to 1 November 2026, and no later date is listed. Open android/app/build.gradle.kts and find targetSdk. If it reads flutter.targetSdkVersion, the number comes from your Flutter SDK version, so confirm it is 36 or higher. MemberKeep, for example, already targets API 36.
  2. Run the closed test if your account is personal. Personal developer accounts created after 13 November 2023 need a closed test with at least 12 testers opted in for the preceding 14 consecutive days before applying for production access. Google says it usually reviews that application within seven days, sometimes longer.
  3. Upload the .aab. New apps must publish as an Android App Bundle. Upload app-release.aab to the closed testing track.
  4. Complete App content. In Play Console, work through each item:
    • Privacy policy: paste the URL.
    • Ads: answer yes if the build includes an ad SDK such as AdMob.
    • App access: needed only if part of the app sits behind a login or other authentication. Our templates have no account login, but MemberKeep has a PIN app lock and SubZero and TutorTrack have optional ones. If a reviewer would hit a PIN, provide it here.
    • Content rating: fill in the IARC questionnaire. Google removes apps without a rating, and you redo the questionnaire if your content changes.
    • Target audience and Data safety: the Data safety form is required even if you collect nothing.
  5. Prepare store listing graphics.
Asset Requirement
App icon 512 × 512 px, 32-bit PNG with alpha, up to 1024 KB
Feature graphic 1024 × 500 px, JPEG or 24-bit PNG, no alpha
Screenshots At least 2 across device types, up to 8 per type, JPEG or 24-bit PNG, 320 to 3840 px, long side no more than twice the short side

For apps to be eligible for promotion, Google recommends at least four screenshots of at least 1080 px, such as 1080 × 1920 portrait.

Apple App Store submission checklist

  1. Use a current Xcode. Since 28 April 2026, uploads must be built with Xcode 26 or later using the iOS 26 SDK. Since 9 September 2026, apps must target iOS 13 or later; every template with a stated iOS minimum already meets that. Apple has announced that from April 2027 uploads need the iOS 27 SDK and a minimum of iOS 15, so plan to raise the deployment target on templates that start at iOS 13 or 14.
  2. Check the app record. You created it with the bundle ID while signing. Confirm the name, primary language and SKU.
  3. Check the privacy manifest. Apple requires a reason for each "required reason" API your app uses (file timestamps, system boot time, disk space, active keyboards and user defaults) in PrivacyInfo.xcprivacy. Since 1 May 2024, App Store Connect doesn't accept apps without those reasons. Plugins count too: Flutter itself, path_provider, share_plus, file_picker, flutter_local_notifications and url_launcher are on Apple's list of SDKs that need their own manifest. Keep plugins current rather than writing their entries by hand. StyleBook already includes PrivacyInfo.xcprivacy.
  4. Fill in App Privacy. This is the privacy label on your product page. Include data your third-party partners collect. For AdMob, Google's iOS disclosure page lists the data types to declare, and says Mobile Ads SDK 11.2.0 and later supports privacy manifests.
  5. Set the age rating. Go to App Information, then Set Up Age Ratings, and answer the questionnaire. An unrated app can't be published.
  6. Upload screenshots. You need 1 to 10 per required size, as JPEG or PNG, no transparency. Apple's specifications currently require at least one for iPhone with Dynamic Island (medium display), which accepts 1206 × 2622 or 1179 × 2556 portrait. If the app runs on iPad, you also need 13-inch iPad screenshots at 2064 × 2752 or 2048 × 2732. Check Supported Destinations in Xcode; if iPad is listed, the iPad set is required.
  7. Add the URLs. Support URL and privacy policy URL go in App Store Connect. Guideline 5.1.1(i) also requires a privacy policy link inside the app. CleanSync and Vet Vault include an in-app privacy policy screen.
  8. Write App Review notes. A demo account is required only if the app needs a login, and it must not expire. Use the notes to say the app works offline with no account, and give any PIN the reviewer needs. Apps built from templates also face guideline 4.2.6, explained in our post on the App Store 4.2.6 rejection for template apps.
  9. Answer export compliance. Add ITSAppUsesNonExemptEncryption to ios/Runner/Info.plist. NO means the app, including its libraries, uses no encryption or only exempt encryption. Without the key, App Store Connect asks the questionnaire on every upload. StockPilot encrypts its database (AES-256) and MemberKeep keeps an encryption key in secure storage, so check Apple's export compliance overview before answering for those. Apple puts the responsibility for the answer on you.

Each rejection means fixing, rebuilding, re-uploading and waiting in the review queue again, and the reply often quotes a guideline number rather than the screen that broke it. Many are avoidable before you press submit, and our guide to avoiding the common App Store review rejections walks through them.

Troubleshooting

Play Console won't accept the bundle because of its target API level. Raise targetSdk to 36 (or update Flutter if it uses flutter.targetSdkVersion), rebuild, and test on a real device before uploading again.

You can't apply for production access. Fewer than 12 testers are opted in, or someone opted out and broke the 14 consecutive days. Testers who leave early don't count.

Your Data safety answer says no data, but the build shows ads. AdMob sends data off the device. Update the form using Google's AdMob disclosure page, and update your privacy policy to match.

Apple emails about a missing API declaration. Developers report it arrives as ITMS-91053: Missing API declaration, naming an API category. Update the plugins, then add any remaining reason to PrivacyInfo.xcprivacy.

The build waits on Missing Compliance. Answer the export compliance questions in App Store Connect, then add the Info.plist key so the next upload skips them.

Screenshots are rejected on upload. Check the exact pixel size against the list in step 6 and remove any transparency; Apple rejects images with an alpha channel.

App Review couldn't get past the lock screen. Put the PIN, or the steps to skip it, in the review notes and resubmit.

Setup guides for every template are in our Help Center setup guides.

Was this article helpful?

If you're still stuck, our team is happy to help directly.

Contact Support

Related Articles

Flutter Build Errors After Purchase: Troubleshooting Guide

You unzipped the template, opened a terminal, ran flutter run , and got a screen of red text…

Oct 23, 2026 · 7 min readRead article
Flutter App Backend Setup: Does Your Template Need One?

You bought one of our Flutter templates, it runs on your phone, and now you're looking up Flutter…

Oct 20, 2026 · 6 min readRead article
Flutter Release Build Signing: First Android and iOS Build

The template is rebranded and runs on your phone. Now you need a file the stores will accept,…

Oct 20, 2026 · 7 min readRead article
Stacklyn Labs

Empowering businesses and developers with secure, high-performance digital tools, source templates, and scalable backend platforms.

FlutterWordPressBootstrap 5
Explore
  • Home
  • Products
  • Services
  • Guides
  • About
  • Blog
  • Contact
Developer Portfolios
  • CodeCanyon Store
  • Codester Profile
Support Resources
  • License Activation
  • Help Center
  • Buying Flutter Templates
Connect & Support
Direct Email Supportsupport@stacklynlabs.com
Business Operating HoursMon - Fri: 9:00 AM - 6:00 PM

© 2026 Stacklyn Labs. All Rights Reserved.
  • Privacy Policy
  • •
  • Terms of Service