# App Store Publishing Progress Checklist

**Project:** Allam Mobile  
**Date Started:** ___________  
**Target Launch Date:** ___________

Use this checklist to track your progress through the app store publishing process.

---

## Phase 1: Preparation (Week 1)

### Assets & Screenshots
- [ ] **Take Android screenshots** (5-8 screens)
  - [ ] Phone screenshots (16:9 or 9:16)
  - [ ] Tablet screenshots (optional but recommended)
  - Tools: Android emulator, physical device, or `adb shell screencap`
  
- [ ] **Take iOS screenshots** (5-8 screens)
  - [ ] iPhone 6.7" (1290x2796 px)
  - [ ] iPhone 6.5" (1242x2688 px)
  - Tools: EAS Build + TestFlight, or Xcode simulator
  
- [ ] **Create feature graphic** for Google Play
  - Size: 1024x500 px PNG
  - No transparency
  - Include app branding
  
- [ ] **Verify app icon**
  - [ ] `assets/icon.png` exists (512x512 px) ✅
  - [ ] Test on different backgrounds
  - [ ] Create iOS icon set (if not using Expo's auto-generation)

### Legal & Documentation
- [ ] **Create privacy policy**
  - [ ] Customize `PRIVACY_POLICY_TEMPLATE.md`
  - [ ] Host on public URL (GitHub Pages, Netlify, etc.)
  - [ ] Test the URL is accessible
  - [ ] Add both English and Arabic versions
  
- [ ] **Prepare store listing text**
  - [ ] App title (50 characters max)
  - [ ] Short description (80 characters max)
  - [ ] Full description (4000 characters max)
  - [ ] Keywords (iOS) / Tags (Android)
  - [ ] Support URL
  - [ ] Marketing URL (optional)

### Developer Accounts
- [ ] **Google Play Developer Account**
  - [ ] Register at https://play.google.com/console
  - [ ] Pay $25 one-time fee
  - [ ] Verify identity
  
- [ ] **Apple Developer Account**
  - [ ] Register at https://developer.apple.com/
  - [ ] Pay $99/year
  - [ ] Complete enrollment (can take 24-48 hours)
  - [ ] Set up 2FA

---

## Phase 2: Build Configuration (Week 2)

### Android Setup
- [ ] **Configure keystore**
  - [ ] Decision: EAS managed vs. manual keystore
  - [ ] If EAS managed: Run `eas credentials`
  - [ ] If manual: Generate keystore and backup securely
  - [ ] Test signing configuration
  
- [ ] **Update eas.json** (if needed)
  - [ ] Verify `google-service-account.json` path
  - [ ] Check track setting (internal/production)
  
- [ ] **Test Android build**
  - [ ] Run `eas build --platform android --profile production`
  - [ ] Download and test .aab locally (optional)
  - [ ] Verify app installs correctly

### iOS Setup
- [ ] **Register bundle identifier**
  - [ ] Log in to Apple Developer portal
  - [ ] Register `com.allam.mobile`
  - [ ] Enable required capabilities:
    - [ ] Push Notifications
    - [ ] Background Modes
    
- [ ] **Configure iOS signing**
  - [ ] Run `eas credentials`
  - [ ] Create distribution certificate
  - [ ] Create provisioning profile
  - [ ] Verify in EAS dashboard
  
- [ ] **Update eas.json**
  - [ ] Fill in `ascAppId` (from App Store Connect)
  - [ ] Fill in `appleTeamId` (from Apple Developer portal)
  
- [ ] **Test iOS build**
  - [ ] Run `eas build --platform ios --profile production`
  - [ ] Download .ipa and test via TestFlight

---

## Phase 3: Store Setup (Week 2-3)

### Google Play Console
- [ ] **Create app**
  - [ ] App name: "Allam"
  - [ ] Default language
  - [ ] App or game: App
  - [ ] Free or paid
  
- [ ] **Complete store listing**
  - [ ] Upload screenshots
  - [ ] Upload feature graphic
  - [ ] Fill in all text fields
  - [ ] Add privacy policy URL
  - [ ] Set content rating
  
- [ ] **Set up release track**
  - [ ] Create internal testing track
  - [ ] Add internal testers (if any)
  - [ ] Upload first AAB

### App Store Connect
- [ ] **Create app**
  - [ ] Log in to https://appstoreconnect.apple.com/
  - [ ] Click "+" > "New App"
  - [ ] Fill in app information
  - [ ] Save
  
- [ ] **Complete app metadata**
  - [ ] Upload screenshots for all device sizes
  - [ ] Fill in keywords
  - [ ] Add privacy policy URL
  - [ ] Set pricing and availability
  
- [ ] **Set up TestFlight**
  - [ ] Upload first build
  - [ ] Wait for processing (10-30 min)
  - [ ] Add internal testers
  - [ ] Test the build
  - [ ] (Optional) Add external testers

---

## Phase 4: Review & Launch (Week 4)

### Google Play Store
- [ ] **Internal testing**
  - [ ] Release to internal track
  - [ ] Test with internal testers
  - [ ] Fix any critical bugs
  
- [ ] **Closed testing** (optional but recommended)
  - [ ] Set up closed track
  - [ ] Add beta testers
  - [ ] Gather feedback
  
- [ ] **Production release**
  - [ ] Promote from internal/closed to production
  - [ ] Choose rollout percentage (start with 10-20%)
  - [ ] Monitor crash reports
  - [ ] Full rollout after confidence

**Expected timeline:** 1-3 days for review

### Apple App Store
- [ ] **TestFlight testing**
  - [ ] Complete internal testing
  - [ ] (Optional) External beta testing with Apple review
  - [ ] Gather and incorporate feedback
  
- [ ] **Prepare for submission**
  - [ ] Verify all metadata is complete
  - [ ] Check App Store Review Guidelines compliance
  - [ ] Demo account for reviewers (if needed)
  
- [ ] **Submit for review**
  - [ ] Click "Submit for Review"
  - [ ] Wait for Apple's review (24-48 hours typically)
  - [ ] Respond to any rejection reasons
  - [ ] Release when approved

**Expected timeline:** 24-48 hours for review

---

## Phase 5: Post-Launch

### Monitoring
- [ ] **Set up analytics**
  - [ ] Google Analytics / Firebase Analytics
  - [ ] Crash reporting (Firebase Crashlytics)
  - [ ] Performance monitoring
  
- [ ] **Monitor reviews**
  - [ ] Respond to user reviews
  - [ ] Track rating trends
  
- [ ] **Track downloads & revenue**
  - [ ] Google Play Console statistics
  - [ ] App Store Connect analytics

### Maintenance
- [ ] **Plan update cycle**
  - [ ] Bug fix updates (as needed)
  - [ ] Feature updates (monthly/quarterly)
  - [ ] OS compatibility updates
  
- [ ] **Renewals**
  - [ ] Apple Developer account (annual)
  - [ ] Domain names (if applicable)
  - [ ] Certificates (as needed)

---

## Quick Commands Reference

```bash
# Check EAS status
eas whoami

# Build Android
eas build --platform android --profile production

# Build iOS
eas build --platform ios --profile production

# Submit to Google Play
eas submit --platform android --profile production

# Submit to App Store
eas submit --platform ios --profile production

# Check build status
eas build:list

# Manage credentials
eas credentials

# Use the automated script
./build-and-submit.sh
```

---

## Notes Section

Use this space to jot down important notes, decisions, or issues you encounter:

---

**Date:** ___________  
**Note:**  

---

**Date:** ___________  
**Note:**  

---

**Date:** ___________  
**Note:**  

---

## Helpful Links

- **Expo Documentation:** https://docs.expo.dev/distribution/introduction/
- **Google Play Console:** https://play.google.com/console
- **App Store Connect:** https://appstoreconnect.apple.com/
- **Apple Developer:** https://developer.apple.com/
- **EAS Build Dashboard:** https://expo.dev/builds
- **App Store Review Guidelines:** https://developer.apple.com/app-store/review/guidelines/
- **Google Play Policy Center:** https://play.google.com/about/developer-content-policy/

---

**Good luck with your launch! 🚀**

For questions or issues, consult the guides created:
- `APP_STORE_PUBLISHING_GUIDE.md` - Comprehensive guide
- `PRIVACY_POLICY_TEMPLATE.md` - Privacy policy template
- `build-and-submit.sh` - Build automation script
