- Rewrite SKILL.md with 12 triggers, TOC, and 5 workflows - Add real before/after examples for title, keyword, and description - Remove marketing language and redundant "How to Use" section - Move 8 Python scripts from root to scripts/ directory - Create references/platform-requirements.md (~324 lines) - Create references/aso-best-practices.md (~403 lines) - Create references/keyword-research-guide.md (~419 lines) - Create assets/aso-audit-template.md (~268 lines) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
9.4 KiB
9.4 KiB
Platform Requirements Reference
Technical specifications and metadata requirements for Apple App Store and Google Play Store.
Table of Contents
- Apple App Store Requirements
- Google Play Store Requirements
- Visual Asset Specifications
- Localization Requirements
- Compliance Guidelines
Apple App Store Requirements
Metadata Character Limits
| Field | Character Limit | Notes |
|---|---|---|
| App Name (Title) | 30 characters | Visible in search results |
| Subtitle | 30 characters | iOS 11+ only, appears below title |
| Promotional Text | 170 characters | Editable without app update |
| Description | 4,000 characters | Not indexed for search |
| Keywords Field | 100 characters | Comma-separated, no spaces after commas |
| What's New | 4,000 characters | Release notes for updates |
| Developer Name | 255 characters | Company or individual name |
| Support URL | Required | Must be valid HTTPS URL |
| Privacy Policy URL | Required | Must be valid HTTPS URL |
Keyword Field Optimization Rules
- No duplicates - Words in title are already indexed
- No plurals - Apple indexes both singular and plural forms
- No spaces after commas - Wastes character space
- No brand names - Violates App Store guidelines
- No category names - Already indexed via category selection
Example - Efficient keyword field:
task,todo,checklist,reminder,productivity,organize,schedule,planner,goals,habit
Example - Inefficient keyword field (avoid):
task manager, todo list, productivity app, task tracking
App Store Connect Metadata Fields
| Category | Field | Required |
|---|---|---|
| App Information | Name | Yes |
| Subtitle | No | |
| Category | Yes | |
| Secondary Category | No | |
| Content Rights | Yes | |
| Age Rating | Yes | |
| Version Information | Description | Yes |
| Keywords | Yes | |
| Promotional Text | No | |
| What's New | Yes (for updates) | |
| Support URL | Yes | |
| Marketing URL | No | |
| Pricing | Price Tier | Yes |
| Availability | Yes |
Age Rating Content Descriptors
| Content Type | None | Infrequent | Frequent |
|---|---|---|---|
| Cartoon Violence | 4+ | 9+ | 12+ |
| Realistic Violence | 9+ | 12+ | 17+ |
| Sexual Content | 12+ | 17+ | 17+ |
| Profanity | 4+ | 12+ | 17+ |
| Alcohol/Drug Reference | 12+ | 17+ | 17+ |
| Gambling | 12+ | 17+ | 17+ |
| Horror/Fear | 9+ | 12+ | 17+ |
Google Play Store Requirements
Metadata Character Limits
| Field | Character Limit | Notes |
|---|---|---|
| App Title | 50 characters | Increased from 30 in 2021 |
| Short Description | 80 characters | Visible on store listing |
| Full Description | 4,000 characters | Indexed for search keywords |
| Developer Name | 64 characters | Organization or individual |
| Developer Email | Required | Public support contact |
| Privacy Policy URL | Required | Must be valid HTTPS URL |
Description Keyword Strategy
Google Play has no separate keyword field. Keywords are extracted from:
- App Title - Highest weight, most important
- Short Description - High weight, visible in search
- Full Description - Medium weight, use naturally throughout
- Developer Name - Low weight but indexed
Keyword Density Guidelines:
- Primary keyword: 2-3% density in full description
- Secondary keywords: 1-2% each
- Avoid keyword stuffing (>5% triggers spam detection)
Google Play Console Metadata
| Category | Field | Required |
|---|---|---|
| Store Listing | Title | Yes |
| Short Description | Yes | |
| Full Description | Yes | |
| App Icon | Yes | |
| Feature Graphic | Yes | |
| Screenshots | Yes (min 2) | |
| Video | No | |
| Store Settings | App Category | Yes |
| Tags | No | |
| Contact Email | Yes | |
| Privacy Policy | Yes | |
| Content Rating | IARC Questionnaire | Yes |
Content Rating (IARC)
| Rating | Age | Description |
|---|---|---|
| PEGI 3 / Everyone | 3+ | Suitable for all ages |
| PEGI 7 / Everyone 10+ | 7+ | Mild violence, comic mischief |
| PEGI 12 / Teen | 12+ | Moderate violence, mild language |
| PEGI 16 / Mature 17+ | 16+ | Intense violence, strong language |
| PEGI 18 / Adults Only | 18+ | Extreme content |
Visual Asset Specifications
App Icon Requirements
Apple App Store:
| Device | Size | Format |
|---|---|---|
| iPhone | 1024x1024 px | PNG, no alpha |
| iPad | 1024x1024 px | PNG, no alpha |
| App Store | 1024x1024 px | PNG, no alpha |
| Spotlight | 120x120 px | PNG |
| Settings | 87x87 px | PNG |
Google Play Store:
| Asset | Size | Format |
|---|---|---|
| App Icon | 512x512 px | PNG, 32-bit |
| Feature Graphic | 1024x500 px | PNG or JPG |
| Promo Graphic | 180x120 px | PNG or JPG |
| TV Banner | 1280x720 px | PNG or JPG |
Screenshot Requirements
Apple App Store:
| Device | Portrait | Landscape |
|---|---|---|
| iPhone 6.9" | 1320x2868 px | 2868x1320 px |
| iPhone 6.5" | 1290x2796 px | 2796x1290 px |
| iPhone 5.5" | 1242x2208 px | 2208x1242 px |
| iPad Pro 12.9" | 2048x2732 px | 2732x2048 px |
| iPad 10.5" | 1668x2224 px | 2224x1668 px |
- Minimum: 2 screenshots per device
- Maximum: 10 screenshots per device
- Format: PNG or JPG, no alpha channel
- First 3 screenshots are critical (most users don't scroll)
Google Play Store:
| Device | Dimensions | Notes |
|---|---|---|
| Phone | 320-3840 px | Min 2:1 aspect ratio |
| 7" Tablet | 320-3840 px | Min 2:1 aspect ratio |
| 10" Tablet | 320-3840 px | Min 2:1 aspect ratio |
| Chromebook | 320-3840 px | Optional |
| TV | 320-3840 px | For TV apps only |
- Minimum: 2 screenshots
- Maximum: 8 screenshots
- Format: PNG or JPG
- No transparency or borders
App Preview Video
Apple App Store:
- Duration: 15-30 seconds
- Resolution: Match device screenshot size
- Format: M4V, MP4, MOV
- Frame rate: 30 fps
- Audio: Optional but recommended
Google Play Store:
- YouTube video link only
- No duration limit (recommend under 2 minutes)
- Landscape orientation preferred
- Must not contain age-restricted content
Localization Requirements
Priority Markets by Revenue
| Rank | Market | Language Code |
|---|---|---|
| 1 | United States | en-US |
| 2 | Japan | ja |
| 3 | United Kingdom | en-GB |
| 4 | Germany | de-DE |
| 5 | China | zh-Hans (iOS), zh-CN (Android) |
| 6 | South Korea | ko |
| 7 | France | fr-FR |
| 8 | Canada | en-CA, fr-CA |
| 9 | Australia | en-AU |
| 10 | Russia | ru |
Apple App Store Localization
Supported localizations: 40+ languages
| Language | Locale Code |
|---|---|
| English (US) | en-US |
| English (UK) | en-GB |
| Spanish | es-ES |
| Spanish (Mexico) | es-MX |
| French | fr-FR |
| German | de-DE |
| Japanese | ja |
| Korean | ko |
| Simplified Chinese | zh-Hans |
| Traditional Chinese | zh-Hant |
Google Play Store Localization
Supported localizations: 75+ languages
Each locale requires:
- Title (50 chars)
- Short description (80 chars)
- Full description (4,000 chars)
- Screenshots (can reuse or localize)
Compliance Guidelines
Apple App Store Review Guidelines Summary
| Category | Key Requirements |
|---|---|
| Safety | No objectionable content, privacy protection |
| Performance | App must work as described, no crashes |
| Business | Accurate app description, clear pricing |
| Design | Follow Human Interface Guidelines |
| Legal | Comply with local laws, proper licensing |
Common Rejection Reasons:
- Bugs and crashes (50%+ of rejections)
- Broken links or placeholder content
- Misleading app descriptions
- Privacy policy missing or incomplete
- In-app purchase issues
Google Play Developer Policies
| Policy Area | Requirements |
|---|---|
| Restricted Content | No hate speech, violence, gambling (without license) |
| Privacy | Data collection disclosure, privacy policy |
| Monetization | Clear pricing, compliant IAPs |
| Ads | No deceptive ads, proper disclosure |
| Store Listing | Accurate description, no keyword stuffing |
Common Suspension Reasons:
- Policy violation (content, ads, permissions)
- Repetitive content (clone apps)
- Impersonation (fake apps)
- Intellectual property infringement
- Malicious behavior
Privacy Requirements
Apple (App Tracking Transparency):
- ATT prompt required for tracking
- Privacy nutrition labels mandatory
- Data collection disclosure required
Google (Data Safety):
- Data safety section mandatory
- Data collection and sharing disclosure
- Security practices declaration
Quick Reference Card
Apple vs Google Comparison
| Attribute | Apple App Store | Google Play Store |
|---|---|---|
| Title Length | 30 chars | 50 chars |
| Subtitle | 30 chars | N/A |
| Short Description | N/A | 80 chars |
| Full Description | 4,000 chars | 4,000 chars |
| Keywords Field | 100 chars | N/A (in description) |
| Promotional Text | 170 chars | N/A |
| Icon Size | 1024x1024 px | 512x512 px |
| Min Screenshots | 2 | 2 |
| Max Screenshots | 10 | 8 |
| Review Time | 24-48 hours | 1-7 days |
| Metadata Update | Requires review | 1-2 hours to index |