asc-id-resolver — Claude Code skill: App Store Connect IDs from names
Turns human-friendly app, build and tester names into the IDs that asc commands expect. Handy when you only have a name to work with.
npx skills add rorkai/app-store-connect-cli-skills --skill asc-id-resolver -a claude-codeWhat asc-id-resolver does
The skill maps names to IDs through the asc CLI. Apps are looked up by --bundle-id or --name, and --paginate pulls the whole list. Once you have an ID, ASC_APP_ID saves you from repeating it in every command.
Builds work two ways: grab the latest with asc builds info --latest, or list recent ones sorted by upload date. When a build is only needed for attaching or submitting, skip the lookup entirely — asc versions attach-build and asc review submit take --app, --version and --build-number directly.
Digital goods get their own section. IAP, subscription and subscription-group version IDs are not the same as the product IDs, so the skill resolves the owning resource first, then its version, then localizations and images. It advises --paginate on list commands, otherwise some IDs never show up in the output. Default output is TTY-aware: a table in a terminal, minified JSON in pipes or CI.
What it helps with
- find an app ID from its bundle ID
- get the latest build ID for a version
- attach a build without looking up its ID
- tell an IAP version ID apart from the product ID
- list TestFlight testers for an app
Example prompts for the agent
- Find the app ID for bundle ID com.example.app
- Show the latest build for version 1.2.3 on iOS and its ID
- List TestFlight groups as JSON
How to install asc-id-resolver
1Skills CLI (Vercel)
npx skills add rorkai/app-store-connect-cli-skills --skill asc-id-resolver -a claude-code2Manually: put the files in place
~/.claude/skills/asc-id-resolver/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/asc-id-resolver/
1Skills CLI (Vercel)
npx skills add rorkai/app-store-connect-cli-skills --skill asc-id-resolver -a codex2Manually: put the files in place
.agents/skills/asc-id-resolver/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add rorkai/app-store-connect-cli-skills --skill asc-id-resolver -a cursor2Manually: put the files in place
.cursor/skills/asc-id-resolver/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install rorkai/app-store-connect-cli-skills asc-id-resolver2Manually: put the files in place
.github/skills/asc-id-resolver/SKILL.md1Skills CLI (Vercel)
npx skills add rorkai/app-store-connect-cli-skills --skill asc-id-resolver -a gemini-cli2Platform CLI
gemini skills install https://github.com/rorkai/app-store-connect-cli-skills --path skills/asc-id-resolverManually: put the files in place
.devin/skills/asc-id-resolver/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add rorkai/app-store-connect-cli-skills --skill asc-id-resolver -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about asc-id-resolver
How do I install asc-id-resolver in Claude?
Run npx skills add rorkai/app-store-connect-cli-skills --skill asc-id-resolver -a claude-code. The skill file lands at ~/.claude/skills/asc-id-resolver/SKILL.md.
What does asc-id-resolver do?
It shows the asc commands that turn app, build, version, group and tester names into their IDs. Use it when another command needs an ID and you only have a name.
How is a digital-goods version ID different from the product ID?
They are separate values. The owning resource — IAP, subscription or subscription group — is resolved first, then its version in a second command.
Source text
SKILL.md · MIT
--- name: asc-id-resolver description: Resolve App Store Connect IDs (apps, builds, app and digital-goods versions, groups, testers) from human-friendly names using asc. Use when commands require IDs. --- # asc id resolver Use this skill to map names to IDs needed by other commands. ## App ID - By bundle ID or name: - `asc apps list --bundle-id "com.example.app"` - `asc apps list --name "My App"` - Fetch everything: - `asc apps list --paginate` - Set default: - `ASC_APP_ID=...` ## Build ID - Latest build: - `asc builds info --app "APP_ID" --latest --version "1.2.3" --platform IOS` - Recent builds: - `asc builds list --app "APP_ID" --sort -uploadedDate --limit 5` - Skip the lookup when attaching or submitting: `asc versions attach-build` and `asc review submit` accept `--app`, `--version`, and `--build-number "45"`. ## Version ID - `asc versions list --app "APP_ID" --paginate` ## Digital-goods version IDs API 4.4.1 version IDs are distinct from IAP product, subscription, and subscription-group IDs: Resolve the owning resources first: - IAPs: `asc iap list --app "APP_ID" --paginate --output json` - Subscription groups: `asc subscriptions groups list --app "APP_ID" --paginate --output json` - Subscriptions: `asc subscriptions list --app "APP_ID" --paginate --output json` or `asc subscriptions list --group-id "GROUP_ID" --paginate --output json` Then resolve their version IDs: - IAP versions: `asc iap versions list --iap-id "IAP_ID" --paginate --output json` - Subscription versions: `asc subscriptions versions list --subscription-id "SUB_ID" --paginate --output json` - Subscription group versions: `asc subscriptions groups versions list --group-id "GROUP_ID" --paginate --output json` Resolve child localization or image IDs from the corresponding version subtree: - IAP localizations: `asc iap versions localizations list --version-id "VERSION_ID" --paginate --output json` - IAP primary image: `asc iap versions image --version-id "VERSION_ID" --output json` - IAP image collection: `asc iap versions images list --version-id "VERSION_ID" --paginate --output json` - Subscription localizations: `asc subscriptions versions localizations list --version-id "VERSION_ID" --paginate --output json` - Subscription primary image: `asc subscriptions versions images primary --version-id "VERSION_ID" --output json` - Subscription image collection: `asc subscriptions versions images list --version-id "VERSION_ID" --paginate --output json` - Subscription-group localizations: `asc subscriptions groups versions localizations list --version-id "VERSION_ID" --paginate --output json` ## TestFlight IDs - Groups: - `asc testflight groups list --app "APP_ID" --paginate` - Testers: - `asc testflight testers list --app "APP_ID" --paginate` ## Pre-release version IDs - `asc testflight pre-release list --app "APP_ID" --platform IOS --paginate` ## Review submission IDs - `asc review submissions list --app "APP_ID" --paginate` ## Output tips - Output defaults are TTY-aware: table in a terminal and minified JSON in pipes or CI. An explicit `--output` wins. - Use explicit `--output json` for automation and add `--pretty` only for human-readable JSON. - For human viewing, use `--output table` or `--output markdown`. ## Guardrails - Prefer `--paginate` on list commands to avoid missing IDs. - Use `--sort` where available to make results deterministic.
© rorkai · MIT · rorkai/app-store-connect-cli-skills