Skip to content

id: HT-006 title: Overview type: how-to version: 1.0 last-updated: 2026-03-18 author: Ozzy (Claude - Atlantis AI) reviewed-by: Shane Hardin status: approved


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 2026 passed

Expo account created at Confirm before Step 2 expo.dev

EAS CLI installed globally Confirm in Step 2

Google account ready Use for Play Console (Srhardin@gmail.com)

\$25 USD payment method Required for Step 1 available

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 URL Required --- even for free apps

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

  1. Go to: https://play.google.com/console/signup

  2. Sign in with Srhardin@gmail.com

  3. Choose account type: Individual (not Organization --- no business verification required)

  4. Fill in developer name --- this is what users see on the Play Store

  5. Pay the \$25 USD one-time registration fee

  6. Complete identity verification --- Google requires a government-issued ID and proof of address for individual accounts. This is standard and typically clears within 24-48 hours.

  7. Once verified, you land on the Google Play Console dashboard


⚠️ Individual developer accounts show your home address publicly on the Play Store if you ever publish paid apps. For free apps with no in-app purchases, this is not displayed. Pop Off is free tier + Pro (IAP) --- confirm address display rules before adding billing.




📸 {width="6.291666666666667in" height="3.013888888888889in"}



Phase 2 --- EAS Setup & Production Build

Step 2 --- Install EAS CLI and Log In

+-----------------------------------------------------------------------+ | # Install EAS CLI globally | | | | npm install -g eas-cli | | | | # Verify installation | | | | eas --version | | | | # Log in to your Expo account | | | | eas login | | | | # Enter your Expo account email and password | | | | # Confirm with: eas whoami | +=======================================================================+


💡 If you don\'t have an Expo account yet, create one free at https://expo.dev/signup before running eas login. EAS Build is free for personal use with generous build limits.



Step 3 --- Configure EAS in the Pop Off Project

+-----------------------------------------------------------------------+ | # Navigate to Pop Off project | | | | cd D:\Data\AtlantisITS\projects\popoff-app | | | | # Initialize EAS in the project (if not already done) | | | | eas init | | | | # This links your local project to your Expo account | | | | # Accept prompts --- it creates/updates app.json with your Expo | | project ID | +=======================================================================+

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\" | | | | } | | | | } | | | | } | | | | } | +=======================================================================+


💡 buildType: app-bundle produces an .aab file (Android App Bundle) --- required for Play Store submission. The AAB format is smaller than APK and is the only format Google accepts for new apps.



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\": \"com.atlantisits.popoff\", | | | | \"versionCode\": 1 | | | | }, | | | | \"icon\": \"./assets/icon.png\", | | | | \"splash\": { ... } | | | | } | | | | } | +=======================================================================+


⚠️ The android.package value (com.atlantisits.popoff) is permanent --- once you publish to the Play Store it cannot be changed. Ever. Choose it carefully before your first build.



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

  1. Go to: https://play.google.com/console

  2. Click: Create app


Field Value for Pop Off


App name Pop Off

Default language English (United States)

App or game App

Free or paid Free


  1. Click: Create app

  2. You are now on the Pop Off dashboard in Play Console

  3. 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.

  1. In EAS Build dashboard --- click Download on your production build to save the .aab file

  2. In Play Console --- go to: Testing → Internal testing → Create new release

  3. Under App bundles --- click Upload and select the .aab file you downloaded

  4. For signing key --- select: Use Google-generated key (recommended --- safer than self-managed)

  5. Add release notes (optional for internal testing)

  6. 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

  1. In Play Console --- go to: Testing → Internal testing → Testers tab

  2. Create an email list --- name it: Atlantis Internal

  3. Add your email: Srhardin@gmail.com

  4. Add Maranda\'s email if she will test on her device

  5. Click: Save changes

  6. 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

  • Go to: Policy → App content → Privacy policy

  • Enter your privacy policy URL --- this is required even for free apps

  • If you don\'t have one, generate a free one at: https://www.privacypolicygenerator.info

  • Must be hosted at a public URL --- Vercel or GitHub Pages works fine

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

  1. In Play Console --- confirm all dashboard checklist items are green

  2. Go to: Testing → Internal testing → your release → Promote release → Production

  3. Review the production release details

  4. Set rollout percentage --- start at 20% for a staged rollout (safer for first release)

  5. 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

  1. Go to: https://console.cloud.google.com

  2. Select your project → IAM & Admin → Service Accounts → Create Service Account

  3. Name: eas-submit-popoff → Click Done

  4. Click the service account → Keys tab → Add Key → JSON → Create

  5. Save the downloaded JSON file to: D:\Data\AtlantisITS\projects\popoff-app\service-account.json

  6. Add service-account.json to .gitignore immediately --- never commit this file

11.2 Grant Play Console Permissions

  1. In Play Console → Users and permissions → Invite new user

  2. Enter the service account email address (from the JSON file)

  3. Grant permissions: Edit and delete draft apps + everything under Releases + Manage Store Presence

  4. 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 com.atlantisits.popoff

Working directory D:\Data\AtlantisITS\projects\popoff-app

Play Console https://play.google.com/console

EAS Dashboard https://expo.dev/accounts/[your-username]/projects/popoff-app

Expo account https://expo.dev

One-time fee \$25 USD --- Google Play Developer account

Build command eas build --platform android --profile production

Submit command eas submit --platform android

Build + Submit eas build --platform android --auto-submit

Check login eas whoami

View builds eas build:list

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