Publishing an Android app means building a signed release, uploading it to Google Play Console, completing store metadata, and submitting for review. Google Play is the primary distribution channel for Android apps worldwide.
Develop & Test
↓
Generate Signed AAB/APK
↓
Google Play Console → Upload → Review
↓
Published on Play Store → Users Download
Format
Extension
Play Store
App Bundle (AAB)
.aab
Required for new apps (recommended)
Signed APK
.apk
Legacy; sideloading, some stores
1Generating Signed APK
Release builds must be signed with a keystore. Google Play uses your signing key to verify app updates — losing the keystore means you cannot update the app ever again.
You will be prompted for a keystore password, key password, and certificate details (name, organization). Store the .jks file and passwords securely — never commit them to Git.
An Android App Bundle (AAB) is the publishing format required by Google Play. Play generates optimized APKs per device — smaller downloads, only the resources and CPU architecture the device needs.
AAB vs APK
Feature
APK
App Bundle (AAB)
Upload to Play Store
Legacy (not for new apps)
Required
Download size
Full APK for all devices
Optimized per device
Split by ABI
Manual (APK splits)
Automatic
Dynamic features
Not supported
Supported
Play App Signing
Optional
Recommended
Enable App Bundle in Gradle
Kotlin — app/build.gradle.ktsandroid {
bundle {
language {
enableSplit = true // separate APK per language
}
density {
enableSplit = true // separate APK per screen density
}
abi {
enableSplit = true // separate APK per CPU architecture
}
}
}
Test App Bundle locally
Bash — bundletool commands# Download bundletool from GitHub releases
# Generate APK set from AAB
java -jar bundletool.jar build-apks \
--bundle=app-release.aab \
--output=app-release.apks \
--ks=my-release-key.jks \
--ks-key-alias=my-key-alias
# Install on connected device
java -jar bundletool.jar install-apks --apks=app-release.apks
Play App Signing
Enroll in Play App Signing when uploading your first release. Google manages your app signing key; you upload with an upload key. If you lose your upload key, Google can reset it — but the app signing key stays safe with Google.
3Play Console Setup
Google Play Console is the developer dashboard for publishing and managing apps. A one-time $25 registration fee gives lifetime access to publish unlimited apps.
Internal testing → Closed testing → Open testing → Production
(100 testers max) (email list) (public beta) (all users)
Start with Internal → fix bugs → promote to Production
4Uploading App
Upload your signed AAB to a release track, add release notes, complete all policy requirements, and submit for Google review. Review typically takes a few hours to a few days.
Upload workflow
Play Console → Your App → Release → Production (or Testing track)
Click Create new release
Upload app-release.aab
Enter release name and release notes (what's new)
Review warnings — fix any errors before proceeding
Click Review release → Start rollout to Production
Pre-launch checklist
Checklist — Before uploading✓ versionCode incremented from previous release
✓ targetSdk meets Play Store minimum requirement
✓ App tested on multiple devices / API levels
✓ ProGuard/R8 rules verified — no crashes in release build
✓ Privacy policy URL added (required if app collects data)
✓ Content rating questionnaire completed
✓ Data safety form filled out
✓ All permissions justified in store listing
Release notes example
Text — Release notes v1.1.0What's new in version 1.1.0:
• Added dark mode support
• Improved app performance and stability
• Fixed crash when loading large images
• New task reminder notifications
Staged rollout
Use staged rollout to release to a percentage of users first (e.g. 10% → 50% → 100%). Monitor crash reports in Play Console Vitals before full rollout.
Common rejection reasons
Issue
Fix
Missing privacy policy
Add URL in App content section
Permissions not justified
Explain why each permission is needed
Broken functionality
Test release build thoroughly
Misleading store listing
Ensure screenshots match actual app
Target API too low
Update targetSdk to required minimum
5Store Listing Optimization
App Store Optimization (ASO) improves your app's visibility and conversion rate on Google Play. A compelling listing with the right keywords, visuals, and descriptions drives more installs.
Store listing assets
Asset
Size
Tips
App icon
512 × 512 px
Simple, recognizable, no text
Feature graphic
1024 × 500 px
Banner shown at top of listing
Phone screenshots
Min 2, max 8
Show key features, add captions
Short description
80 characters max
Hook users — main benefit in one line
Full description
4000 characters max
Features, keywords, call to action
Writing effective descriptions
Text — Store listing exampleShort description (80 chars):
Organize tasks, set reminders, and boost productivity every day.
Full description:
TaskMaster helps you stay organized with a clean, intuitive task manager.
KEY FEATURES:
• Create and organize tasks with categories
• Set due dates and reminder notifications
• Dark mode for comfortable night use
• Sync across devices with cloud backup
• Widget for quick access from home screen
Perfect for students, professionals, and anyone who wants to get things done.
Download TaskMaster today — it's free!
ASO keyword strategy
Research keywords users search for in your category
Place primary keywords in title and short description
Repeat important keywords naturally in full description
Use Google Play's Custom store listing for A/B testing titles/descriptions
Localize listing for major markets (Hindi, Spanish, etc.)
Screenshot best practices
First screenshot is most important — show core value immediately
Add text overlays explaining each feature
Use device frames for a polished look
Show the app in action, not empty states
Include a screenshot with social proof (ratings, user count) if available
Metrics to track post-launch
Metric
Where to Find
Goal
Install conversion rate
Play Console → Store listing
> 25% is good
Crash-free users
Vitals → Crashes
> 99%
ANR rate
Vitals → ANRs
< 0.5%
Average rating
Play Console → Ratings
> 4.0 stars
Retention (Day 1 / Day 7)
Statistics → Retention
Improve with updates
6Hands-On Exercises
1
Generate a release keystore with keytool. Configure signing in build.gradle.kts using environment variables.
2
Build a signed App Bundle with ./gradlew bundleRelease. Locate the output AAB file.
3
Create a Google Play Console account. Set up a new app and complete the content rating questionnaire.
4
Upload your AAB to the Internal testing track. Add yourself as a tester and install via the test link.
5
Write a complete store listing — short description, full description, and plan 4 screenshots with captions.
6
Increment versionCode, add release notes, and promote from Internal testing to Production with staged rollout.
7
Bonus: Research 5 competitor apps in your category. Note their keywords, screenshots, and ratings for ASO ideas.
App Publishing MCQ Practice
10 Basic MCQs10 Advanced MCQs
10 Basic App Publishing MCQs
1
Google Play requires upload format?
AUnsigned APK only
BAndroid App Bundle (AAB)
CZIP source
DDEX only
Explanation: AAB mandatory for new apps — Play generates optimized APKs.
2
Play Console is?
AEmulator
BIDE plugin
CDeveloper portal to publish and manage apps
DAd network
Explanation: Store listing, releases, analytics, policy.
3
Release signing uses?
AADB
BDebug keystore
CNo signing
DUpload key / app signing by Google
Explanation: Play App Signing recommended — Google manages app signing key.
4
versionCode?
AInteger incremented each release
BUser visible version name
CPackage name
DAd unit ID
Explanation: Must increase for each Play upload.
5
versionName?
AInternal only integer
BUser-visible version string like 1.2.0
CSHA-1
DAPI level
Explanation: Display version for users in store and about screen.