본문으로 건너뛰기
cccskills
무료GitHub에 공개

asc-subscription-localization

Bulk-localize subscription and in-app purchase display names across all App Store locales using asc. Use when you want to fill in subscription/IAP names for every language without clicking through App Store Connect manually.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md9.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

asc subscription localization

Use this skill to bulk-create or bulk-update display names (and descriptions) for subscriptions, subscription groups, and in-app purchases across all App Store Connect locales. This eliminates the tedious manual process of clicking through each language in App Store Connect to set the same display name.

Preconditions

  • Auth configured (asc auth login or ASC_* env vars).
  • Know your app ID (ASC_APP_ID or --app).
  • Subscription groups and subscriptions already exist.

Supported App Store Locales

These are the locales supported by App Store Connect for subscription and IAP localizations:

ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US,
es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it,
ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk,
sv, th, tr, uk, vi, zh-Hans, zh-Hant

Workflow: Bulk-Localize a Subscription

1. Resolve IDs

# Find subscription groups
asc subscriptions groups list --app "APP_ID" --output table

# Find subscriptions within a group
asc subscriptions list --group-id "GROUP_ID" --output table

2. Check existing localizations

asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output table

This shows which locales already have a name set. Only create localizations for missing locales.

3. Create localizations for all missing locales

For each locale that does not already have a localization, run:

asc subscriptions localizations create \
  --subscription-id "SUB_ID" \
  --locale "LOCALE" \
  --name "Display Name"

For example, to set "Monthly Pro" across all locales:

# One command per locale (skip any that already exist)
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ar-SA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ca" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "cs" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "da" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "de-DE" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "el" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-AU" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-CA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-GB" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "es-ES" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "es-MX" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fr-CA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fr-FR" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "he" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hr" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hu" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "id" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "it" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ja" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ko" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ms" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "nl-NL" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "no" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pl" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pt-BR" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pt-PT" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ro" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ru" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "sk" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "sv" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "th" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "tr" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "uk" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "vi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "zh-Hans" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "zh-Hant" --name "Monthly Pro"

4. Verify

asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output table

Workflow: Bulk-Localize a Subscription Group

Subscription groups also have their own display name per locale (this is the "group name" shown to users in the subscription management sheet).

1. Check existing group localizations

asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output table

2. Create for missing locales

asc subscriptions groups localizations create \
  --group-id "GROUP_ID" \
  --locale "LOCALE" \
  --name "Group Display Name"

Optional: set a custom app name for the group:

asc subscriptions groups localizations create \
  --group-id "GROUP_ID" \
  --locale "LOCALE" \
  --name "Group Display Name" \
  --custom-app-name "My App"

3. Verify

asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output table

Workflow: Bulk-Localize an In-App Purchase

IAPs have their own localization commands with the same pattern.

1. Resolve IAP ID

asc iap list --app "APP_ID" --output table

2. Check existing localizations

asc iap localizations list --iap-id "IAP_ID" --paginate --output table

3. Create for missing locales

asc iap localizations create \
  --iap-id "IAP_ID" \
  --locale "LOCALE" \
  --name "Display Name"

Optional description:

asc iap localizations create \
  --iap-id "IAP_ID" \
  --locale "LOCALE" \
  --name "Unlock All Features" \
  --description "One-time purchase to unlock all premium features"

4. Verify

asc iap localizations list --iap-id "IAP_ID" --paginate --output table

Updating Existing Localizations

To change the display name for existing localizations:

Subscriptions

asc subscriptions localizations update --id "LOC_ID" --name "New Name"

Subscription Groups

asc subscriptions groups localizations update --id "LOC_ID" --name "New Group Name"

In-App Purchases

asc iap localizations update --localization-id "LOC_ID" --name "New Name"

To bulk-update, list existing localizations first, extract the IDs, then update each one.

Bulk-Localize All Subscriptions in an App

For a full app with multiple subscription groups and subscriptions:

# 1. List all groups
asc subscriptions groups list --app "APP_ID" --paginate

# 2. For each group, localize the group itself
#    (repeat group localization workflow above)

# 3. For each group, list subscriptions
asc subscriptions list --group-id "GROUP_ID" --paginate

# 4. For each subscription, localize it
#    (repeat subscription localization workflow above)

Agent Behavior

  • Always list existing localizations first to avoid duplicate creation errors.
  • Skip locales that already have a localization; only create missing ones.
  • When the user provides a single display name, use it for all locales (same name everywhere).
  • When the user provides translated names per locale, use the locale-specific name for each.
  • If a description is provided, pass --description on create. Otherwise omit it.
  • Use --output table for verification steps so the user can visually confirm.
  • Use default JSON output for intermediate automation steps.
  • After bulk creation, always run the list command to verify completeness.
  • For apps with many subscriptions, process them sequentially per group to keep output readable.
  • If a create call fails for a locale, log the locale and error, then continue with the remaining locales. After the batch completes, report all failures together so the user can address them.

Notes

  • Subscription display names are what users see on the subscription management sheet and in purchase dialogs.
  • Creating a localization for a locale that already exists will fail; always check first.
  • There is no bulk API; each locale requires a separate create call.
  • Use --paginate on list commands to ensure all existing localizations are returned.
  • Use the asc-id-resolver skill if you only have app names instead of IDs.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Create a new App Store Connect app record via browser automation. Use when there is no public API for app creation and you need an agent to drive the New App form.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

omega-bred/bluebubbles-chatgpt-agent82026년 10월 20일 업데이트

Run an offline ASO audit on canonical App Store metadata under `./metadata` and surface keyword gaps using Astro MCP. Use after pulling metadata with `asc metadata pull`.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

omega-bred/bluebubbles-chatgpt-agent82026년 10월 20일 업데이트

Track build processing, find latest builds, and clean up old builds with asc. Use when managing build retention or waiting on processing.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

omega-bred/bluebubbles-chatgpt-agent82026년 10월 20일 업데이트

Guidance for using asc cli in this repo (flags, output formats, pagination, auth, and discovery). Use when asked to run or design asc commands or interact with App Store Connect via the CLI.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

omega-bred/bluebubbles-chatgpt-agent82026년 10월 20일 업데이트

Triage TestFlight crashes, beta feedback, and performance diagnostics using asc. Use when the user asks about TF crashes, TestFlight crash reports, beta tester feedback, app hangs, disk writes, launch diagnostics, or wants a crash summary for a build or app.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

omega-bred/bluebubbles-chatgpt-agent82026년 10월 20일 업데이트

Resolve App Store Connect IDs (apps, builds, versions, groups, testers) from human-friendly names using asc. Use when commands require IDs.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

omega-bred/bluebubbles-chatgpt-agent82026년 10월 20일 업데이트

omega-bred의 스킬 모두 보기

이 스킬의 문제 신고