Pre-Publishing Checklist
Before publishing, ensure:- App is tested on physical devices
- All features work correctly
- Performance is optimized
- Security best practices implemented
- App icons and splash screens created
- Privacy policy and terms of service ready
- App store descriptions prepared
- Screenshots and preview videos created
- Version number and build number set
iOS App Store
Prerequisites
- Apple Developer Account: $99/year
- Mac with Xcode: Latest version recommended
- Test devices: Physical iOS devices for testing
Step 1: App Store Connect Setup
- Go to App Store Connect
- Click “My Apps” → ”+” → “New App”
- Fill in app information:
- Platform: iOS
- App Name
- Primary Language
- Bundle ID
- SKU (unique identifier)
Step 2: Configure Xcode Project
Openios/YourApp.xcworkspace in Xcode:
Bundle Identifier
- Select project in navigator
- Select target under “Targets”
- In “General” tab, set Bundle Identifier
- Must match App Store Connect bundle ID
App Icons
Add app icons toios/YourApp/Images.xcassets/AppIcon.appiconset/:
- 1024×1024 (App Store)
- 180×180 (@3x iPhone)
- 120×120 (@2x iPhone)
- 87×87 (@3x iPhone Settings)
- 80×80 (@2x iPhone Spotlight)
- 58×58 (@2x iPhone Settings)
Launch Screen
Configure inios/YourApp/LaunchScreen.storyboard or use react-native-splash-screen.
Version and Build Number
Step 3: Code Signing
Automatic Signing (Recommended)
- In Xcode, select project
- Under “Signing & Capabilities”
- Check “Automatically manage signing”
- Select your team
Manual Signing
- Create App ID in Apple Developer Portal
- Create Distribution Certificate
- Create Provisioning Profile
- Download and install in Xcode
Step 4: Build for Release
Clean Build Folder
Archive the App
- In Xcode, select “Any iOS Device” as destination
- Product → Archive
- Wait for archive to complete
- Organizer window opens automatically
Step 5: Upload to App Store Connect
- In Organizer, select your archive
- Click “Distribute App”
- Select “App Store Connect”
- Choose “Upload”
- Select signing options
- Click “Upload”
Step 6: TestFlight (Optional but Recommended)
- In App Store Connect, go to “TestFlight” tab
- Add internal testers (up to 100)
- Add external testers (up to 10,000, requires App Review)
- Share TestFlight link with testers
Step 7: Submit for Review
- In App Store Connect, go to “App Store” tab
- Click ”+” next to “iOS App”
- Fill in all required information:
App Information
- Name
- Subtitle (30 characters)
- Privacy Policy URL
- Category (Primary and Secondary)
- Age Rating
Pricing and Availability
- Price tier
- Availability regions
- Pre-orders (optional)
Version Information
- What’s New (release notes)
- Promotional text
- Description
- Keywords (100 characters, comma-separated)
- Support URL
- Marketing URL (optional)
Screenshots
Required sizes:- 6.5” Display (iPhone 14 Pro Max): 1290×2796
- 5.5” Display (iPhone 8 Plus): 1242×2208
- iPad Pro (3rd gen): 2048×2732
App Review Information
- Contact information
- Demo account (if app requires login)
- Notes for reviewer
- Select build from TestFlight
- Answer export compliance questions
- Click “Submit for Review”
Google Play Store
Prerequisites
- Google Play Console Account: $25 one-time fee
- Android Studio: For building and signing
- Test devices: Physical Android devices
Step 1: Generate Signing Key
Create a keystore file:- Keystore password
- Key password
- Your name, organization, city, state, country
Step 2: Configure Gradle
Store Keystore Credentials
Createandroid/gradle.properties (add to .gitignore):
Configure Build
Editandroid/app/build.gradle:
Step 3: Build Release APK/AAB
Android App Bundle (Recommended)
android/app/build/outputs/bundle/release/app-release.aab
APK (Alternative)
android/app/build/outputs/apk/release/app-release.apk
Step 4: Google Play Console Setup
- Go to Google Play Console
- Click “Create app”
- Fill in:
- App name
- Default language
- App or game
- Free or paid
- Declarations (content policy, export laws)
Step 5: Complete Store Listing
App Details
- Short description (80 characters)
- Full description (4000 characters)
- App icon (512×512 PNG)
- Feature graphic (1024×500 JPG/PNG)
- Screenshots:
- Phone: At least 2 (16:9 or 9:16 ratio)
- 7” Tablet: Optional
- 10” Tablet: Optional
Categorization
- App category
- Content rating questionnaire
- Target audience
- News app (if applicable)
Contact Details
- Website (optional)
- Phone (optional)
- Privacy policy URL
Store Settings
- App name
- Default language
- External marketing
Step 6: Content Rating
- Go to “Content rating” section
- Fill out IARC questionnaire
- Receive ratings for various regions
Step 7: Set Up Release
Production Track
- Go to “Production” under “Release”
- Click “Create new release”
- Upload AAB file
- Fill in release notes
- Set rollout percentage (optional)
- Review and roll out
Internal Testing (Recommended)
- Set up internal testing track
- Add testers by email
- Upload build
- Share testing link
Closed/Open Testing
- Closed testing: Limited testers, private
- Open testing: Anyone with link can join
Step 8: App Review
- Complete all required sections in Play Console
- Click “Send for review”
- Wait for approval (typically 1-3 days)
Post-Launch
iOS
Monitor Reviews
Analytics
- App Store Connect provides:
- Downloads
- Revenue
- Crashes
- Performance metrics
Phased Release
Enable in App Store Connect:- Day 1: 1% of users
- Day 2: 2% of users
- Day 3: 5% of users
- Day 4: 10% of users
- Day 5: 20% of users
- Day 6: 50% of users
- Day 7: 100% of users
Android
Staged Rollout
Monitor Health
Google Play Console provides:- Crash reports
- ANRs (App Not Responding)
- User reviews
- Pre-launch reports
Updates and Maintenance
Version Numbering
Follow semantic versioning:iOS Updates
Android Updates
Common Rejection Reasons
iOS
Guideline 2.1 - Performance: App Completeness
Guideline 2.1 - Performance: App Completeness
Issue: App crashes or has broken features.Solution:
- Test thoroughly on physical devices
- Provide demo account if login required
- Ensure all features work
- Test on multiple iOS versions
Guideline 4.3 - Design: Spam
Guideline 4.3 - Design: Spam
Issue: App is too similar to existing apps.Solution:
- Make your app unique
- Avoid duplicate functionality
- Add distinguishing features
- Improve design and UX
Guideline 5.1.1 - Legal: Privacy
Guideline 5.1.1 - Legal: Privacy
Issue: Missing privacy policy or permissions descriptions.Solution:
- Add privacy policy URL
- Describe all permission uses in Info.plist
- Be transparent about data collection
Android
Violation of Content Policy
Violation of Content Policy
Issue: App contains prohibited content.Solution:
- Review content policy
- Remove prohibited content
- Update age rating if needed
- Moderate user-generated content
Security Vulnerability
Security Vulnerability
Issue: App has security issues.Solution:
- Update dependencies
- Fix SSL/TLS issues
- Implement proper authentication
- Secure API communications
Best Practices
- Test extensively: Use TestFlight and internal testing
- Prepare assets: High-quality icons and screenshots
- Write clear descriptions: Highlight key features
- Respond to reviews: Engage with users
- Monitor crashes: Fix issues quickly
- Use staged rollouts: Catch issues early
- Keep credentials safe: Store keystore securely
- Follow guidelines: Read app store policies
- Update regularly: Fix bugs and add features
- Track analytics: Understand user behavior
Next Steps
Security
Implement security best practices
Troubleshooting
Solve common publishing issues