How to Publish a Unity App on Google Play
Publishing a Unity game to Google Play involves configuring Unity's Android build pipeline, generating a signed Android App Bundle, and meeting Google Play's content and technical policies. Unity handles the Android build directly (no Android Studio needed), but you need to understand keystore management, target API requirements, and how to optimize for Android's diverse device ecosystem.
Prerequisites
- Unity 2022.3 LTS or later with Android Build Support module
- Android SDK and NDK installed via Unity Hub (Unity manages these)
- A Google Play Developer account ($25 one-time fee)
- JDK included with Unity (no separate installation needed)
- Your game tested on multiple Android devices
Step-by-Step Build Process
Configure Player Settings for Android
Go to Edit > Project Settings > Player > Android tab. Set the Package Name (e.g., com.studio.gamename), Version, and Bundle Version Code. Set Minimum API Level to 24+ and Target API Level to 34+. Choose IL2CPP scripting backend for AAB support.
Configure build settings
Check 'Build App Bundle (Google Play)' in Build Settings to generate AAB format. Set compression method to LZ4HC for release builds. Enable 'Split Application Binary' if your game exceeds 150MB to use Play Asset Delivery.
Create and configure the keystore
In Player Settings > Publishing Settings, create a new keystore (Project Settings > Create New Keystore). Set the keystore password, alias, and alias password. Save the keystore file securely — losing it means you cannot update the game.
Build the AAB
Click Build in Build Settings. Unity compiles scripts with IL2CPP, processes assets, and generates the .aab file. The build can take 15-45 minutes for large projects. Watch the console for errors, especially regarding NDK compatibility.
Code Signing & Certificates
Unity keystore management
Unity stores keystore configuration in Player Settings. For team environments, share the keystore file (not via Git) and reference it in each developer's Unity installation. Use environment variables in CI/CD pipelines.
Play App Signing enrollment
Enroll in Play App Signing during first upload. Unity games benefit from this because Google can optimize the AAB into device-specific APKs, reducing download sizes across the diverse Android device landscape.
Store Submission Steps
Create the game in Play Console
Click 'Create app', select 'Game' as the app type. Choose the appropriate game category and sub-category. This affects how your game appears in Play Store search and recommendations.
Complete the store listing
Add game descriptions, screenshots showing gameplay (not menus), a feature graphic, and optional promotional video. For games, gameplay videos significantly improve conversion rates.
Configure Play Asset Delivery (if needed)
If your game exceeds 150MB, use Unity's Play Asset Delivery integration to split assets into install-time, fast-follow, and on-demand packs. Configure this in Unity's Addressables or custom asset delivery settings.
Upload and release
Upload the AAB to the production track (use internal testing first). Complete the content rating questionnaire — be accurate about violence, gambling, and user-generated content. Roll out when all sections are green.
Common Rejection Reasons & Fixes
Misleading ads policy
If using ad networks (AdMob, Unity Ads, IronSource), ensure ads don't mimic game elements or system notifications. Interstitial ads must have clear close buttons and not appear during loading screens or at app launch.
Real-money gambling simulation
If your game has casino-style mechanics (slots, poker), it may be flagged as simulated gambling. Ensure virtual currency can't be cashed out. Some countries restrict gambling-themed games entirely.
Excessive permissions
Unity plugins often add unnecessary permissions to AndroidManifest.xml. Review the merged manifest (in the built project under src/main/) and remove permissions your game doesn't need using `tools:node="remove"` entries.
64-bit requirement not met
Google Play requires 64-bit native libraries. In Unity, set Target Architectures to 'ARM64' in Player Settings. If using native plugins, ensure they include arm64-v8a libraries.
Pro Tips
- Use Unity's Frame Debugger and Profiler to optimize rendering before release
- Enable 'Minify' for Release builds to reduce code size and improve obfuscation
- Implement Play Asset Delivery for games with large asset files — it improves install conversion
- Test on Mali and Adreno GPUs separately — shader compatibility varies between GPU vendors
- Use Google Play Console's Android Vitals to monitor crash rates and ANR rates post-launch
Skip the hassle. Let us handle it.
Publishing a Unity app on the Google Play (Android) involves dozens of steps, certificates, and potential rejection pitfalls. Our team handles the entire process for you — from build configuration to store approval.