App Store Submission
Submitting your compiled app to Google Play Store and Apple App Store — what each store requires, how the review process works, and how EAS Submit automates the upload.
Building the app binary is the technical step. Submitting it to the stores is the administrative step — and it involves more paperwork than code.
Both Google and Apple require a significant amount of metadata before they'll list your app: screenshots for every supported device size, a description, a privacy policy, answers to content rating questionnaires, and compliance declarations. Understanding what each store requires before you start saves you from getting blocked mid-submission.
The "Why First" Scenario
You've built the EduTrack customer app. It's polished. The client is excited. You trigger a production build and it finishes in 10 minutes. You go to submit it to the Play Store.
The Play Store rejects it: "Your app requests location permissions but your privacy policy URL is a broken link."
You fix the privacy policy URL. Resubmit. Two days later: "Your app lacks a working account deletion mechanism as required by Google Play policy."
Each rejection adds 1–3 days of review time. A submission that should take a week takes three.
Knowing the requirements before you submit means you prepare everything in one go — not in a series of painful back-and-forth rejections.
Google Play Store
Developer Account Setup (One-Time)
Pay the one-time registration fee
Go to play.google.com/console. Log in with the project Gmail account.
Google charges a $25 USD one-time fee (not annual) to register as a developer. Pay with a credit card.
This fee is per Google account, not per app. Once paid, you can publish unlimited apps from that account. Subhash's Google Developer account covers all Sahinov Pvt Ltd apps — trainees working on EduTrack publish under this account, not their personal accounts.
Accept the Developer Distribution Agreement
Read (or scroll through) and accept Google's agreement.
Your Play Console is ready
You land on the Google Play Console dashboard — currently showing no apps.
Creating the App Listing
Click "Create app"
In the Play Console → All apps → Create app.
Fill in the basic details
| Field | What to enter |
|---|---|
| App name | The name users see on the Play Store (e.g., "EduTrack") |
| Default language | English (India) |
| App or Game | App |
| Free or Paid | Free (the app itself is free; in-app purchases are configured separately) |
Complete the "Set up your app" checklist
The Play Console shows a checklist of items you must complete before you can submit for review:
App content:
- Privacy policy — You must provide a URL to a privacy policy page. This is mandatory for any app that handles personal data. You'll need a real webpage at a real URL (not localhost).
- App access — Does the reviewer need credentials to test the app? If login is required, provide test credentials.
- Ads — Does your app show ads? (EduTrack: No)
- Content rating — Complete a questionnaire about your app's content. EduTrack would be rated "Everyone."
- Target audience — Who is the app for? (Adults, not targeted at children)
- News apps — Is this a news app? No.
- Data safety — Declare what data your app collects and how you handle it.
The data safety section is the most important and most time-consuming. You must honestly declare:
- What data you collect (name, phone number, location, etc.)
- Whether it's shared with third parties
- Whether users can request deletion of their data
- How it's encrypted
EduTrack collects: name, phone, email, location (for service area), photos (for KYC). These must all be declared.
Store listing
Add the public-facing content users see on the Play Store page:
| Item | Requirement |
|---|---|
| Short description | 80 characters max — the tagline |
| Full description | Up to 4,000 characters — describe the app, its features, who it's for |
| App icon | 512 × 512 px, PNG with no alpha (transparency) |
| Feature graphic | 1024 × 500 px — the banner shown at the top of your store listing |
| Screenshots | Minimum 2 screenshots per device type you support |
Screenshot requirements for the Play Store:
| Device type | Minimum resolution | Minimum count |
|---|---|---|
| Phone | 320px minimum on shortest side | 2 |
| 7-inch tablet | 320px minimum | Optional but recommended |
| 10-inch tablet | 320px minimum | Optional but recommended |
Screenshots must show actual app screens — no mockups, no marketing images with text overlaid (unless they clearly show the app).
Submitting via EAS Submit
Once the Play Console listing is ready and you have a production build:
EAS CLI asks which build to submit (from your recent builds list). Select the production AAB. EAS uploads it directly to the Play Console.
Alternatively, connect EAS to the Play Console via a service account key for automatic future submissions. EAS documentation covers this setup in detail.
After submission: The Play Store review typically takes 1–3 business days. You'll receive an email from Google when the app is approved or rejected. If rejected, Google provides specific reasons.
Apple App Store
Developer Account Setup (One-Time, Annual)
Enrol in the Apple Developer Program
Go to developer.apple.com/programs. Click "Enroll".
Apple charges $99 USD per year. Unlike Google's one-time fee, this renews annually. If you don't renew, your apps are removed from the App Store.
Use the project business Apple ID, not a personal Apple ID. Apps submitted under a personal Apple ID list your personal name as the developer. Apps submitted under a business account (enrolled as an organisation) list the company name. For Sahinov Pvt Ltd, enrol as an organisation. This requires a D-U-N-S number (free, but takes a few days to obtain if you don't have one).
Enrol as an Individual or Organisation
- Individual: Your personal name appears on the App Store. Simpler enrolment but less professional for business apps.
- Organisation: Your company name appears. Requires a D-U-N-S number. Appropriate for Sahinov Pvt Ltd / EduTrack.
Your Apple Developer account is ready
Log in to appstoreconnect.apple.com — this is the App Store equivalent of the Play Console.
Creating the App in App Store Connect
Click "+" → New App
In App Store Connect → My Apps → "+" button → New App.
| Field | What to enter |
|---|---|
| Platforms | iOS (or iOS + iPadOS if you support tablets) |
| Name | The app name as it appears on the App Store |
| Primary language | English (India) |
| Bundle ID | The unique identifier for your app — must match expo.ios.bundleIdentifier in app.json (e.g., com.sahinov.edutrack) |
| SKU | Any unique string — used internally by Apple for your records |
Fill in the app metadata
App Information:
- Category: Education or Utilities (for a school management app)
- Secondary category: Optional
- Privacy Policy URL: Same requirement as Play Store — mandatory for any app collecting personal data
Pricing and Availability:
- Price: Free
- Availability: India (and any other markets)
App Store listing content:
| Item | Requirement |
|---|---|
| Name | 30 characters max |
| Subtitle | 30 characters max — shown below the name |
| Description | Up to 4,000 characters |
| Keywords | Comma-separated, 100 characters total — what users search for |
| Support URL | A real URL where users can get help |
| App icon | 1024 × 1024 px PNG with no transparency (no rounded corners — Apple adds them) |
| Screenshots | Required for every device size you support |
Screenshot requirements for the App Store (stricter than Play Store):
| Device | Resolution | Minimum count |
|---|---|---|
| iPhone 6.7" (iPhone 15 Pro Max) | 1290 × 2796 px | 1 (required) |
| iPhone 6.5" (iPhone 14 Plus) | 1242 × 2688 px | 1 (required) |
| iPhone 5.5" (older iPhones) | 1242 × 2208 px | 1 (required) |
| iPad Pro 12.9" | 2048 × 2732 px | 1 (if you support iPad) |
Screenshots must be real device screenshots — Apple's review team tests your app and they will reject you if screenshots don't match the actual experience.
Submitting via EAS Submit
Once your App Store Connect listing is ready:
EAS asks which iOS build to submit. The build goes to TestFlight first — Apple's beta testing platform — not directly to the App Store.
TestFlight → App Store flow:
- EAS submits the IPA to TestFlight
- TestFlight processes the build (10–30 minutes)
- You can now add internal testers (up to 100) and external testers (up to 10,000) via TestFlight — they test the real app
- When you're satisfied, in App Store Connect, click "Submit for Review" to start the App Store review
After submission to App Store review: Apple typically takes 1–5 business days. Apple's review is stricter than Google's — common rejection reasons:
| Rejection reason | How to avoid |
|---|---|
| App crashes on launch | Test the production build thoroughly before submitting |
| Features mentioned in description don't work | Only describe features that are fully implemented |
| Login required with no test credentials provided | Always provide test credentials in the submission notes |
| Privacy policy doesn't cover all data collected | Ensure privacy policy is complete and at a working URL |
| Misleading screenshots | Screenshots must accurately reflect the app's current state |
| App requests unnecessary permissions | Only request permissions you actually use |
Side-by-Side Comparison
| Aspect | Google Play Store | Apple App Store |
|---|---|---|
| Registration fee | $25 (one-time) | $99/year |
| Account type | Personal or Business | Individual or Organisation |
| Review time | 1–3 business days | 1–5 business days |
| Review strictness | Moderate | High |
| First submission goes to | Play Store (can set to internal/closed track first) | TestFlight, then App Store |
| Rejection appeal | Limited — fix and resubmit | Can appeal via Resolution Centre |
| Screenshot minimum | 2 per form factor | 1 per required device size |
| Privacy policy required | Yes | Yes |
| Data safety declaration | Yes (Play Console questionnaire) | Yes (App Store Connect privacy labels) |
What You Have Now
A clear picture of what each app store requires before, during, and after submission. The key preparation items — privacy policy, screenshots, data safety declarations, test credentials — should be ready before you trigger the production build, not after.
The final piece is EAS Update — how to push code fixes to users after your app is live, without going through this submission process again.