HT-006 - v2 PopOff Android Publish
Overview
This guide covers the complete process of publishing Pop Off (Expo / React Native) to the Google Play Store for the first time --- from zero. It covers creating the Google Play Developer account, configuring EAS Build, generating the production AAB, manually uploading the first build (required by Google), completing all Play Console requirements, and submitting for production review.
Pop Off details:
-
App: Pop Off --- Slightly savage. Always funny.
-
Framework: Expo (React Native)
-
Build tool: EAS (Expo Application Services)
-
Target: Android (Google Play Store) --- Apple App Store is a separate guide (HT-007)
-
Working directory: D:\Data\AtlantisITS\projects\popoff-app
-
expo-doctor status: 17/17 checks passed ✅ --- March 2026
💰 Total one-time cost: \$25 USD --- Google Play Developer account registration fee. This is a one-time payment, not a subscription. It covers all apps you publish under the same account forever.
Pre-Flight Checklist
Confirm all of these before starting:
Item Status
expo-doctor --- 17/17 checks ✅ Confirmed March 14, 2026 passed
Expo account created at ✅ AtlantisITS / atlantisits-ai expo.dev/signup (manual --- web browser only)
EAS CLI installed --- npx Confirm in Step 2
eas-cli@latest (no \'eas
register\' command exists)
Google Play Console account --- ✅ Created March 14, 2026 Srhardin@gmail.com
Play Console account type --- ✅ Individual selected
Yourself (Individual) NOT
Organization
\$25 USD registration fee paid Confirm before Step 1
Identity verification submitted ⏳ In progress --- blocks production --- takes 2-7 days submission
Android device verification --- Complete on phone Play Console mobile app
App icon --- 512x512 PNG Required for Play Console listing
Feature graphic --- 1024x500 Required for Play Console listing PNG
At least 2 screenshots (phone) Required for Play Console listing
Privacy policy live at Deploy before submission atlantisits.co/popoff-privacy
Terms live at Deploy before submission atlantisits.co/popoff-terms
Short description --- max 80 Prepare before starting chars
Full description --- max 4000 Prepare before starting chars
💡 Prepare your store listing assets (icon, screenshots, descriptions) BEFORE starting the Play Console setup. Google will not let you proceed to production without them. Having them ready saves significant time.
Phase 1 --- Google Play Developer Account
Step 1 --- Create Google Play Developer Account
-
Go to: https://play.google.com/console/signup
-
Sign in with Srhardin@gmail.com --- use your personal Gmail, NOT shane@atlantisits.co. Google ties Play Console to your Google account for identity verification and billing. If your custom domain ever has issues, you retain access via Gmail.
-
Choose account type: Yourself (Individual) --- NOT Organization. Organization requires a D-U-N-S number and takes up to 30 days to verify. Individual gets you live faster.
-
Developer name: AtlantisITS --- this is what users see on the Play Store, not your legal name
-
Fill in Android experience --- be honest, this is internal only. Example: \'First-time Google Play Console user. Founder of Atlantis ITS. Built Pop Off using React Native / Expo / EAS Build.\'
-
Pay the \$25 USD one-time registration fee
-
Complete identity verification --- upload government-issued photo ID (driver\'s license front + back, or passport). Takes 2-7 days. Start immediately --- this blocks production submission until cleared.
-
Once account is created you land on the Play Console dashboard showing 3 verification tasks
⚠️ Identity verification takes 2-7 days and BLOCKS production submission until complete. Start it immediately. You can build everything else (store listing, internal testing upload, app content) while waiting. The March 20 deadline may slip if verification takes the full 7 days --- plan accordingly.
The Play Console dashboard shows 3 verification tasks:
-
Verify your identity → Get started --- upload ID now, start the clock
-
Verify Android device access → download Google Play Console app on your Android phone → sign in with Srhardin@gmail.com → instant
-
Verify phone number → unlocks after identity is verified
📸 SCREENSHOT PLACEHOLDER --- Google Play Console dashboard after account creation and verification
Phase 2 --- EAS Setup & Production Build
Step 2 --- Create Expo Account and Log In
⚠️ There is NO \'eas register\' command. Expo account creation is done manually in a browser only. Do not run eas register --- it does not exist.
-
Go to: https://expo.dev/signup in your browser
-
Create account with: Email = shane@atlantisits.co, Username = AtlantisITS, Org = atlantisits-ai
-
Verify email then return to terminal
+-----------------------------------------------------------------------+ | # Install EAS CLI globally if not already installed | | | | npm install -g eas-cli | | | | # Verify installation | | | | eas --version | | | | # Log in to your Expo account | | | | eas login | | | | # Enter: shane@atlantisits.co + your password | | | | # Confirm login | | | | eas whoami | | | | # Expected output: Logged in as AtlantisITS | +-----------------------------------------------------------------------+
Step 3 --- Configure EAS in the Pop Off Project
+-----------------------------------------------------------------------+ | # Navigate to Pop Off project --- D: drive, not E: | | | | cd D:\Data\AtlantisITS\projects\popoff-app | | | | # Initialize EAS --- links project to AtlantisITS Expo account | | | | # Use the project ID from your Expo dashboard: | | | | npx eas-cli@latest init --id 773f61db-c4b8-479c-8f23-8e18e4410a30 | | | | # If Git safe.directory error appears after D: drive migration: | | | | git config --global --add safe.directory | | D:/Data/AtlantisITS/projects/popoff-app | | | | # Then sync GitHub before building --- EAS requires clean repo state | +-----------------------------------------------------------------------+
Verify your eas.json has a production build profile. If eas.json does not exist, create it:
+-----------------------------------------------------------------------+ | # Check if eas.json exists | | | | ls eas.json | | | | # If it doesn\'t exist, run: | | | | eas build:configure | | | | # Select: Android | | | | # This generates eas.json with default profiles | +-----------------------------------------------------------------------+
Your eas.json should contain at minimum:
+-----------------------------------------------------------------------+ | { | | | | \"cli\": { | | | | \"version\": \">= 5.0.0\" | | | | }, | | | | \"build\": { | | | | \"production\": { | | | | \"android\": { | | | | \"buildType\": \"app-bundle\" | | | | } | | | | } | | | | }, | | | | \"submit\": { | | | | \"production\": { | | | | \"android\": { | | | | \"track\": \"internal\" | | | | } | | | | } | | | | } | | | | } | +-----------------------------------------------------------------------+
⚠️ Do NOT run \'npx eas-cli@latest build --platform all --auto-submit\' --- this rebuilds BOTH platforms and tries to auto-submit before Google Service Account is configured. You already have the AAB built. Manual upload to Internal Testing first (Step 7), then configure EAS Submit (Step 11) for all future builds.
Step 4 --- Verify app.json Configuration
Open app.json and confirm these fields are set correctly for Pop Off:
+-----------------------------------------------------------------------+ | { | | | | \"expo\": { | | | | \"name\": \"Pop Off\", | | | | \"slug\": \"popoff-app\", | | | | \"version\": \"1.0.0\", | | | | \"android\": { | | | | \"package\": \"co.atlantisits.popoff\", | | | | \"versionCode\": 2 | | | | }, | | | | \"icon\": \"./assets/icon.png\", | | | | \"splash\": { \"...\" } | | | | } | | | | } | +-----------------------------------------------------------------------+
⚠️ The android.package value (co.atlantisits.popoff) is permanent --- once published to the Play Store it cannot EVER be changed. This was confirmed during the Pop Off first build March 14, 2026.
💡 versionCode was initialized at 2 (not 1) during the first EAS build --- EAS auto-incremented it. Always increment versionCode by 1 for every new build submitted to the Play Store.
Step 5 --- Create Production Build
+-----------------------------------------------------------------------+ | # From the popoff-app directory | | | | cd D:\Data\AtlantisITS\projects\popoff-app | | | | # Trigger production build (uploads to EAS cloud build servers) | | | | eas build --platform android --profile production | | | | # EAS will ask: Generate a new Android Keystore? | | | | # Select: Yes --- Generate new keystore | | | | # EAS stores the keystore securely on their servers | | | | # Build typically takes 5-15 minutes | | | | # You will get a URL to monitor build progress | | | | # You can close the terminal --- build continues in the cloud | +-----------------------------------------------------------------------+
⚠️ CRITICAL: Let EAS generate and manage the keystore for you. Do NOT manage your own keystore manually. If you ever lose a self-managed keystore you will be permanently unable to publish updates to Pop Off. EAS keystore management is the safe option.
When complete, the build dashboard shows a Download button for the .aab file. Note the build URL --- you will need it in Step 7.
📸 SCREENSHOT PLACEHOLDER --- EAS Build dashboard --- Pop Off production build complete, .aab download available
Phase 3 --- Play Console Setup
💡 This phase has the most manual steps. Google\'s Play Console is a checklist-driven dashboard --- every item must be green before you can submit for production. Work through them systematically.
Step 6 --- Create the App in Play Console
-
Go to: https://play.google.com/console
-
Click: Create app
Field Value for Pop Off
App name Pop Off
Default language English (United States)
App or game App --- NOT Game. Pop Off is a content/humor app with no game mechanics, scoring, or levels.
Free or paid Free
-
Click: Create app
-
You are now on the Pop Off dashboard in Play Console
-
Click: View tasks under Start testing now --- this opens your to-do checklist
📸 SCREENSHOT PLACEHOLDER --- Play Console --- Pop Off app dashboard showing task checklist
Step 7 --- First Manual Upload (Required by Google)
Google requires the first build to be uploaded manually through the Play Console UI. After this, EAS Submit can automate all future submissions. This is a Google API limitation --- there is no workaround.
-
In EAS Build dashboard --- click Download on your production build to save the .aab file
-
In Play Console --- go to: Testing → Internal testing → Create new release
-
Under App bundles --- click Upload and select the .aab file you downloaded
-
For signing key --- select: Use Google-generated key (recommended --- safer than self-managed)
-
Add release notes (optional for internal testing)
-
Click: Save → Review release → Start rollout to Internal testing
✅ First build is now uploaded. From this point forward you can use eas submit -p android to automate all future uploads without opening Play Console.
📸 SCREENSHOT PLACEHOLDER --- Play Console --- Internal testing release showing Pop Off .aab uploaded successfully
Step 8 --- Add Internal Testers
-
In Play Console --- go to: Testing → Internal testing → Testers tab
-
Create an email list --- name it: Atlantis Internal
-
Add your email: Srhardin@gmail.com
-
Add Maranda\'s email if she will test on her device
-
Click: Save changes
-
Click: Copy link --- share with testers so they can install the app
💡 You need at least one tester (yourself) and the app must be tested for 14 days before applying for production access on an individual developer account. Plan your timeline accordingly --- submit internal testing at least 2 weeks before your production target date.
Phase 4 --- Complete Play Console Requirements
Work through all checklist items on the Play Console dashboard. All must be green before production submission. The main sections:
Step 9 --- App Content & Store Listing
9.1 Privacy Policy & Terms
-
Go to: Policy → App content → Privacy policy
-
Privacy policy URL: https://atlantisits.co/popoff-privacy
-
Terms URL: https://atlantisits.co/popoff-terms
-
Both HTML files generated March 14, 2026 --- deploy to Vercel via atlantisits.co repo before submitting
-
Privacy contact email: apps@atlantisits.co (not support@ --- apps@ handles all app-related inquiries)
-
Age clause in Terms: flexible language covering Everyone 10+ and Teen 13+ --- do not restrict to 18+ as Pop Off targets teens
9.2 App Access
-
Go to: Policy → App content → App access
-
Select: All or most functionality is accessible without special access
9.3 Content Rating
-
Go to: Policy → App content → Content rating
-
Click: Start questionnaire
-
Category: Entertainment
-
Answer questions about content --- Pop Off contains humor/roast content, flag appropriately
-
Submit --- Google assigns a rating (likely Everyone 10+ or Teen based on content)
9.4 Target Audience
-
Go to: Policy → App content → Target audience and content
-
Select target age group --- Pop Off targets teens, select: Ages 13-17 and 18+
-
Confirm the app does not target children under 13
9.5 Main Store Listing
- Go to: Grow → Store presence → Main store listing
Asset Specification
App name Pop Off (max 30 chars)
Short description Slightly savage. Always funny. (max 80 chars)
Full description Full app description (max 4000 chars)
App icon 512 x 512 PNG --- no alpha/transparency
Feature graphic 1024 x 500 PNG or JPG
Phone screenshots Minimum 2, maximum 8 --- 16:9 or 9:16 ratio
⚠️ Store listing assets are required before production submission. Screenshots must be taken from an actual device or high-fidelity emulator --- no mockups with device frames that misrepresent the UI.
Phase 5 --- Production Submission
Step 10 --- Promote from Internal to Production
-
In Play Console --- confirm all dashboard checklist items are green
-
Go to: Testing → Internal testing → your release → Promote release → Production
-
Review the production release details
-
Set rollout percentage --- start at 20% for a staged rollout (safer for first release)
-
Click: Start rollout to Production → Send for review
Review timeline Typical duration
First-time app review 1--7 days (Google reviews new apps more thoroughly)
Subsequent updates Hours to 1-2 days
Review outcome Approved / Rejected with reason / Policy violation
💡 During review, your app status shows as In review in the Play Console. You will receive an email when the review is complete. Do not submit multiple builds during an active review --- wait for the outcome first.
📸 SCREENSHOT PLACEHOLDER --- Play Console --- Pop Off production release showing In review status
Step 11 --- Automate Future Submissions with EAS Submit
After the first manual upload (Step 7), set up EAS Submit for all future builds so you never have to manually upload again.
11.1 Create Google Service Account Key
-
Go to: https://console.cloud.google.com
-
Select your project → IAM & Admin → Service Accounts → Create Service Account
-
Name: eas-submit-popoff → Click Done
-
Click the service account → Keys tab → Add Key → JSON → Create
-
Save the downloaded JSON file to: D:\Data\AtlantisITS\projects\popoff-app\service-account.json
-
Add service-account.json to .gitignore immediately --- never commit this file
11.2 Grant Play Console Permissions
-
In Play Console → Users and permissions → Invite new user
-
Enter the service account email address (from the JSON file)
-
Grant permissions: Edit and delete draft apps + everything under Releases + Manage Store Presence
-
Click: Apply → Invite user
11.3 Upload Key to EAS
+-----------------------------------------------------------------------+ | # Upload service account key to EAS | | | | eas credentials | | | | # Select: Android | | | | # Select: your app identifier | | | | # Select: Google Service Account Key | | | | # Select: Upload new key | | | | # Provide path: | | D:\Data\AtlantisITS\projects\popoff-app\service-account.json | +-----------------------------------------------------------------------+
11.4 Future Builds --- One Command Deploy
+-----------------------------------------------------------------------+ | # For all future Pop Off Android releases: | | | | cd D:\Data\AtlantisITS\projects\popoff-app | | | | # Build AND submit in one command | | | | eas build --platform android --profile production --auto-submit | | | | # Or submit an existing build manually: | | | | eas submit --platform android | +-----------------------------------------------------------------------+
✅ EAS Submit is now configured. All future Pop Off Android releases are a single command. No more manual Play Console uploads.
Troubleshooting
Issue Cause Fix
Build fails --- Keystore not Run eas build again, select keystore error generated yet Generate new keystore
App rejected --- Content rating Review content rating policy violation mismatch questionnaire answers, resubmit
App rejected --- No privacy policy Host a policy page and add URL missing privacy URL to App content policy
Play Console upload Wrong file type Must be .aab not .apk for Play fails Store
eas submit fails Service account not Complete Step 11 --- Google --- no service configured Service Account setup account
Version code versionCode not Increment android.versionCode conflict incremented in app.json before next build
App not visible Staged rollout at Increase rollout percentage in after approval \<100% Play Console
Identity Google processing Normal --- wait 24-48 hours, verification stuck delay check email for updates
Screenshots Wrong dimensions Use exactly 320-3840px on rejected longest side, 16:9 or 9:16 ratio
Quick Reference
Item Value
App package name co.atlantisits.popoff (permanent --- never changes)
Expo org atlantisits-ai
Expo username AtlantisITS
Expo email shane@atlantisits.co
Expo project ID 773f61db-c4b8-479c-8f23-8e18e4410a30
EAS Build URL expo.dev/accounts/atlantisits-ai/projects/popoff/builds/98a656d5-80a7-40cc-b989-c71f3ee3eeeb
Working directory D:\Data\AtlantisITS\projects\popoff-app
Play Console account AtlantisITS --- Srhardin@gmail.com
Play Console account ID 5995582509992072609
Play Console URL https://play.google.com/console
Privacy policy URL https://atlantisits.co/popoff-privacy
Terms URL https://atlantisits.co/popoff-terms
Privacy contact apps@atlantisits.co
One-time fee \$25 USD --- paid
versionCode (first 2 (auto-incremented by EAS) build)
Build command eas build --platform android --profile production
Submit command eas submit --platform android
Build + Submit (future) eas build --platform android --auto-submit
Check login eas whoami
Identity verification ⏳ In progress --- 2-7 days --- blocks production
App icon size 512 x 512 PNG
Feature graphic size 1024 x 500 PNG or JPG
Min screenshots 2 phone screenshots
Review time (first) 1--7 days
Review time (updates) Hours to 2 days
Next Steps After Approval
Task Details
Monitor reviews and Play Console → Grow → Ratings and reviews ratings
Set up crash reporting Expo Sentry or Crashlytics integration
Track installs and Play Console → Statistics dashboard retention
Publish first update eas build --platform android --auto-submit (versionCode +1)
Apple App Store (iOS) See HT-007 --- Publishing Pop Off to the Apple App Store
Add in-app purchases Play Console → Monetize → Products → (Pro tier) Subscriptions