Compliance Checklist
App Store & Google Play Compliance Checklist
2025 Master "100% Pass" Checklist
This checklist covers all technical, legal, and asset requirements to avoid rejection.
Phase 1: Technical Requirements (Auto-Reject Prevention)
Android (Google Play) - CRITICAL
| Requirement | Status | Notes |
|---|---|---|
| Target API Level 35 (Android 15) | [x] | EAS Build with SDK 54 handles this |
| Signed App Bundle (.aab) | [x] | eas.json configured for app-bundle |
| 64-bit Support (arm64-v8a) | [x] | Expo/EAS includes by default |
| Permissions Audit | [x] | Blocked READ_SMS, CALL_LOG in app.json |
Configured Permissions (app.json):
"permissions": [
"android.permission.INTERNET",
"android.permission.VIBRATE",
"android.permission.CAMERA",
"android.permission.READ_MEDIA_IMAGES"
],
"blockedPermissions": [
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE",
"android.permission.READ_SMS",
"android.permission.CALL_LOG"
]
iOS (App Store) - CRITICAL
| Requirement | Status | Notes |
|---|---|---|
| Privacy Manifest (PrivacyInfo.xcprivacy) | [x] | Expo SDK 51+ includes automatically |
| No "Beta/Demo/Test" Labels | [x] | App name is "Civix - US Citizenship Test" |
| IPv6 Support | [x] | Using standard networking (HTTPS) |
| NSCameraUsageDescription | [x] | Added for profile photo |
| NSPhotoLibraryUsageDescription | [x] | Added for profile photo |
| ITSAppUsesNonExemptEncryption | [x] | Set to false (HTTPS only) |
Phase 2: Legal & Privacy (Content Rejections)
Privacy Policy
| Requirement | Status | Notes |
|---|---|---|
| Live URL hosted | [ ] | Need to host at civixapp.com/privacy |
| Lists data collected | [x] | docs/PRIVACY-POLICY.md complete |
| Explains data usage | [x] | In privacy policy |
| Third-party disclosure | [x] | AdMob, RevenueCat disclosed |
Account & Data
| Requirement | Status | Notes |
|---|---|---|
| In-App Account Deletion | N/A | No account system, data is local |
| EULA | [x] | Using Apple's standard EULA |
| Data Safety Section (Google) | [ ] | Fill in Play Console |
| App Content Rating | [ ] | Complete in both stores |
Data Safety Answers (Google Play)
Does your app collect user data? Yes
Data Types Collected:
- Device identifiers: Yes (for ads - free users only)
- App activity: Yes (quiz scores, progress - stored locally)
- App info and performance: Yes (crash logs via Expo)
Data Sharing:
- Shared with advertising partners: Yes (free users - AdMob)
- Shared with analytics providers: No
Data Security:
- Data encrypted in transit: Yes (HTTPS)
- Data can be deleted: Yes (uninstall app or contact support)
- Users can request deletion: Yes
Phase 3: Store Assets
Google Play Assets
| Asset | Size | Status |
|---|---|---|
| App Icon | 512 x 512 px (PNG, 32-bit) | [x] Resize from 1024x1024 |
| Feature Graphic | 1024 x 500 px | [ ] Create (banner at top) |
| Phone Screenshots | Min 2 | [ ] Create |
| 7" Tablet Screenshot | Required | [ ] Create (scale phone UI) |
| 10" Tablet Screenshot | Required | [ ] Create (scale phone UI) |
Apple App Store Assets
| Asset | Size | Status |
|---|---|---|
| App Icon | 1024 x 1024 px (no transparency) | [x] assets/icon.png |
| iPhone 6.5" Screenshots | 1284 x 2778 px | [ ] Create |
| iPhone 5.5" Screenshots | 1242 x 2208 px | [ ] Create |
| iPad Screenshots (if supporting) | 12.9" Display | [ ] Optional |
Phase 4: Reviewer Requirements
App Access
| Requirement | Status | Notes |
|---|---|---|
| Demo Account | N/A | No login required |
| Permission Explanations | [x] | Camera: "profile photo", Photos: "profile photo" |
| Notes for Reviewer | [ ] | Prepare explanation |
Suggested Reviewer Notes
This is a citizenship test study app for people preparing for the US naturalization interview.
TESTING NOTES:
- No login required - app works immediately
- Free tier: 3 quizzes/day, 2 practice sessions/day
- Premium: Unlimited access (use sandbox account to test)
PERMISSIONS USED:
- Camera: Optional, for profile photo personalization in onboarding
- Photos: Optional, for selecting profile photo
SUBSCRIPTION INFO:
- Monthly: $2.99/month
- Annual: $19.99/year
- Lifetime: $39.99 one-time
All in-app purchases use Apple/Google native billing (RevenueCat SDK).
Phase 5: Google Play 20 Testers Rule
Applies if: Personal Google Play Console account created after Nov 2023
| Step | Status | Notes |
|---|---|---|
| Create Closed Testing Track | [ ] | Required before production |
| Recruit 20 Testers | [ ] | Need 20 distinct email addresses |
| 14-Day Testing Period | [ ] | Testers must have app for 14 days |
| Apply for Production | [ ] | After 14 days complete |
Civix-Specific Compliance
Legal Documents
- Privacy Policy created (
docs/PRIVACY-POLICY.md) - Terms of Service created (
docs/TERMS-OF-SERVICE.md) - USCIS Disclaimer in app ("not affiliated with USCIS")
- Subscription terms under pricing ("Cancel anytime")
- Host Privacy Policy at URL
- Host Terms of Service at URL
In-App Purchases (Apple STRICT)
- All purchases through StoreKit/Play Billing (RevenueCat)
- No external payment links
- No "buy on website" messaging
- Restore Purchases button visible
- Clear pricing display
- Subscription terms visible before purchase
Paywall Requirements
- USCIS disclaimer visible
- "Cancel anytime" text
- "Prices may vary by region" text
- Restore Purchases button
- Terms & Privacy links in settings
- Paywall works without crashing if IAP unavailable
App Content
- No real political figures (except Founders)
- No foreign flags
- No bold claims ("100% pass rate")
- Neutral patriotic imagery
- Educational content disclaimer
Onboarding
- Splash screen works
- Smooth animations
- No forced signup
- Free quiz works instantly
- Optional photo personalization
- Optional name personalization
App Store Connect Questionnaire Answers
Export Compliance
Does your app use encryption? Yes
Is it exempt? Yes (standard HTTPS/TLS only)
Content Rights
Does your app contain third-party content? No
(USCIS questions are public domain)
Advertising Identifier (IDFA)
Does this app use IDFA? No
(We use AdMob but without IDFA tracking)
Age Rating
Violence: None
Sexual Content: None
Profanity: None
Drugs/Alcohol: None
Gambling: None
Horror: None
Medical: None
Result: 4+ (Everyone)
App Privacy (Data Collection)
Data Linked to User:
- None
Data Not Linked to User:
- Usage Data (app analytics - local only)
- Diagnostics (crash reports via Expo)
Data Used for Tracking:
- None
App Store Description
App Name
Civix - US Citizenship Test
Subtitle (30 chars)
Pass Your Naturalization Exam
Keywords (100 chars)
citizenship,naturalization,uscis,civics,test,exam,us,citizen,immigration,study,practice,quiz,prep
Short Description (Google Play - 80 chars)
Study for your US citizenship test with official USCIS civics questions!
Full Description
Prepare for the U.S. Citizenship Test with Civix!
Master all 100 official USCIS civics questions and pass your naturalization interview with confidence.
STUDY SMARTER
- All 100 official civics questions
- Practice mode with instant feedback
- Quiz mode to test your knowledge
- Track your progress over time
FEATURES
- Works offline - study anywhere
- Multiple language support
- Beautiful, easy-to-use interface
- Progress tracking and statistics
- Earn achievements as you learn
PREMIUM FEATURES
- Unlimited quiz attempts
- Ad-free experience
- Access to all languages
- Priority support
DESIGNED FOR SUCCESS
Our proven study method helps thousands of people prepare for the citizenship test. Practice at your own pace and track your improvement.
DISCLAIMER
Civix is an independent educational app. It is not affiliated with, endorsed by, or sponsored by USCIS or any government agency. Content is based on publicly available USCIS study materials.
Start your citizenship journey today!
What's New (Version Notes)
Version 2.0.0
- Beautiful new onboarding experience
- Profile photo personalization
- New premium subscription options
- Improved quiz experience
- Enhanced progress tracking
- Multi-language support
- Bug fixes and performance improvements
Final Submission Checklist
Build & Test
- Run
npx expo-doctor- fix all errors - Build production:
eas build --platform all --profile production - Test on physical iOS device
- Test on physical Android device
- Verify all IAP products work in sandbox
- Verify Restore Purchases works
- Test offline functionality
Store Preparation
- Upload screenshots (all required sizes)
- Create feature graphic (Android)
- Fill all metadata fields
- Add Privacy Policy URL
- Add Support URL
- Add Terms of Service URL
Questionnaires
- Complete App Privacy (Apple)
- Complete Data Safety (Google)
- Complete Export Compliance (Apple)
- Complete Age Rating (both)
- Complete Content Rating (Google)
Final Review
- Review app name - no "Beta" or "Test"
- Review all screenshots
- Review description for guideline compliance
- Submit and wait
Common Rejection Reasons & Solutions
| Rejection | Solution |
|---|---|
| Guideline 2.1 - Crashes | Test on physical device, all edge cases |
| Guideline 3.1.1 - IAP | Use only Apple/Google billing |
| Guideline 4.2 - Minimum Functionality | Free tier has real value |
| Guideline 5.1.1 - Privacy | Include privacy policy, proper permissions |
| Guideline 5.2.1 - Legal | Add disclaimers, no government affiliation claims |
| Missing Privacy Manifest | Expo SDK 51+ includes automatically |
| Target API too low | EAS Build handles API 35 automatically |
URLs Needed Before Submission
Create these pages:
- Privacy Policy:
https://civixapp.com/privacy - Terms of Service:
https://civixapp.com/terms - Support Page:
https://civixapp.com/support
Hosting Options (Free):
- GitHub Pages
- Notion (public pages)
- Carrd.co
- Your own website