Guide · App Store Connect

App Store localization languages: the full list and how to add them

App Store Connect supports 50 App Store localization languages for your listing, from Arabic to Vietnamese, with separate variants of English, French, Spanish, Portuguese and Chinese. Each language gets its own name, subtitle, keywords, description and screenshots, and every one of Apple's 175 storefronts has a default language plus, in 104 of them, extra languages it also supports.

Eleven of the 50 arrived on March 31, 2026: Bangla, Gujarati, Kannada, Malayalam, Marathi, Odia, Punjabi, Slovenian, Tamil, Telugu and Urdu. Lists that stop at 39 languages were written before that.

Your primary language is the fallback: where none of your localizations fits a customer's storefront and device language, Apple shows it, so an English-only listing appears in English everywhere. Adding a language takes a minute. The work is in keywords people there type and screenshots that still show English.

By Redjan Hysa, founder of MetaRun · Facts checked October 12, 2026

languages App Store Connect accepts for listing metadata
50
storefronts, each with a default language Apple assigns
175
languages the US storefront supports: English (U.S.) plus nine
10
storefronts that list English (U.K.)
172 of 175
for a saved listing change to show in every storefront
Up to 24 hours

Free storefront audit

See which App Store storefronts show your listing or screenshots in a language their customers don't read, including translated text under English screenshots.

01 · Reference

Reference tables

All 50 App Store localization languages and their codes
LanguageLocale code (App Store Connect API)
Arabicar-SA
Banglabn-BD
Catalanca
Chinese (Simplified)zh-Hans
Chinese (Traditional)zh-Hant
Croatianhr
Czechcs
Danishda
Dutchnl-NL
English (Australia)en-AU
English (Canada)en-CA
English (U.K.)en-GB
English (U.S.)en-US
Finnishfi
Frenchfr-FR
French (Canada)fr-CA
Germande-DE
Greekel
Gujaratigu-IN
Hebrewhe
Hindihi
Hungarianhu
Indonesianid
Italianit
Japaneseja
Kannadakn-IN
Koreanko
Malayms
Malayalamml-IN
Marathimr-IN
Norwegianno
Odiaor-IN
Polishpl
Portuguese (Brazil)pt-BR
Portuguese (Portugal)pt-PT
Punjabipa-IN
Romanianro
Russianru
Slovaksk
Sloveniansl-SI
Spanish (Mexico)es-MX
Spanish (Spain)es-ES
Swedishsv
Tamilta-IN
Telugute-IN
Thaith
Turkishtr
Ukrainianuk
Urduur-PK
Vietnamesevi

Codes come from Apple's locale shortcode table for the App Store Connect API, which calls Bangla "Bengali" and Odia "Oriya".

Storefronts that support more than one language
StorefrontDefault languageAlso supported
United StatesEnglish (U.S.)Arabic, Chinese (Simplified), Chinese (Traditional), French, Korean, Portuguese (Brazil), Russian, Spanish (Mexico), Vietnamese
CanadaEnglish (Canada)French (Canada)
JapanJapaneseEnglish (U.S.)
China mainlandChinese (Simplified)English (U.K.)
Hong Kong, Macau, TaiwanChinese (Traditional)English (U.K.)
South KoreaKoreanEnglish (U.K.)
Germany, AustriaGermanEnglish (U.K.)
SwitzerlandGermanEnglish (U.K.), French, Italian
France, Cameroon, Côte d'Ivoire, GabonFrenchEnglish (U.K.)
BelgiumEnglish (U.K.)Dutch, French
LuxembourgEnglish (U.K.)French, German
NetherlandsDutchEnglish (U.K.)
SurinameEnglish (U.K.)Dutch
ItalyItalianEnglish (U.K.)
SpainSpanish (Spain)Catalan, English (U.K.)
PortugalPortuguese (Portugal)English (U.K.)
BrazilPortuguese (Brazil)English (U.K.)
Mexico, Argentina, Bolivia, Chile, Colombia, Costa Rica, Dominican Republic, Ecuador, El Salvador, Guatemala, Honduras, Nicaragua, Panama, Paraguay, Peru, VenezuelaSpanish (Mexico)English (U.K.)
Belize, UruguayEnglish (U.K.)Spanish (Mexico)
Australia, New ZealandEnglish (Australia)English (U.K.)
SwedenSwedishEnglish (U.K.)
RussiaRussianEnglish (U.K.), Ukrainian
UkraineEnglish (U.K.)Russian, Ukrainian
IndiaEnglish (U.K.)Bangla, Gujarati, Hindi, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, Telugu, Urdu
PakistanEnglish (U.K.)Urdu
Saudi Arabia, United Arab Emirates, Bahrain, Iraq, Jordan, Kuwait, Libya, Oman, Qatar, YemenEnglish (U.K.)Arabic
Algeria, Egypt, Lebanon, Mauritania, Morocco, TunisiaEnglish (U.K.)Arabic, French
Benin, Burkina Faso, Cambodia, Chad, DR Congo, Republic of the Congo, Guinea-Bissau, Guyana, Laos, Madagascar, Mali, Mauritius, Niger, Rwanda, Senegal, Seychelles, Trinidad and Tobago, VanuatuEnglish (U.K.)French
Croatia, Bosnia and Herzegovina, Montenegro, SerbiaEnglish (U.K.)Croatian
GreeceEnglish (U.K.)Greek
CyprusEnglish (U.K.)Greek, Turkish
TürkiyeEnglish (U.K.)Turkish
IsraelEnglish (U.K.)Hebrew
CzechiaEnglish (U.K.)Czech
DenmarkEnglish (U.K.)Danish
FinlandEnglish (U.K.)Finnish
HungaryEnglish (U.K.)Hungarian
NorwayEnglish (U.K.)Norwegian
PolandEnglish (U.K.)Polish
RomaniaEnglish (U.K.)Romanian
SlovakiaEnglish (U.K.)Slovak
SloveniaEnglish (U.K.)Slovenian
SingaporeEnglish (U.K.)Chinese (Simplified)
IndonesiaEnglish (U.K.)Indonesian
MalaysiaEnglish (U.K.)Malay
ThailandEnglish (U.K.)Thai
VietnamEnglish (U.K.)Vietnamese

From Apple's App Store localizations reference. The other 71 storefronts, including the United Kingdom and Ireland, list English (U.K.) only.

Which fields are per language and which are app-wide
FieldWhere it lives in App Store ConnectPer languageLimitChange without a new version
NameApp InformationYes2 to 30 charactersNo
SubtitleApp InformationYes30 charactersNo
Privacy Policy URLApp InformationYesA URLNo
DescriptionVersion pageYes4,000 charactersNo
KeywordsVersion pageYes100 charactersNo
Promotional TextVersion pageYes170 charactersYes
What's New in this VersionVersion page, updates onlyYes4,000 charactersNo
Screenshots and app previewsVersion page (Product Page Information)YesUp to 3 previews per device sizeNo
Support URL, Marketing URLVersion pageYesA URLNo
Primary LanguageApp InformationNo, app-wideOne of the 50Yes, within Apple's conditions

Categories, age rating, price and bundle ID are app-wide. Apple's guides give the keyword limit as 100 characters, its reference as 100 bytes.

02 · By hand

How to add a language in App Store Connect

You need the Account Holder, Admin, App Manager or Marketing role, and the app must be in an editable status such as Prepare for Submission or Metadata Rejected.

  1. 01

    Open an editable version

    In Apps, select the app and click the version in the sidebar. If your only version is live, click the add button (+) next to the platform and create version 2.4; Apple copies the current metadata into it.

  2. 02

    Add the language

    At the top right, click the primary language to open the language menu. Under Not Localized, hold the pointer over the language and click the add button (+). Apple also adds it under App Information and to your other platforms.

  3. 03

    Fill in the version fields

    Enter the description, keywords, promotional text, support URL and, on an update, What's New. Click Save. The new language starts with your primary language's screenshots and values, except the description and keywords.

  4. 04

    Fill in App Information

    Click App Information in the sidebar, pick the same language at the top right, enter the localized name, subtitle and privacy policy URL, and click Save.

  5. 05

    Replace the screenshots

    On the version, with the language selected, open the App Previews and Screenshots tab under Product Page Information and upload localized images for each device size.

  6. 06

    Ship it with the version

    Submit the version for review. The language goes live with it, and Apple says changes can take up to 24 hours to reach every storefront.

03 · Briefing

How the primary language works as the fallback

Apple's own example: English is primary and you add French. The French listing shows to people whose device language is French, and in storefronts that support French but not English. If nothing matches someone's language setting, Apple uses the next most relevant localization, and everywhere else the primary language.

English (U.S.) is listed in two storefronts, the US and Japan, while English (U.K.) appears in 172 of 175. A US-first app can add English (U.K.) as a second English listing, with British spelling and its own keywords for the UK, India and the other storefronts that list it.

To change the primary language, pick another one in the Primary Language menu under App Information and click Save. Apple only offers a language you've already shipped on a previous version, approved by App Review, with approved screenshots in your current primary language's sizes on every platform (and on each custom product page).

04 · Briefing

How translation affects App Store search

Apple searches your app name, subtitle, keywords and company name. Its help page says people can find your app through localized keywords in every storefront where the App Store supports that language, so the storefront table doubles as a map of where each language's keyword field counts.

Spanish (Spain) is supported only in Spain, while 16 Latin American storefronts default to Spanish (Mexico), so a Spain-only Spanish listing misses Latin America's default language. The US storefront supports nine languages besides English, each with its own 30-character name, 30-character subtitle and 100-character keyword field. Japan lists English (U.S.) next to Japanese, so US English keywords count there too.

Translate keywords by search habit, not word for word: a literal translation of "to-do list" may not be what people in Germany type, so check App Store search hints in that language first. Keep the localized name recognizably the same app, since guideline 2.3.8 asks for the name and icons to be similar enough to avoid confusion.

Some developers fill a storefront's extra languages purely for keyword room, such as Spanish (Mexico) aimed at the US. Apple doesn't document how it weighs that, and people whose device uses that language see the name and subtitle you wrote there.

05 · Briefing

Why translated text with English screenshots underperforms

A new language starts with your primary language's screenshots, so it's easy to ship a translated description under English captions. Search results can show up to three screenshots or previews beside your name, which makes those captions the first copy people read, well before the description.

Upload localized screenshots for each language, starting with the storefronts that bring the most downloads. MetaRun's free storefront audit checks what each storefront serves and flags the ones where the description was translated but the screenshots stayed in the source language.

06 · Briefing

Removing a language

Open the language menu, find the language under Localized, hold the pointer over it and click the delete button. Storefronts that showed it go back to your primary language. Like adding, it needs an editable status.

07 · Troubleshooting

Common problems and how to fix them

App Store localization rejected: Metadata Rejected over one language's text, citing guideline 2.3.7 or 2.3.10

Why: App Review applies the same metadata rules to every language. Common triggers: trademarked terms or competitor names in a translated keyword field, other platforms named in a translated description, or a localized name that no longer reads as the same app. For Simplified Chinese, the App Information metadata must also match your ICP filing when one is required.

Fix: Read App Review's message in App Store Connect, fix that language and reply. Metadata Rejected means the build was fine, so no new upload is needed.

Can't change primary language: the language isn't offered in the Primary Language menu

Why: The language hasn't met Apple's conditions: shipped on a previous version, approved, and with approved screenshots in the current primary language's sizes.

Fix: Ship a version that includes the language with its own screenshots in every required size, then switch on the next update.

Language added but the storefront still shows English

Why: The language goes live only with its version, and changes can take up to 24 hours. Or the storefront doesn't support that language (Spanish (Spain) viewed from Mexico), the device language selects another localization, or the screenshots were inherited from English.

Fix: Confirm the version is Ready for Distribution, check the storefront in the table above, upload localized screenshots, and look again a day later.

Name already in use in a locale: App Store Connect won't accept the localized app name

Why: Apple allows an app name for one app per localization, and another app, yours or someone else's, already holds it in that language.

Fix: If it's yours, rename that app with an update or remove its record. If you own the trademark, submit a claim through Apple's app name notice form. Otherwise add a descriptor: "Loopday: Habit Tracker" instead of "Loopday".

08 · With an AI agent

Do it from Claude Code, Codex, Cursor or Xcode with MetaRun

An App Store listing is two sets of text per language. Name, subtitle and the privacy URL live on App Information. Description, keywords, What's New, promotional text and the support URL live on the version. Adding a language in App Store Connect means filling both, in the right places, inside limits that are counted differently per field.

Your agent handles the writing. MetaRun reads every language that exists, checks each field's limit before staging, adds languages that don't exist yet, and keeps a coverage map so a half-done job is visible.

Before you start

  • An editable version, so the version's text can change.
  • App Information open for edits if you're changing name or subtitle; apple_get_listing_editability says whether it is.
  • A list of target languages, or ask your agent which ones your storefronts index.

How the agent runs it

  1. 01

    Read the listing as it is

    Your agent reads both text surfaces for every existing language, plus Apple's list of supported languages.

  2. 02

    Write within the limits

    Name and subtitle get 30 characters each, keywords 100, the description 4,000. The agent writes; MetaRun refuses anything over a limit at preview, with the count.

  3. 03

    Stage per language

    Each language becomes one or two previews (App Information and the version). New languages are created by the apply, no separate add step.

  4. 04

    Close the gaps

    Listing coverage shows which fields are still empty in which languages, so your agent can finish the job instead of reporting it done early.

An example session

Localize com.example.app's listing into German, Japanese and Brazilian Portuguese. Keep the name, translate subtitle, description and keywords.

  1. apple_list_supported_localesGerman, Japanese and Portuguese (Brazil) are supported and not on the listing yet.
  2. apple_preview_set_app_info_localizationPreview: add German. Name 22 of 30 characters, subtitle 29 of 30.
  3. apple_preview_set_version_localizationPreview: German description and keywords, 97 of 100 characters.
  4. Your agent asks before running apple_apply_set_app_info_localization. You read the preview above and approve.
  5. apple_apply_set_app_info_localizationGerman added. Apple created its other localization rows.
  6. Your agent asks before running apple_apply_set_version_localization. You read the preview above and approve.
  7. apple_apply_set_version_localizationApplied.
  8. apple_get_listing_coverageGerman complete. Japanese and Portuguese (Brazil) still to do.

Illustrative: your apps, versions and numbers will differ. The tool names and their order are real.

The MetaRun tools involved

ToolWhat it does
apple_list_supported_localesreadEvery listing language Apple supports, with its code.
apple_list_app_metadatareadName, subtitle and privacy URLs per language.
apple_list_version_localizationsreadDescription, keywords, What's New and promotional text per language.
apple_preview_set_app_info_localizationpreview + applyStage name and subtitle for a language, adding the language if needed.
apple_preview_set_version_localizationpreview + applyStage description, keywords and the rest of the version text.
apple_get_listing_coveragereadWhat's filled and what's empty, per language and field.
aso_cross_locale_planreadWhich extra languages each storefront indexes, and the keyword room they add.
aso_lint_metadatareadRulebook check on the copy before it's staged.

Each preview has an apply twin that only runs with the confirm token from a fresh preview, and refuses if App Store Connect changed in between.

What Apple enforces along the way

Two surfaces, two edit windows

Name and subtitle sit on App Information; the rest sits on the version. Apple locks each at different times, and apple_get_listing_editability says which is open right now.

Storefronts index more than one language

The US storefront indexes nine extra listing languages besides English (U.S.). Each adds a 30-character name, 30-character subtitle and 100-character keyword field Apple searches in that storefront, which aso_cross_locale_plan maps out.

Keywords are 100 characters, commas included

Spaces after commas waste characters, and words already in your name or subtitle are indexed anyway. The lint flags both.

A new language fills its own blanks

Adding a language makes Apple create that language's other localization rows. MetaRun keys the confirm token on the language rather than Apple's row id, so the second half of your change doesn't fail as drift.

Set up your agent

Connect once, then ask in plain words. Pick your agent:

Claude Code Anthropic

Run claude mcp add --transport http --scope user metarun https://metarun.dev/api/mcp, then run /mcp in Claude Code and sign in to MetaRun in your browser.

01 · Add the server

Run it in any terminal. --scope user makes MetaRun available in every project; leave it out to limit it to the current one.

claude mcp add --transport http --scope user metarun https://metarun.dev/api/mcp

02 · Sign in

In a Claude Code session, run /mcp, choose metarun and authenticate. MetaRun opens in your browser, where you pick read-only or read and change. From a plain shell, claude mcp login metarun does the same.

/mcp

03 · Optional: add the skills too

The MetaRun plug-in bundles the same server with six mission skills (release handoff, worldwide pricing, localization, review inbox, ASO audit, store media).

claude plugin marketplace add metarun/metarun-skills
claude plugin install metarun-skills@metarun

Then ask Claude Code

  • Ask Claude Code: Localize com.example.app's listing into German, Japanese and Brazilian Portuguese. Keep the name, translate subtitle, description and keywords.
  • Ask Claude Code: Read Localizable.xcstrings for the terms we already use in-app and keep the listing consistent with them.
  • Ask Claude Code: Show me the coverage map. Which languages are missing keywords?

claude -p runs one request with no interactive session. The browser sign-in can't complete inside -p, so sign in once interactively first, or configure the server with a personal access token in CI. Tools missing from --allowedTools are refused in -p mode.

Read-only check, safe to schedule

claude -p "Report the listing coverage for com.example.app: every language and which fields are empty. Read only." \
  --allowedTools "mcp__metarun__apple_list_supported_locales,mcp__metarun__apple_list_app_metadata,mcp__metarun__apple_list_version_localizations,mcp__metarun__apple_preview_set_app_info_localization,mcp__metarun__apple_preview_set_version_localization,mcp__metarun__apple_get_listing_coverage,mcp__metarun__aso_cross_locale_plan,mcp__metarun__aso_lint_metadata"

Only reads and previews are on that list, so nothing can reach App Store Connect unattended. Run applies in an interactive session where Claude Code can ask you.

Full Claude Code setup guide

Codex OpenAI

Run codex mcp add metarun --url https://metarun.dev/api/mcp; Codex detects MetaRun's sign-in and opens it in your browser.

01 · Add the server

Codex sees that MetaRun offers sign-in and starts it straight away, in your browser. Pick read-only or read and change.

codex mcp add metarun --url https://metarun.dev/api/mcp

02 · Sign in again later

If the sign-in expires or you disconnected it in MetaRun's settings. --no-browser prints the link instead, for SSH sessions.

codex mcp login metarun

03 · Or edit ~/.codex/config.toml

The Codex CLI, the IDE extension and Codex in the ChatGPT desktop app read the same file, so one entry covers all three.

[mcp_servers.metarun]
url = "https://metarun.dev/api/mcp"

Then ask Codex

  • Ask Codex: Localize com.example.app's listing into German, Japanese and Brazilian Portuguese. Keep the name, translate subtitle, description and keywords.
  • Ask Codex: Read Localizable.xcstrings for the terms we already use in-app and keep the listing consistent with them.
  • Ask Codex: Show me the coverage map. Which languages are missing keywords?

codex exec runs one request without an interactive session and with its approval policy set to never. MetaRun's reads and previews still run, because they're marked read-only; anything that would ask is refused.

Read-only check, safe to schedule

codex exec "Report the listing coverage for com.example.app: every language and which fields are empty. Read only."

Applies are refused in codex exec by design. Don't set MetaRun's approval mode to approve just to make them pass; keep App Store changes in an interactive session.

Full Codex setup guide

Cursor Anysphere

Add https://metarun.dev/api/mcp to ~/.cursor/mcp.json (or use the install link) and sign in to MetaRun when Cursor opens your browser.

01 · Add to ~/.cursor/mcp.json (or .cursor/mcp.json for one project)

{
  "mcpServers": {
    "metarun": {
      "url": "https://metarun.dev/api/mcp"
    }
  }
}

02 · Or use the install link

Opens Cursor with the server filled in.

https://cursor.com/link/mcp/install?name=metarun&config=eyJ1cmwiOiJodHRwczovL21ldGFydW4uZGV2L2FwaS9tY3AifQ%3D%3D

03 · Sign in

When Cursor connects, MetaRun opens in your browser. Pick read-only or read and change, and you're back in the editor with the tools listed under MCP.

Then ask Cursor

  • Ask Cursor: Translate the listing into Spanish (Mexico) and Spanish (Spain), with different keywords for each.
  • Ask Cursor: Use the glossary in @docs/glossary.md for every language.
  • Ask Cursor: Fill keywords for the extra languages the US storefront indexes. No repeats.

The Cursor CLI runs one request without the editor with agent -p. Allow only the read tools the request needs in ~/.cursor/cli-config.json (Mcp(metarun:tool_name) rules), and keep MetaRun's apply tools out of that list.

Read-only check, safe to schedule

agent -p "Report the listing coverage for com.example.app: every language and which fields are empty. Read only." --output-format json

Don't run it with --force for MetaRun: that approves every tool, applies included.

Full Cursor setup guide

Xcode Apple

In Xcode 27, add the plug-in from https://github.com/metarun/metarun-skills (Settings, Intelligence, Plug-ins, Add from URL) and click Sign in next to MetaRun.

01 · Add the MetaRun plug-in

In Xcode 27, open Settings, Intelligence, Plug-ins. Choose Add Plug-in, then Add from URL, and paste:

https://github.com/metarun/metarun-skills

02 · Or with one click

Opens Xcode's plug-in sheet with the repository filled in.

xcode://agent-plugin-clone?repo=https%3A%2F%2Fgithub.com%2Fmetarun%2Fmetarun-skills

03 · Sign in

Install MetaRun from the list, then click Sign in next to it. MetaRun opens in your browser; pick read-only or read and change.

04 · Ask the coding assistant

Claude Agent, Codex and Gemini in Xcode all get MetaRun's tools and its six workflow skills.

Attach build 312 to version 2.4 and tell me what blocks submission.

Then ask Xcode

  • Ask Xcode: The app ships in 12 languages. Make the App Store listing match those 12.
  • Ask Xcode: Pull the terms from our string catalog and use them in the Japanese listing.
  • Ask Xcode: Which App Store languages are we missing compared to the app's own localizations?

Full Xcode setup guide

Claude Anthropic

In Claude, open Customize, Connectors, Add custom connector, paste https://metarun.dev/api/mcp and click Connect to sign in to MetaRun.

01 · Add a custom connector

In Claude, open Customize, then Connectors, and choose Add custom connector. Name it MetaRun and paste the server URL:

https://metarun.dev/api/mcp

02 · Connect

Click Connect. Claude opens MetaRun in your browser to sign in; pick read-only or read and change.

03 · Team and Enterprise

An Owner adds the connector once under Organization settings, Connectors. Each member then clicks Connect and signs in to their own MetaRun account.

Then ask Claude

  • Ask Claude: Translate my App Store listing into French, Italian and German.
  • Ask Claude: My Japanese subtitle is too long. Fix it and show me the change.
  • Ask Claude: Which languages does my listing have?

Full Claude setup guide

Apple key stays on MetaRun, encryptedPreview before every writeRecorded, revertible from history
09 · FAQ

Frequently asked questions

Which languages does the App Store support?

50 for listing metadata, listed above with their codes, including four English variants (U.S., U.K., Australia, Canada) and two each of Spanish, Portuguese, French and Chinese.

How many languages does the App Store have?

50 metadata languages across 175 storefronts, counting the 11 Apple added on March 31, 2026. The languages your app's interface supports are a separate list that comes from your Xcode project.

How do I add a language in App Store Connect?

On an editable version, click the primary language at the top right and add the language under Not Localized. The full steps are above.

How do I change the primary language in App Store Connect?

Choose it in the Primary Language menu under App Information. It has to be a language you've already shipped and had approved, with approved screenshots in your current primary language's sizes.

Is there an App Store localization languages list with API codes?

Yes, the first table above. In the App Store Connect API, name and subtitle live on appInfoLocalizations and the rest on appStoreVersionLocalizations, keyed by codes such as es-MX. Creating an appInfoLocalization without a name is rejected.

Do I have to translate the app before I localize the App Store listing?

No. Listing languages are metadata, separate from the languages in your binary. The product page still lists the languages the app supports, so a German listing for an English-only app should say so.

How many languages can your agent add?

Any of the languages Apple supports for listings. apple_list_supported_locales returns the current list with codes, and each language is staged as its own change.

Does MetaRun translate, or does your agent?

Your agent writes the translations. MetaRun makes them land correctly: the right field, the right surface, inside Apple's limits, with a preview per language.

Can it localize keywords, not just translate them?

Yes, and it should. Direct translations of keywords often miss what people search for. Pair it with aso_suggest_keywords, which reads App Store autocomplete in that storefront.

What if I don't like one language?

Skip it at approval, or ask your agent to redo it. After applying, every change is in your history and can be reverted from there.

10 · Sources

Sources

Related guides

Guide

App Store keywords

The 100-character keyword field: Apple's rules, a worked example, per-language fields, and how to research and measure keywords.

Guide

Release notes

What's New and promotional text: the limits, when each one locks, examples for every kind of update, and what App Review rejects.

Guide

Screenshot sizes

Every iPhone and iPad screenshot size in pixels, which ones are required, app preview specs and upload errors.

Guide

Submit for review

The pre-submission checklist, every review status, export compliance, rejections and expedites.

All guides

Every App Store Connect guide

Releases, TestFlight, pricing, subscriptions, localization, screenshots and more.

With MetaRun: Listing translation

MetaRun

Do this from your AI agent or MetaRun's dashboard, with a preview before every change. 14-day free trial, no card.