Publishing Your First App on Google Play: The Complete 2026 Checklist

Everything between a finished APK and a live Play Store listing, in the order you need it — account setup, signing, the data safety form, store listing assets, closed testing and the rejection reasons that catch people out.


Writing the app is the part everyone plans for. The gap between a finished build and a live Play Store listing is the part that surprises people — and it is where first launches slip by weeks.

This is the checklist I work through, in order, drawn from taking twelve apps through the Play Console. Follow it top to bottom and nothing should ambush you.

Read this first: if you have a personal developer account created after 13 November 2023, you must run a 12-tester closed test for 14 days before you can publish to production. Start it the moment you have a working build. See the full explanation.

1. Developer account

  • Register at the Play Console. One-time fee of 25 USD, no annual renewal.
  • Choose your account type deliberately. Personal is fast but carries the 12-tester requirement. Organisation needs a D-U-N-S number and identity verification but skips closed testing. If you have a registered business, weigh the D-U-N-S wait against the 14-day test.
  • Complete identity verification. Google will ask for government ID and address confirmation. Do it immediately — it can take days and blocks everything downstream.
  • Set up a payments profile if you plan to charge for the app or sell in-app products. This also takes time to verify.

2. Prepare the build

  • Set a unique, permanent application ID. Something like net.yourdomain.appname. This can never be changed after publication — not renamed, not reused, not recovered if you delete the app. Get it right.
  • Set versionCode and versionName. versionCode is an integer that must increase with every upload. versionName is the human-readable string.
  • Target the required API level. Google raises this annually and enforces it for new submissions and updates. Check the current requirement before you build; being one level behind blocks the upload outright.
  • Build a signed release .aab, not an APK. App Bundles have been mandatory for new apps since August 2021.
  • Enable code shrinking and obfuscation for release builds, and keep the mapping file so crash reports stay readable.
  • Test the release build on a real device. Release builds behave differently from debug builds — obfuscation breaks reflection, and network security config differs. A shocking number of crashes only appear here.

3. App signing — the step you cannot undo

This deserves its own section because getting it wrong is unrecoverable.

  • Generate an upload keystore and back it up in at least two places that are not your laptop. If you lose it and are not enrolled in Play App Signing, you can never update your app again. Not "with difficulty" — never.
  • Enrol in Play App Signing. Google holds the app signing key and you sign uploads with a separate upload key. If the upload key is lost, Google can reset it. This is the safety net and you should use it.
  • Record the keystore password, key alias and key password in a password manager alongside the file itself.

4. Store listing assets

Produce these before you start filling in the console, or you will stall halfway through the form.

AssetRequirementNotes
App icon512 × 512 PNG, 32-bitMust read clearly at 48px. Test it small before committing.
Feature graphic1024 × 500 PNG or JPGRequired. Shown at the top of your listing — no transparency.
Phone screenshots2–8 images, minimum 320px on the short sideUse at least 4. Add captions rather than shipping raw captures.
Tablet screenshotsOptional but recommendedRequired to be surfaced properly on tablets.
App title30 charactersHeavily weighted for store search. Name plus one keyword phrase.
Short description80 charactersAppears above the fold. This is your hook.
Full description4,000 charactersFront-load the value. Use natural keyword phrasing, not stuffing.

The screenshots and the short description do most of the conversion work. Almost nobody reads to 4,000 characters, but Play's search indexes it — write it for both, with the first two lines aimed squarely at humans.

5. Content declarations

This section causes more rejections than the app code ever will.

  • Privacy policy. A live URL on a stable domain. Required for any app handling personal or sensitive data, and for anything targeting children. In practice: publish one.
  • Data safety form. A self-declaration of what your app collects, what it shares, whether it is encrypted in transit, and whether users can request deletion. It must match reality including your third-party SDKs. An analytics or ads SDK collects data on your behalf and you are responsible for declaring it. Mismatches here are the most common rejection I see.
  • Content rating questionnaire. Answer accurately. Under-rating gets the app pulled later.
  • Target audience and children's policy. If your audience includes under-13s, a substantially stricter policy set applies.
  • Ads declaration. Declare it if the app contains ads, including ads inside an SDK you added.
  • Permissions justification. Sensitive permissions — location, camera, contacts, all-files access — need a documented reason. Remove any permission you do not genuinely need; every one is a rejection surface.
  • App access instructions. If the app has a login, provide working test credentials. Reviewers who cannot get past your login screen reject the app.

6. Testing tracks

  • Internal testing — up to 100 testers, available in minutes, no review. Use this constantly during development.
  • Closed testing — the track that satisfies the 12-tester requirement. Start early.
  • Open testing — public beta, anyone can join. Useful for gathering scale feedback before launch.
  • Production — the live listing.

Ship through internal from day one. It costs nothing and means the release pipeline is already proven by the time it matters.

7. Submit

  • Select countries and regions. Worldwide is the default; restrict only for a deliberate reason.
  • Set pricing — free or paid. A free app can never be switched to paid. You can go paid to free, never the reverse.
  • Use a staged rollout for the first production release. Start at 20%. If crash rates spike, halt before it reaches everyone.
  • Submit and wait. First reviews from a new account commonly take up to seven days. Later updates are often a day or two.

8. After you are live

Publication is the start of the work, not the end.

  • Watch Android vitals in the console. Crash rate and ANR rate above Google's thresholds get your app demoted in search and eventually flagged.
  • Wire up Crashlytics and actually read it.
  • Reply to reviews. Response rate influences perception, and a fixed one-star review is often revised upward if you tell the person you fixed it.
  • Diarise the annual target SDK deadline. Google raises the requirement every year and apps that miss it stop being discoverable to new users, then get delisted.
  • Iterate the listing. Change the icon, the short description, the first screenshot — one at a time — and watch the conversion rate in the console. This is the cheapest install growth available to you.

The five rejections I see most

  1. Data safety form does not match app behaviour. Usually a forgotten SDK.
  2. Missing or unreachable privacy policy. A dead link counts as missing.
  3. Sensitive permission with no justification. Especially background location and all-files access.
  4. Reviewer could not access the app. No test credentials for a login-gated app.
  5. Metadata policy violation. Keyword-stuffed titles, competitor names in the description, or "#1" and "best" claims you cannot support.

All five are fixable in under an hour — but each one costs another review cycle, and review cycles are measured in days.


If your app is stuck in review, has been rejected, or you would rather hand the whole publishing process to someone who has done it a dozen times, that is a service I offer. Send me the details — including the rejection email if you have one.

Frequently asked questions

How much does a Google Play developer account cost?

A one-time 25 USD registration fee. There is no recurring charge, unlike Apple's annual fee.

How long does Google Play review take?

First submissions from a new developer account commonly take up to seven days. Later updates to an established app are often reviewed within a day or two, though there is no guarantee.

What is the most common reason a first app is rejected?

An incorrect or incomplete Data safety form. It is a declaration you fill in yourself, and it must match what your app and its SDKs actually do. Mismatches between the form and observed behaviour are a very common rejection.

Do I need a privacy policy for my app?

Effectively yes. Any app that handles personal or sensitive user data must link to a privacy policy, and apps targeting children need one regardless. Since almost every app collects something, publish one and link it in the Play Console.

Should I upload an APK or an AAB?

An Android App Bundle (.aab). Google Play has required the AAB format for new apps since August 2021. Play generates optimised APKs per device from the bundle, which reduces download size.

Written by Sakib Hossain

Flutter developer and independent Android publisher based in Natore, Bangladesh. I have designed, built and shipped 12 apps to Google Play under the AppColors name, with more than 120,000 combined downloads.

More about me · See the apps · Hire me

Keep reading

Google Play's 12-Tester Closed Testing Requirement, Explained

If you opened a personal Google Play developer account after November 2023, you cannot publish to production until 12 testers have run a closed test for 14 consecutive days. Here is exactly how the rule works and how to satisfy it without gaming it.

Read article

Flutter vs Native Android in 2026: How I Actually Choose

I maintain both Flutter and native Java apps on the Play Store at the same time. Here is the decision framework I use on real projects, including the cases where I still reach for native Android.

Read article

Want help shipping your app?

I do this for clients — Flutter builds, Play Store submission, and rescuing apps stuck in review.