All features work correctly offline (if applicable)
Deep links are configured and tested
Push notifications work correctly
Analytics tracking is properly implemented
Error tracking is configured
All API keys are production keys (not test/sandbox)
Remove all console.log statements or use production logger
Content Requirements
App icon meets platform guidelines
Screenshots for all required device sizes
App description (short and long)
Privacy policy URL
Terms of service URL (if applicable)
Support email/URL
Marketing URL (optional)
Legal Requirements
Privacy policy is up to date
GDPR compliance (if serving EU users)
CCPA compliance (if serving California users)
Age rating content is accurate
All third-party licenses are included
App Store (iOS)
1. Apple Developer Account Setup
1. Go to https://developer.apple.com
2. Enroll in Apple Developer Program ($99/year)
3. Complete enrollment verification
4. Set up App Store Connect access
Category: Select primary and secondary category
Content Rights: Declare if using third-party content
Age Rating: Complete questionnaire honestly
Privacy Policy URL: https://yoursite.com/privacy
Support URL: https://yoursite.com/support
Marketing URL: https://yoursite.com (optional)
Pricing and Availability
Select price tier (or Free)
Choose countries/regions
Set pre-order options (optional)
3. Required Screenshots
Device
Size
Required
iPhone 6.7"
1290 x 2796 px
Yes
iPhone 6.5"
1284 x 2778 px
Yes
iPhone 5.5"
1242 x 2208 px
Optional
iPad Pro 12.9"
2048 x 2732 px
If iPad supported
Screenshot Tips:
Show real app functionality
Use device frames (optional)
Add marketing text overlay
Maintain consistent style across all screenshots
Maximum 10 screenshots per device size
4. App Review Information
Contact Information:First Name:[Your name]Last Name:[Your last name]Phone:[Your phone]Email:[Your email]Demo Account (if login required):Username: demo@example.com
Password: demopassword123
Notes for Reviewer:- Explain any non-obvious features
- Provide test credentials
- Explain in-app purchases if applicable
5. In-App Purchases (if applicable)
Go to "Features" → "In-App Purchases"
Add each product:
Reference Name
Product ID (must match RevenueCat)
Pricing
Localized Display Name and Description
Review Screenshot
6. Build Submission with EAS
# Install EAS CLInpminstall-g eas-cli
# Login to Expo accounteas login
# Configure EASeas build:configure
# Build for iOSeas build --platform ios --profile production
# Submit to App Storeeas submit --platform ios
7. TestFlight (Beta Testing)
1. Build is automatically available in TestFlight after processing
2. Add internal testers (up to 100)
3. Add external testers (up to 10,000)
4. External testing requires Beta App Review
Google Play Store (Android)
1. Google Play Developer Account Setup
1. Go to https://play.google.com/console
2. Pay one-time $25 registration fee
3. Complete account verification
4. Set up payments profile (for paid apps/IAP)
2. Create App in Play Console
Go to "All apps" → "Create app"
Fill in:
App name
Default language
App or game
Free or paid
Declarations (policies)
3. Store Listing
Main Store Listing
App name: Max 30 characters
Short description: Max 80 characters
Full description: Max 4000 characters
App icon: 512 x 512 px (PNG, 32-bit)
Feature graphic: 1024 x 500 px
Screenshots
Type
Size
Required
Phone
16:9 or 9:16
Min 2, Max 8
7" Tablet
16:9 or 9:16
If tablet supported
10" Tablet
16:9 or 9:16
If tablet supported
Requirements:
Minimum: 320px
Maximum: 3840px
PNG or JPEG
No alpha transparency
4. App Content
Privacy Policy
1. Go to "Policy" → "App content"
2. Add Privacy policy URL
3. Must be accessible and specific to your app
Ads Declaration
Select: "Yes, my app contains ads" or "No, my app doesn't contain ads"
1. Select age groups your app targets
2. If targeting children:
- Must comply with COPPA
- Additional restrictions apply
Data Safety
Data Collection:- List all data types collected
- Specify if data is encrypted
- Specify if users can request deletion
Data Sharing:- List third parties data is shared with
- Purpose of sharing
Security Practices:- Data encryption in transit
- Data deletion request mechanism
5. In-App Products (if applicable)
Go to "Monetize" → "Products" → "In-app products"
For each product:
Product ID (must match RevenueCat)
Name and description
Price
Activate product
6. Build Submission with EAS
# Build for Androideas build --platform android --profile production
# Submit to Google Playeas submit --platform android
7. Testing Tracks
Internal Testing:- Up to 100 testers
- Immediate availability
- No review required
Closed Testing:- Limited users via email list
- Review required
- Good for beta testing
Open Testing:- Anyone can join
- Review required
- Good for public beta
Production:- Full release
- Full review
Common Rejection Reasons
App Store (iOS)
Reason
Solution
Crashes/Bugs
Test thoroughly on all device sizes
Incomplete Information
Fill all required metadata fields
Placeholder Content
Remove all lorem ipsum and test data
Broken Links
Verify all URLs work
Login Issues
Provide valid demo credentials
Missing Restore Purchases
Implement restore button for IAP
Guideline 4.2 - Minimum Functionality
Ensure app provides value
Guideline 5.1.1 - Data Collection
Add proper privacy disclosures
Google Play Store (Android)
Reason
Solution
Policy Violation
Review all Google Play policies
Metadata Issues
No misleading descriptions/screenshots
Privacy Policy
Must be accessible and complete
Permissions
Only request necessary permissions
Target API Level
Must target recent Android API
Data Safety
Complete data safety form accurately
Post-Submission
Monitoring
App Store Connect:- Check "Activity" tab for build status
- Monitor "Resolution Center" for issues
- View crash reports in "Analytics"
Google Play Console:- Check "Release" → "Production" for status
- Monitor "Android Vitals" for crashes
- View "Ratings and reviews"
Update Process
# Increment version in app.json{"expo":{"version":"1.1.0"}}# Build new versioneas build --platform all --profile production
# Submit updateeas submit --platform all
App Store Optimization (ASO)
Keywords (iOS):- 100 character limit
- Comma-separated
- No spaces after commas
- Don't repeat app name
Title & Description:- Include primary keywords
- Focus on benefits
- Use bullet points for features
- Localize for target markets
Reviews:- Respond to all reviews
- Ask happy users to rate
- Address negative feedback