What is App Deployment?

App deployment is the process of publishing your finished app to the Apple App Store (iOS) and Google Play Store (Android) so users worldwide can download and install it. Think of it like publishing a book - you've written it, edited it, and now you need to work with a publisher to get it into bookstores where readers can buy it.

The deployment process involves preparing your app, creating certificates, following strict guidelines, submitting for review, and finally releasing it to the public. It's like getting your driver's license - there's paperwork, tests, and approval processes before you can hit the road.

Why Understanding Deployment Matters

  • Getting to Market: Your app is useless if users can't download it
  • Professional Credibility: Proper deployment shows professionalism
  • User Trust: Official stores provide security and trust
  • Updates: Stores enable easy app updates for bug fixes
  • Revenue: Stores handle payments for paid apps and in-app purchases
  • Analytics: Get insights on downloads, ratings, and reviews
  • Discovery: Users find your app through store search

Pre-Deployment Checklist

Before submitting your app, ensure everything is ready. Think of this like a pre-flight checklist for pilots - miss one item and you can't take off.

Pre-Deployment Checklist:
┌──────────────────────────────────────┐
│ ✓ App is fully tested and bug-free  │
│ ✓ All features work on real devices │
│ ✓ No placeholder content            │
│ ✓ Privacy Policy URL created        │
│ ✓ App icon designed (all sizes)     │
│ ✓ Screenshots prepared (all sizes)  │
│ ✓ App description written            │
│ ✓ Keywords researched                │
│ ✓ Support email/website ready        │
│ ✓ Age rating determined              │
│ ✓ Pricing decided                    │
│ ✓ Release date planned               │
└──────────────────────────────────────┘

Google Play Store Deployment

Publishing to Android's Google Play Store is generally easier and faster than iOS. Think of it as the more relaxed sibling - still has rules, but more forgiving.

Step 1: Create Developer Account

Account Setup:
┌────────────────────────────────────┐
│ 1. Go to play.google.com/console   │
│ 2. One-time fee: $25               │
│ 3. Fill developer profile          │
│ 4. Verify identity                 │
│ 5. Accept agreements               │
└────────────────────────────────────┘

What you need:
- Gmail account
- Credit/debit card for $25 fee
- Developer name (individual or company)
- Phone number for verification

Step 2: Build Release APK/AAB

# React Native - Generate Android Release Build

# 1. Generate Signing Key
cd android/app
keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore \
  -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

# Save password safely! You'll need it for every update

# 2. Configure Gradle (android/gradle.properties)
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=****
MYAPP_RELEASE_KEY_PASSWORD=****

# 3. Update app/build.gradle
android {
  signingConfigs {
    release {
      storeFile file(MYAPP_RELEASE_STORE_FILE)
      storePassword MYAPP_RELEASE_STORE_PASSWORD
      keyAlias MYAPP_RELEASE_KEY_ALIAS
      keyPassword MYAPP_RELEASE_KEY_PASSWORD
    }
  }
  buildTypes {
    release {
      signingConfig signingConfigs.release
      minifyEnabled true
      proguardFiles getDefaultProguardFile('proguard-android.txt')
    }
  }
}

# 4. Build Release
cd android
./gradlew bundleRelease

# Output: android/app/build/outputs/bundle/release/app-release.aab

# AAB (Android App Bundle) is preferred over APK
# Google optimizes AAB for each device automatically

Step 3: Create App Listing

App Listing Requirements:
┌────────────────────────────────────────┐
│ App Icon:                              │
│   - 512x512 PNG                        │
│   - 32-bit with alpha                  │
│   - No transparency                    │
│                                        │
│ Feature Graphic:                       │
│   - 1024x500 JPG/PNG                   │
│   - Displayed in store listing         │
│                                        │
│ Screenshots (2-8 required):            │
│   - Phone: 320-3840px                  │
│   - Tablet: 1200-7680px (optional)     │
│   - Show app's best features           │
│                                        │
│ Short Description:                     │
│   - Max 80 characters                  │
│   - Hook users immediately             │
│                                        │
│ Full Description:                      │
│   - Max 4000 characters                │
│   - Explain features, benefits         │
│   - Use bullet points for readability  │
│                                        │
│ Categorization:                        │
│   - Choose primary category            │
│   - Optional: secondary category       │
│   - Add relevant tags                  │
└────────────────────────────────────────┘

Step 4: Content Rating

Answer questionnaire about your app's content (violence, language, etc.). Google assigns age rating automatically based on answers.

Step 5: Pricing and Distribution

Pricing Options:
- Free (can have ads or in-app purchases)
- Paid (one-time purchase price)
- Freemium (free download, paid features)

Distribution:
- Select countries (can choose all or specific)
- Device compatibility (phones, tablets, wear)
- Android version requirements

Step 6: Submit for Review

Review Time: Usually within hours to 3 days (much faster than iOS)

After Approval: App is live immediately or on scheduled release date

Apple App Store Deployment

iOS deployment is more rigorous and takes longer. Think of it as a prestigious restaurant with strict dress code and reservation requirements - higher standards, but worth the effort.

Step 1: Apple Developer Account

Account Setup:
┌────────────────────────────────────┐
│ 1. Go to developer.apple.com       │
│ 2. Annual fee: $99/year            │
│ 3. Individual or Organization      │
│ 4. Verify identity (D-U-N-S for org)│
│ 5. Accept agreements               │
└────────────────────────────────────┘

Approval time:
- Individual: 24-48 hours
- Organization: 1-2 weeks

What you need:
- Apple ID
- Credit card for $99/year
- For companies: D-U-N-S number
- Two-factor authentication enabled

Step 2: Certificates and Provisioning

This is the most confusing part of iOS deployment. Certificates prove your app is from you. Think of them like a passport and visa for your app to enter the App Store.

Certificate Types:
┌──────────────────────────────────────────────┐
│ Development Certificate:                     │
│   - For testing on real devices              │
│   - Required during development              │
│                                              │
│ Distribution Certificate:                    │
│   - For App Store submission                 │
│   - Required for release builds              │
│                                              │
│ Push Notification Certificate (optional):    │
│   - For sending push notifications           │
└──────────────────────────────────────────────┘

Easy Way: Use Xcode's Automatic Signing
1. Open project in Xcode
2. Select your target
3. Signing & Capabilities tab
4. Check "Automatically manage signing"
5. Select your team
6. Xcode handles certificates automatically

Manual Way (Advanced):
1. Create Certificate Signing Request (CSR)
2. Upload to Apple Developer Portal
3. Download certificate
4. Create App ID
5. Create Provisioning Profile
6. Download and install in Xcode

Step 3: Build Release IPA

# React Native - Build iOS Release

# 1. Open Xcode
cd ios
open YourApp.xcworkspace

# 2. In Xcode:
#    - Select "Any iOS Device (arm64)"
#    - Product > Archive
#    - Wait for build to complete

# 3. Organizer window opens:
#    - Select your archive
#    - Click "Distribute App"
#    - Choose "App Store Connect"
#    - Follow wizard steps
#    - Upload to App Store Connect

# Alternative: Command line (advanced)
xcodebuild -workspace YourApp.xcworkspace \
  -scheme YourApp \
  -configuration Release \
  -archivePath build/YourApp.xcarchive \
  archive

# Then upload
xcodebuild -exportArchive \
  -archivePath build/YourApp.xcarchive \
  -exportPath build \
  -exportOptionsPlist exportOptions.plist

Step 4: App Store Connect Setup

1. Go to appstoreconnect.apple.com
2. Click "My Apps" > "+" > "New App"
3. Fill in:
   - Platform (iOS)
   - App Name (30 characters max)
   - Primary Language
   - Bundle ID (must match Xcode)
   - SKU (unique identifier, any string)

App Information Required:
┌────────────────────────────────────────┐
│ Screenshots (required for each size):  │
│   - 6.7" (iPhone 14 Pro Max)           │
│   - 6.5" (iPhone 11 Pro Max)           │
│   - 5.5" (iPhone 8 Plus)               │
│   - iPad Pro (12.9")                   │
│   - iPad Pro (11")                     │
│   - Use framer or screenshots.pro      │
│                                        │
│ App Icon:                              │
│   - 1024x1024 PNG                      │
│   - No transparency or alpha           │
│   - Rounded corners not needed         │
│                                        │
│ App Preview (optional):                │
│   - Video demo up to 30 seconds        │
│   - Shows app in action                │
│                                        │
│ Description:                           │
│   - Up to 4000 characters              │
│   - First 170 chars visible in search  │
│   - Use keywords naturally             │
│                                        │
│ Keywords:                              │
│   - 100 characters max                 │
│   - Comma-separated                    │
│   - No spaces after commas             │
│   - Example: photo,editor,filter,camera│
│                                        │
│ Support URL: (required)                │
│ Marketing URL: (optional)              │
│ Privacy Policy URL: (required)         │
└────────────────────────────────────────┘

Step 5: App Review Information

Provide to Apple Reviewers:
┌────────────────────────────────────────┐
│ Contact Information:                   │
│   - First/Last name                    │
│   - Phone number                       │
│   - Email address                      │
│                                        │
│ Demo Account (if login required):      │
│   - Username                           │
│   - Password                           │
│   - Any special instructions           │
│                                        │
│ Notes:                                 │
│   - Special features explanation       │
│   - How to test specific features      │
│   - Any configuration needed           │
└────────────────────────────────────────┘

Age Rating:
- Answer questionnaire
- Apple assigns rating (4+, 9+, 12+, 17+)
- Be honest! Misrating = rejection

Step 6: Submit for Review

Review Time: 1-7 days (average 2-3 days)

Possible Outcomes:

  • Approved: App goes live (or on scheduled date)
  • Rejected: Fix issues and resubmit
  • Metadata Rejected: Fix description/screenshots only
  • In Review: Apple is testing your app

Common Rejection Reasons

iOS Rejections

  • Crashes or Bugs: App must work perfectly
  • Incomplete App: "Coming soon" features not allowed
  • Broken Links: All links must work
  • Wrong Description: Must match actual features
  • Missing Privacy Policy: Required for all apps
  • Permissions Not Explained: Must explain why you need camera, location, etc.
  • Copycat Apps: Too similar to existing apps
  • Low Quality: Must provide value to users
  • Kids Category Violations: Strict rules for kids apps

Android Rejections

  • Malware or Security Issues: Auto-rejected
  • Inappropriate Content: Violence, hate speech, etc.
  • Misleading Claims: Description must be accurate
  • Copyright Violations: Using others' content
  • Missing Privacy Policy: Required if collecting data
  • Deceptive Behavior: Fake reviews, keyword stuffing

App Store Guidelines

Apple's Top Rules

Must Follow:
┌────────────────────────────────────────┐
│ 1. No crashes or bugs                  │
│ 2. Complete, polished app              │
│ 3. Explain all permissions             │
│ 4. Include privacy policy              │
│ 5. Use Apple's in-app purchase system │
│ 6. Follow Human Interface Guidelines   │
│ 7. Don't copy Apple's design           │
│ 8. No misleading features              │
│ 9. Kids apps: extra strict rules       │
│ 10. Respect user privacy               │
└────────────────────────────────────────┘

Permission Descriptions (Info.plist):
<key>NSCameraUsageDescription</key>
<string>We need camera access to let you take profile photos</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>We need your location to show nearby restaurants</string>

<key>NSPhotoLibraryUsageDescription</key>
<string>We need photo access to let you upload images</string>

Google's Key Policies

  • Restricted Content: No illegal activities, violence, hate speech
  • Privacy: Transparent data collection, secure transmission
  • Permissions: Only request necessary permissions
  • Ads: Must be clearly marked, not intrusive
  • Metadata: Accurate description and screenshots
  • Monetization: Follow payment policies

Post-Launch Tasks

Immediate Actions

  • Monitor Reviews: Respond to user feedback quickly
  • Check Crash Reports: Fix bugs immediately
  • Track Downloads: Monitor initial traction
  • Watch Ratings: One star reviews hurt discoverability
  • Prepare Support: Answer user questions

Ongoing Maintenance

Regular Tasks:
┌────────────────────────────────────────┐
│ Weekly:                                │
│   - Reply to reviews                   │
│   - Check crash reports                │
│   - Monitor analytics                  │
│                                        │
│ Monthly:                               │
│   - Analyze user engagement            │
│   - Plan new features                  │
│   - Update screenshots if needed       │
│                                        │
│ Quarterly:                             │
│   - Major updates                      │
│   - Refresh marketing materials        │
│   - Review pricing strategy            │
│                                        │
│ Yearly:                                │
│   - Renew Apple Developer ($99)        │
│   - Review app store optimization      │
│   - Major redesign if needed           │
└────────────────────────────────────────┘

App Updates

Releasing updates is similar to initial submission but faster. Think of it like returning to a restaurant you've been to - they already know you.

# Version Number Format: MAJOR.MINOR.PATCH
# Example: 1.2.3

Version Numbering:
- Bug fixes: 1.0.0 → 1.0.1 (patch)
- New features: 1.0.1 → 1.1.0 (minor)
- Major changes: 1.9.0 → 2.0.0 (major)

What's New Section:
Write clear, user-friendly notes:

Good:
"- Fixed login bug
 - Added dark mode
 - Improved app speed"

Bad:
"- Bug fixes and improvements"
"- Various updates"

Update Process:
1. Increment version in code
2. Build new release
3. Upload to stores
4. Update "What's New"
5. Submit for review
6. Usually faster approval (1-2 days)

App Store Optimization (ASO)

ASO is like SEO but for app stores. Get discovered by optimizing your listing.

  • App Name: Include main keyword (but stay under character limit)
  • Keywords: Research what users search for
  • Description: First 2-3 lines are critical
  • Screenshots: Show your best features first
  • Icon: Unique, recognizable, looks good small
  • Ratings: 4+ stars crucial for downloads
  • Reviews: Encourage satisfied users to review
  • Updates: Regular updates signal active development

Costs Summary

Item iOS Android
Developer Account $99/year $25 one-time
Review Time 1-7 days Hours to 3 days
Rejection Rate Higher (~14%) Lower (~5%)
Revenue Share 30% (15% after year 1) 30% (15% after $1M)

Best Practices

  • Test Thoroughly: Test on multiple devices and OS versions
  • Read Guidelines: Both stores have detailed documentation
  • Quality First: Better to delay than ship buggy app
  • Clear Communication: Write accurate descriptions
  • Privacy Focus: Be transparent about data collection
  • Responsive Support: Help users quickly when they have issues
  • Regular Updates: Shows app is maintained
  • Listen to Feedback: Users tell you what to improve
  • Plan for Rejection: Don't plan launch around approval date
  • Professional Assets: Invest in good icon and screenshots

Useful Tools

  • Fastlane: Automate screenshots, builds, and uploads
  • App Annie: Track rankings and competitors
  • Sensor Tower: ASO and market intelligence
  • TestFlight: Beta testing for iOS
  • Firebase App Distribution: Beta testing for Android
  • Figma/Sketch: Design screenshots and graphics
  • Keynote/PowerPoint: Create app preview videos

Ready to Launch Your App?

Master the deployment process and get your app into users' hands

Explore Hybrid Mobile App Course

Related Topics