Publishing your first Android app is one of those things that feels harder than it should be. The official documentation skips the parts that actually trip people up, and there are just enough moving pieces to make first-timers stall for days. I went through this entire process with PayTrack, and this guide covers everything I wish I'd known — from the $25 registration fee to the moment your app goes live.
"The hard part isn't building the app. It's getting it past Google's policy review without triggering a rejection you don't understand."
1 Set up your Google Play Developer account
Before you can publish anything, you need a Google Play Developer account. This is a one-time setup tied to your Google account and costs a one-time fee of $25 USD. There's no annual renewal — you pay once and you're in for life.
How to register
Go to play.google.com/console and sign in with your Google account. You'll be asked to accept the Developer Distribution Agreement, fill in your developer name (this is what users will see on the Play Store under your app), and pay the $25 fee via Google Pay or card.
Choose your developer name carefully — it appears on every app you publish. Use your real name or a consistent brand name. You can change it later but it requires re-verification.
Account approval is usually instant, but Google sometimes takes up to 48 hours to verify new accounts. Once approved you'll have access to the Play Console dashboard.
2 Prepare your app for release
Before generating a build, make sure your app is actually ready for production. This sounds obvious but there are a few specific things Google checks that developers often miss.
Checklist before building
- Set your
versionCodeandversionNamein yourbuild.gradle. TheversionCodemust be an integer that increases with every upload — start at 1. - Set your application ID (
applicationId) — this is permanent. Once published, you can never change it. Use reverse domain notation:com.yourname.appname. - Remove all debug logs, hardcoded test API keys, and
debuggable trueflags from your release build config. - Make sure your app has a proper app icon at all required densities (Android Studio's Image Asset Studio generates these automatically).
- Verify your
minSdkandtargetSdk. In 2026, Google requirestargetSdkto be at least API level 35 for new apps. - Declare only the permissions your app actually needs. Unnecessary permissions are a common rejection reason.
- If your app targets children or collects any user data, you'll need a privacy policy URL. Create one before submitting.
Your applicationId is permanent. If you publish com.urim.myapp and later want to rename it to com.urim.betterapp, you'll need to publish it as an entirely new app and lose all your existing users and reviews.
3 Generate a signed release build
Google requires all apps to be signed with a private key before they can be published. This signing process proves the app came from you. You'll generate a keystore file — guard this with your life, because losing it means you can never update your app.
Generate your keystore in Android Studio
Go to Build → Generate Signed Bundle / APK. Select Android App Bundle (AAB) — Google now requires AAB format for new apps, not APK. Click Create new keystore and fill in the details:
Key store path: /your/path/my-release-key.jks
Password: (choose a strong password)
Key alias: my-key-alias
Key password: (can be same as store password)
Validity: 25 years
First and last name: Urim Mustafa
Organization: (optional)
Country code: MT
Back up your .jks keystore file and its passwords in at least two separate locations — cloud storage, a password manager, an external drive. If you lose this file, you cannot push updates to your existing app. Ever. Google cannot help you recover it.
Automate signing with gradle (recommended)
Rather than entering your keystore details manually every time, add a signing config to your build.gradle so release builds are signed automatically:
android {
signingConfigs {
release {
storeFile file("../my-release-key.jks")
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias "my-key-alias"
keyPassword System.getenv("KEY_PASSWORD")
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
Using environment variables for passwords keeps them out of your source code. Run the build with ./gradlew bundleRelease and your signed AAB will be in app/build/outputs/bundle/release/.
4 Create your Play Store listing
In Play Console, click Create app. You'll set your app name, default language, and whether it's an app or game. Once created, head to Store presence → Main store listing. This is what users see on the Play Store, so take it seriously.
What you need to prepare
- Short description — up to 80 characters. This shows up in search results. Pack in your main value proposition.
- Full description — up to 4,000 characters. Use natural language, include keywords people would search for, and break it up with line breaks. Don't keyword-stuff.
- App icon — 512×512px PNG, no alpha/transparency allowed.
- Feature graphic — 1024×500px. This appears at the top of your listing. Make it clean and legible at small sizes.
- Screenshots — minimum 2, maximum 8 per device type. Phone screenshots must be at least 320px on the short side. Show the actual app, not just marketing graphics.
Screenshots are the single most important conversion factor on your store listing. Users decide in 3 seconds whether to install. Use real in-app screenshots with short captions that explain the feature, not vague marketing phrases.
5 Upload your AAB and set up a release
Go to Testing → Internal testing first. Even if you plan to go straight to production, starting with internal testing lets you verify the build uploads correctly and passes Google's automated checks before you commit to a full review cycle.
Upload your AAB
Click Create new release, then drag your .aab file into the upload box. Google will process it — this takes a minute or two. Once processed, you'll see your version code, version name, and a list of supported devices. Check this number: if it's below a few hundred million devices, something in your manifest is likely too restrictive.
Release notes
Write release notes even for your first version. Users see these when they're deciding whether to update. For a first release, something like "Initial release of PayTrack — track your shifts and take-home pay." is perfectly fine.
If Google flags your build with a warning about a target SDK that's too low, you cannot publish to production until you fix it. In 2026, targetSdk 35 is the minimum for new app submissions.
6 Complete the policy declarations
This is the step that surprises most first-time publishers. Before Google will review your app, you must complete a series of policy declarations in the Policy section of Play Console. Skipping any of them blocks your submission.
Data safety form
This is the most important one. You must declare exactly what data your app collects, how it's used, whether it's shared with third parties, and whether users can request deletion. Be thorough and accurate — Google cross-checks this against your actual app behavior, and discrepancies are a common rejection reason.
Common data types to declare:
- Personal info (name, email) — if you use Firebase Auth
- Files and docs — if your app reads/writes storage
- App activity — crash logs, usage statistics
- Device identifiers — if you use advertising IDs
App content declarations
You'll also need to complete:
- Target audience — if your app could be used by anyone under 13, you're subject to additional COPPA requirements.
- News app declaration — only relevant if you aggregate news content.
- COVID-19 contact tracing — declare if your app is not related to this (most apps aren't).
- Financial features — declare if your app handles real money transactions or investments. Note: a salary tracker like PayTrack does not handle real transactions, so this doesn't apply.
7 Submit for review and go live
Once all policy sections show a green tick, go to Production, create a new release, upload your AAB (or promote from internal testing), and click Review release. If everything is in order, you'll see a Start rollout to production button.
Review timeline
Google's review process for new apps typically takes 3 to 7 days in 2026. It used to be faster, but increased policy enforcement has extended review times. Don't panic if it sits at "In review" for several days — this is normal.
You can choose a staged rollout — publish to 10% of users first, monitor crash rates and reviews, then expand to 100%. For a first app this is optional, but it's a good habit to build.
Common rejection reasons
- Misleading metadata — your description promises features the app doesn't have, or your screenshots don't match the actual app.
- Privacy policy missing or incomplete — required if you collect any personal data or use certain permissions like camera, microphone, or location.
- Data safety mismatch — your declaration says you don't collect data, but your app clearly does (e.g. Firebase Analytics).
- Permissions not justified — requesting permissions (especially sensitive ones) without a clear in-app purpose.
- Target SDK too low — must be API 35+ for new submissions in 2026.
✓ What happens after you publish
Once your app is live, it typically appears in search results within a few hours, though full indexing can take up to 24 hours. Your app page will be sparse at first — no ratings, no reviews, minimal download count. This is completely normal and won't last long if your app solves a real problem.
Things to do immediately after going live
- Share the Play Store link everywhere — your portfolio, LinkedIn, WhatsApp, social media. Early organic installs help with Play Store ranking signals.
- Set up Android Vitals in Play Console — this shows crash rates, ANR rates, and battery usage. Fix any regressions fast.
- Reply to your first reviews, even if they're just "Great app!" — engagement signals matter for the algorithm.
- Start planning your first update. Apps that receive regular updates rank better and retain users more effectively than apps that go dark after launch.
"Shipping is a skill. The first time takes weeks. By the third or fourth app, you'll do it in an afternoon."
The process is genuinely not as complicated as it looks from the outside — it's just unfamiliar. Once you've done it once with PayTrack or any other app, the second time takes a fraction of the effort. The key is not to let the policy declarations and signing setup intimidate you into never pressing submit.