Content rating is set for app stores
Why it matters
Both app stores require content ratings completed through the IARC system (apple-age-ratings, google-play-content-rating) before an app can go live. Without a rating, submissions are blocked at the final publish step regardless of how polished the binary is. A rating also serves a compliance function: apps that collect data from users under 13 must declare this through the rating questionnaire, which triggers COPPA compliance requirements. Incorrectly self-rating an app lower than its actual content (e.g., rating a 17+ app as 4+) constitutes misrepresentation and can result in removal and developer account termination — a disproportionate consequence for what appears to be a configuration step.
Severity rationale
High because missing content ratings block the final publish step on both stores regardless of binary quality, and IARC misclassification exposes the developer account to termination for misrepresentation.
Remediation
Complete the IARC content rating questionnaire before submission. For EAS-managed submissions, the eas submit flow prompts for this interactively. For manual submissions, initiate the questionnaire in App Store Connect or Google Play Console before uploading the binary.
// eas.json — configure submit flow to include rating
{
"submit": {
"production": {
"ios": {
"appleId": "you@example.com",
"ascAppId": "1234567890"
},
"android": {
"serviceAccountKeyPath": "./google-play-key.json",
"track": "production"
}
}
}
}
Allocate 10–15 minutes for the questionnaire. Answer honestly — the system asks about violence, sexual content, profanity, controlled substances, and in-app purchases. The resulting IARC certificate propagates automatically across Apple and Google stores.
Detection
- ID:
content-rating-set - Severity:
high - What to look for: Check
app.jsonforios.requiresFullScreenor rating-related fields, and look for content rating metadata in Android config or eas.json. Count all content-rating-related configuration fields found. For App Store, check if IARC content rating has been completed (should have a rating ID). For Play Store, check if content rating questionnaire has been filled. Look in eas.json forsubmit.ios.ascAppIdAppleand content rating references. - Pass criteria: Content rating is set or will be completed during submission. For Expo EAS, submit configuration includes content rating steps or an
ascAppIdApplereference. For manual submission, at least 1 rating-related configuration field exists in app.json or eas.json. - Fail criteria: Content rating is missing or not planned, submission flow does not include content rating steps. No rating configuration found in any config file.
- Skip (N/A) when: Never — both stores require content rating before publication.
- Detail on fail:
"No content rating configuration found in app.json or eas.json"or"eas.json submit configuration does not include content rating step" - Remediation: App stores require content ratings before publication. Complete:
- For App Store (via IARC):
- Go to https://www.globalratingcoalition.org/
- Answer the IARC content rating questionnaire
- Receive a rating ID
- In app.json:
"ios": { "ratingId": "..." }(if using EAS)
- For Google Play Store:
- Complete the Play Console content rating questionnaire when submitting
- Or set up in advance at https://play.google.com/console
- Rating typically takes a few minutes to complete:
- Answer about content types (violence, language, mature themes, etc.)
- Receive a rating (4+, 9+, 12+, 17+)
- If using EAS Build with submit:
eas build --platform ios --auto-submit # Prompts for rating during submit
- For App Store (via IARC):
External references
- external · iarc-rating — International Age Rating Coalition (IARC) — Content Rating
- external · apple-age-ratings — App Store Connect Help — App age ratings
- external · google-play-content-rating — Google Play — Content ratings for apps and games
Taxons
History
- 2026-04-18·v1.0.0·Initial import from mobile-store-readiness·automated