asc-build-lifecycle — Claude Code skill: App Store builds
A skill that hands the agent the asc commands for App Store Connect builds: latest build, processing state, next build number, old build cleanup.
npx skills add rorkai/app-store-connect-cli-skills --skill asc-build-lifecycle -a claude-codeWhat asc-build-lifecycle does
This skill packages the asc build commands an agent needs when a release stalls at the upload step. It looks up the latest build for an app, version and platform, reads the processing state by build-id, and lists recent uploads sorted by date. One recipe computes the next safe build number: the command walks the processed builds and in-flight uploads, then returns one above the highest positive number. Blank or non-numeric numbers get skipped with a warning, and if nothing usable remains it falls back to --initial-build-number.
The recipes are plain CLI calls: asc builds info --app "APP_ID" --latest --version "1.2.3" --platform IOS, asc builds list --app "APP_ID" --sort -uploadedDate --limit 10, asc builds info --build-id "BUILD_ID". For a full run the skill points at asc publish testflight with --wait or asc publish appstore with --submit --confirm, while asc builds upload stays for the case where you only need the IPA or PKG committed and no distribution. Long queues can be waited out with --poll-interval and --timeout where the command supports them.
Cleanup runs in two passes: asc builds expire-all --app "APP_ID" --older-than 90d --dry-run, then the same call with --confirm. The first changes nothing and the second applies the expiration, so read the dry-run list before you add --confirm. A single build goes through asc builds expire --build-id "BUILD_ID" --confirm.
What it helps with
- find the latest build for a given version and platform
- check whether a build finished processing by
build-id - compute the next free build number before an upload
- expire builds older than 90 days after a dry run
- push an IPA to TestFlight and wait for processing in one command
Example prompts for the agent
- Find the latest build of
APP_IDfor version 1.2.3 on iOS withascand tell me if it finished processing. - Get the next build number for 1.2.3 and show me which numbers were skipped.
- Dry-run the expiry for builds older than 90 days and show me the list first.
How to install asc-build-lifecycle
1Skills CLI (Vercel)
npx skills add rorkai/app-store-connect-cli-skills --skill asc-build-lifecycle -a claude-code2Manually: put the files in place
~/.claude/skills/asc-build-lifecycle/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/asc-build-lifecycle/
1Skills CLI (Vercel)
npx skills add rorkai/app-store-connect-cli-skills --skill asc-build-lifecycle -a codex2Manually: put the files in place
.agents/skills/asc-build-lifecycle/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add rorkai/app-store-connect-cli-skills --skill asc-build-lifecycle -a cursor2Manually: put the files in place
.cursor/skills/asc-build-lifecycle/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install rorkai/app-store-connect-cli-skills asc-build-lifecycle2Manually: put the files in place
.github/skills/asc-build-lifecycle/SKILL.md1Skills CLI (Vercel)
npx skills add rorkai/app-store-connect-cli-skills --skill asc-build-lifecycle -a gemini-cli2Platform CLI
gemini skills install https://github.com/rorkai/app-store-connect-cli-skills --path skills/asc-build-lifecycleManually: put the files in place
.devin/skills/asc-build-lifecycle/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add rorkai/app-store-connect-cli-skills --skill asc-build-lifecycle -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-build-lifecycle
How do I install asc-build-lifecycle in Claude Code?
Run npx skills add rorkai/app-store-connect-cli-skills --skill asc-build-lifecycle -a claude-code. The skill lands at ~/.claude/skills/asc-build-lifecycle/SKILL.md.
What does asc-build-lifecycle do?
It covers the build side of App Store Connect through the asc CLI: latest build lookup, processing checks, next build number, and expiry of old builds.
What happens when no numeric build numbers are found?
Blank and non-numeric numbers are skipped with a warning, and once no usable number remains the command uses the value from --initial-build-number.
Source text
SKILL.md · MIT
--- name: asc-build-lifecycle description: Track build processing, find latest builds, and clean up old builds with asc. Use when managing build retention or waiting on processing. --- # asc build lifecycle Use this skill to manage build state, processing, and retention. ## Find the right build - Latest build: - `asc builds info --app "APP_ID" --latest --version "1.2.3" --platform IOS` - Next safe build number: - `asc builds next-build-number --app "APP_ID" --version "1.2.3" --platform IOS` - The command scans the full processed-build history and in-flight uploads, then returns one greater than the highest positive numeric build number. Blank or non-numeric processed build numbers are skipped with a warning; if no usable number remains, it falls back to `--initial-build-number`. - Recent builds: - `asc builds list --app "APP_ID" --sort -uploadedDate --limit 10` ## Inspect processing state - `asc builds info --build-id "BUILD_ID"` ## Distribution flows - Prefer end-to-end: - `asc publish testflight --app "APP_ID" --ipa "./app.ipa" --group "GROUP_ID" --wait` - `asc publish appstore --app "APP_ID" --ipa "./app.ipa" --version "1.2.3" --wait --submit --confirm` ## Cleanup - Preview expiration: - `asc builds expire-all --app "APP_ID" --older-than 90d --dry-run` - Apply expiration: - `asc builds expire-all --app "APP_ID" --older-than 90d --confirm` - Single build: - `asc builds expire --build-id "BUILD_ID" --confirm` ## Notes - `asc builds upload` uploads and commits an IPA or PKG. Use `asc publish` when the workflow must also distribute to TestFlight or stage an App Store release. - For long processing times, use `--wait`, `--poll-interval`, and `--timeout` where supported.
© rorkai · MIT · rorkai/app-store-connect-cli-skills