Xcode · App Store Connect

Write What's New in every language with Xcode

Xcode already knows what changed in this release. Ask it to turn that into What's New, translate it, and stage it for every language on your listing. MetaRun holds each one to Apple's limits and shows the before and after per language.

01 · Uplink

Connect Xcode once

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.
02 · Briefing

What Xcode handles here

Release notes are the last thing anyone writes. By then the version is ready, the build is processed, and twelve languages still say last month's text. Copying translations into App Store Connect one locale at a time takes longer than writing them.

Through MetaRun, Xcode writes and translates, and MetaRun does the parts that must be exact: it reads the live version, checks What's New against Apple's 4,000-character limit, stages one change per language, and reports which languages are still missing it.

03 · Preflight

Before you start

  • An update, not a first release: What's New only exists after the app has shipped once.
  • The version still editable (being prepared, ready for review, or rejected).
  • Something to work from: a changelog, the commit log, or your own notes.
04 · Execution

How it runs

  1. 01

    Gather what changed

    Xcode works from what it can see: your changelog, merged pull requests, the commit log since the last tag, or what you tell it.

  2. 02

    Read the version in every language

    MetaRun returns the version's localizations so the agent knows which languages exist and what they say now.

  3. 03

    Stage one change per language

    Each language gets its own preview with the old and new text. Anything over 4,000 characters is refused at preview, not by Apple after submission.

  4. 04

    Confirm coverage

    Before calling the job done, Xcode reads listing coverage, which lists any language still missing What's New.

05 · Session

An example session in Xcode

Write What's New for 2.4 based on the commits in this project since the 2.3 tag.

  1. apple_list_version_localizationsVersion 2.4 has 12 languages. What's New is empty in each.
  2. apple_preview_set_version_localizationPreview: English (U.S.) What's New, 412 of 4,000 characters.
  3. Xcode asks before running apple_apply_set_version_localization. You read the preview above and approve.
  4. apple_apply_set_version_localizationApplied for English (U.S.).
  5. apple_get_listing_coverage11 languages still missing What's New. Xcode continues with those.

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

06 · Tools

The MetaRun tools Xcode calls

ToolWhat it does
apple_list_version_localizationsreadEvery language on the version with its current What's New, description and keywords.
apple_preview_set_version_localizationpreview + applyStage What's New (or description, keywords, URLs) for one language.
apple_get_listing_coveragereadWhich languages are still missing which fields, so the job isn't declared done early.
apple_get_listing_editabilityreadWhether the version's text is editable right now.
aso_lint_metadatareadChecks copy against App Store rules before it's staged.
apple_preview_set_promotional_textpreview + applyThe 170-character line above the description that changes live, without review.
aso_schedule_promo_textMetaRunSchedule promotional text to switch at a set time, for example on launch day.

Each preview has an apply twin (the same name with apply instead of preview) that only runs with the confirm token from a fresh preview, and refuses if App Store Connect changed in between. MetaRun tools save to your MetaRun workspace only (studio projects, tracked keywords), never to Apple.

07 · Apple rules

What Apple enforces, and how MetaRun handles it

No What's New on a first version

Apple has no What's New field until the app has shipped once. The API rejects it and App Store Connect hides it, so MetaRun only asks for it on updates.

4,000 characters per language

What's New and the description each allow 4,000 characters. Promotional text allows 170 and is the only one of the three that changes without review.

Text locks once the version is in review

What's New is editable while the version is being prepared or after a rejection. apple_get_listing_editability tells the agent which fields are locked and why, instead of a write failing.

Adding a language creates rows Apple fills in

When a new language is added, Apple creates that language's other localization rows on its own. MetaRun's confirm token is keyed on the language, not Apple's row id, so your approved change doesn't fail as drift.

08 · Comms

What to ask Xcode

  • Ask Xcode: Write What's New for 2.4 based on the commits in this project since the 2.3 tag.
  • Ask Xcode: Translate the English What's New into Japanese, Korean and Simplified Chinese and stage them.
  • Ask Xcode: Schedule promotional text for launch day at 09:00 UTC.
09 · Safety

How Xcode asks before a change

Xcode asks before an agent uses a tool it hasn't been allowed. Tools you've allowed are listed in Settings, Intelligence, under Permissions, where you can remove them. Leave MetaRun's apply tools off that list so every App Store change asks first; reads and previews are safe to allow.

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

Frequently asked questions

Who writes the translations, Xcode or MetaRun?

Xcode does. MetaRun reads the live listing, checks the limits, and stages one change per language for you to approve. Translations through your own agent don't use MetaRun's AI translation budget.

Can Xcode update release notes after the app is live?

Not What's New: it locks with the version. Promotional text is the exception and changes the live listing immediately, so that's what to use for a post-launch message.

How many languages can it handle at once?

Every language on your listing. Each one is its own preview, so you can approve some and skip others.

Will it overwrite my description by accident?

Only fields the agent names are touched, and each preview shows the field's old and new text before anything is applied.

How do I connect Xcode to App Store Connect?

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. After that, ask for "release notes" in plain words and Xcode picks the MetaRun tools.

Does Xcode see my App Store Connect key?

No. Your App Store Connect API key stays envelope-encrypted on MetaRun's servers and is decrypted per request. Xcode holds a MetaRun token that you can revoke in Settings at any time.

More with Xcode

In depth: Listing translation

Agent access

14-day free trial with agent access. No credit card. Your Apple key stays encrypted on MetaRun.