App Store Connect & ASO Reference

Field limits, screenshot specs, ASO rules, and indie dev tips — everything a solo iOS developer needs to ship and rank on the App Store.

 

Field limits, screenshot specs, ASO rules, and indie dev tips — everything a solo iOS developer needs to ship and rank on the App Store.

1-Metadata field limits

FieldLimitNotes
App Name30 charsMost weight for ranking. Include primary keyword if natural.
Subtitle30 charsSecond strongest ranking signal. Don't repeat app name keywords.
Keywords field100 charsComma-separated, no spaces after commas. No repeating words already in name/subtitle.
Description4,000 charsDoes NOT affect search ranking. Write for human conversion, not keywords.
Promotional Text170 charsAppears above description. Updatable without a new app version. Use for time-sensitive messaging.
What's New4,000 charsShown on update page. Keep it friendly and honest.
Support URLrequiredMust be a working URL. Rejection risk if broken.
Privacy Policy URLrequiredRequired for all apps since 2018. Must describe data use.
Tip: Promotional Text is the only metadata field you can update without submitting a new binary. Use it for sales, seasonal messaging, or A/B testing copy.

2-Screenshot & preview specs

Required device sizes (iPhone)

6.9" (iPhone 16 Pro Max)

  • 1320 × 2868 px
  • Required since 2024. Replaces 6.7" as primary.

6.5" (iPhone 14 Plus / 13 Pro Max)

  • 1242 × 2688 px
  • Still widely used as fallback display size.

5.5" (iPhone 8 Plus)

  • 1242 × 2208 px
  • Legacy required size. Used as fallback for 4.7" and smaller.

Required device sizes (iPad)

iPad Pro 13" (M4)

  • 2064 × 2752 px
  • Required if app supports iPad.

iPad Pro 12.9" (2nd gen)

  • 2048 × 2732 px
  • Legacy required size.

Rules & limits

Max screenshots per locale10First 3 visible without tapping. Those are your most important.
Min screenshots1At least 1 required per supported device size.
FormatJPEG or PNGNo alpha channel for JPEG. 72 dpi minimum.
App Preview (video)up to 315–30 seconds. Must show actual app UI, not marketing animation.
App Preview formatM4V, MP4, MOVMax 500 MB. Auto-plays muted in App Store.
Note: Screenshots don't have to show an actual device frame — frameless or custom-designed marketing images are allowed and often perform better.

3-ASO ranking rules

What Apple indexes for search

FieldIndexed?Weight
App NameHighest
SubtitleHigh
Keywords fieldMedium
In-App Purchase namesMedium
Developer nameLow
DescriptionNot indexed by Apple search
Promotional TextNot indexed

Keyword best practices

Use singular or plural, not both Separate with commas, no spaces Include competitor-adjacent terms Use all 100 characters Don't repeat words from name/subtitle Don't include your app name Don't use spaces after commas Don't use competitor brand names

Ranking factors beyond keywords

Ratings & reviews volumeHigh impact. Prompt at the right moment with SKStoreReviewController.
Average star ratingHigh impact. Shown prominently in search results.
Download velocityA burst of installs signals popularity to Apple's algorithm.
Conversion rateImpressions → downloads. Mainly driven by icon, screenshots, and name.
Retention / crashesStable, well-used apps rank better over time.
RevenueApple reportedly favors monetizing apps.

4-Review process

Average review time24–48 hrsMost submissions reviewed within 1 business day as of 2026.
Expedited reviewAvailableRequest via App Store Connect for critical bug fixes or time-sensitive launches. Not guaranteed.
Max binary size (OTA)4 GBOver-the-air download limit is 200 MB (user prompt above that).
OTA prompt threshold200 MBUsers on cellular are prompted before downloading above this size.

Common rejection reasons

Broken links (support URL, privacy policy) Demo account not provided for login-required apps Misleading screenshots or description Missing privacy policy for data collection App crashes on launch Placeholder content Keyword stuffing in name or subtitle

5-Release options

Phased release schedule

1% Day 1–2
2% Day 3–4
5% Day 5–6
10% Day 7–8
20% Day 9–10
50% Day 11–12
100% Day 13–14
 
Tip: You can pause or stop phased release at any time in App Store Connect. Useful if you discover a critical bug after launch.

Release timing options

Manually releaseYou trigger the release after approval. Gives you control over timing (launch events, social posts).
Automatically releaseGoes live immediately upon approval. Fastest option.
Schedule a dateSet a specific date and time (UTC). Must be approved before the date.

6-Pricing tiers (USD reference)

TierUSD PriceNotes
Free$0Highest install volume. Monetize via IAP or subscription.
Tier 1$0.99Lowest paid tier.
Tier 2$1.99 
Tier 3$2.99 
Tier 4$3.99 
Tier 5$4.99Sweet spot for utility apps. Used by NetProbe Pro.
Tier 10$9.99 
Custom tiersup to $999.99Apple offers 900+ price points. Set per territory.
Note: Apple takes 30% commission (15% for Small Business Program — developers earning under $1M/year). Prices are automatically converted per territory based on your base currency.

7-Pre-submission checklist

  • App Name uses primary keyword naturally (≤ 30 chars) Don't keyword-stuff — Apple may reject or modify it.
  • Subtitle uses secondary keywords not repeated in name (≤ 30 chars)
  • Keywords field uses all 100 characters, no spaces after commas No words already present in name or subtitle.
  • Description first paragraph hooks the user (most visible before "more") About 255 chars shown before the fold on most devices.
  • Screenshots provided for all required device sizes At minimum: 6.9", 6.5", 5.5". Add iPad sizes if applicable.
  • First 3 screenshots communicate core value instantly These show in search results without tapping.
  • Support URL is live and accessible
  • Privacy Policy URL is live and accurately describes data use
  • App icon provided in 1024×1024 px PNG (no alpha, no rounded corners) Apple applies corner radius automatically.
  • Age rating completed accurately Inaccurate ratings are a rejection reason.
  • In-App Purchases named with searchable keywords IAP names are indexed by Apple's search algorithm.
  • Demo account credentials provided (if app requires login)
  • Review notes added for any non-obvious features or permissions
  • SKStoreReviewController prompt implemented at a natural moment Max 3 prompts per 365-day period. Don't prompt on first launch.
 

8-Tips for indie developers

Solo developer

  • Ship small, ship often. A focused 3-feature app beats a bloated 20-feature roadmap. You can always add — you can't easily simplify without confusing existing users.
  • Solve one problem better than anyone else. Niche apps with a clear purpose outperform general-purpose apps in both conversion rate and word-of-mouth. Be the best at one thing.
  • Treat your app like a product, not a project. Projects end. Products get maintained, marketed, and improved. Block time each week for ASO, reviews, and small updates — not just coding.
  • Build a portfolio, not a lottery ticket. A single app is a gamble. Multiple focused apps compound — each one builds brand recognition, cross-promotion opportunities, and diversified income.
  • Be visible in the indie dev community. Share your process on Bluesky, Reddit, or Mastodon. Other developers become users, testers, and advocates. Building in public creates organic reach without an ad budget.

ASO & marketing

 
  • Treat your app name as prime keyword real estate. The app name carries the heaviest ranking weight. If you can naturally include your primary keyword in the name without it sounding forced, do it.
  • Your screenshots are your sales pitch, not your tutorial. Most users decide in 3 seconds. The first screenshot should answer "what does this app do for me?" — not "here's a tour of the UI."
  • Localize metadata before UI. Translating your app name, subtitle, and keywords into French, German, Japanese, or Spanish costs almost nothing and can double your discoverability in those markets.
  • Use Promotional Text for A/B messaging without a resubmission. This is the only field you can change without a new binary. Test seasonal hooks, new feature announcements, or social proof ("Loved by 10k users") here.
  • Ratings are your most underrated marketing asset. A 4.8-star app with 50 ratings outperforms a 4.2-star app with 500 in conversion. Time your SKStoreReviewController prompt after a user wins or completes something meaningful.

App Store review survival

 
  • Always write review notes, even when you think it's obvious. Explain any unusual permissions, non-standard flows, or features that require a specific setup. Reviewers see hundreds of apps — help them understand yours in 30 seconds.
  • Test on a real device before every submission. A crash on launch is an automatic rejection. Simulator and real device behavior differ — especially with permissions, WidgetKit, and background tasks.
  • Appeal rejections calmly and with evidence. If you believe a rejection is wrong, use the Resolution Center. Be factual, polite, and provide screenshots or screen recordings. Most guideline disputes resolve on appeal.
  • Don't plan a launch around a specific review date. Review times average 24–48 hrs but can spike. Submit at least a week before a planned launch. Use "Manual Release" so you control the exact go-live moment.

Monetization (IAP & pricing)

 
  • Freemium converts better than paid for discovery apps. Free apps get 10–100× more downloads. If your core experience is compelling, a well-placed Pro unlock converts 2–5% of active users — often more revenue than a $0.99 paid app.
  • One-time purchase outperforms subscription for utility apps. Users are increasingly subscription-fatigued. For a focused tool with no ongoing server costs, a one-time Pro unlock at $2.99–$4.99 often yields higher conversion and better reviews.
  • Name your IAP with keywords — they're indexed by Apple. "Pro Unlock" is a wasted opportunity. "NetProbe Pro — Network Tools" signals to Apple's search what your Pro features are about. Use the full IAP name strategically.
  • Let users experience the "aha moment" before the paywall. The free tier should be generous enough to create genuine value — and just incomplete enough that users want more. Lock features they've already discovered, not features they've never tried.
  • Use StoreKit 2 — it's worth the migration. StoreKit 2 gives you transaction history, refund handling, and subscription status in a modern async API. Much simpler than the legacy receipt-validation approach.