
Asc Build Lifecycle
Track iOS build processing, resolve build numbers, publish to TestFlight or App Store, and expire stale builds with the asc CLI.
Overview
asc-build-lifecycle is an agent skill most often used in Ship (also Launch distribution, Operate retention) that manages App Store Connect build state, publishing, and expiration via asc.
Install
npx skills add https://github.com/rorkai/app-store-connect-cli-skills --skill asc-build-lifecycleWhat is this skill?
- Resolve latest build, next safe build number, and recent uploads per app, version, and IOS platform
- Inspect processing state on a specific BUILD_ID before promoting
- End-to-end publish flows with --wait for TestFlight groups and App Store submit
- Retention preview and apply: expire-all by age or single build with dry-run and confirm
- Notes that builds upload prepares operations while asc publish owns full pipelines
Adoption & trust: 651 installs on skills.sh; 845 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You uploaded an iOS build but do not know if processing finished, which build number is safe next, or how to expire old TestFlight binaries without breaking a live submission.
Who is it for?
Indie iOS developers automating TestFlight and App Store steps from the terminal with APP_ID, version, and IPA paths already known.
Skip if: Android-only releases or teams without asc credentials and app identifiers configured.
When should I use this skill?
Managing build retention or waiting on processing with asc.
What do I get? / Deliverables
You query, wait on, publish, and retire builds with documented asc commands—including dry-run before bulk expiration.
- Identified latest or target build metadata
- Published TestFlight or App Store submission when using publish flows
- Expired stale builds per retention policy
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Build upload and processing gates sit in Ship before users see a release; this skill is the canonical shelf for that operational handoff. Launch subphase covers distribution commands—publish testflight, publish appstore, and retention cleanup—not day-one coding.
Where it fits
Poll asc builds info --latest after upload until processing completes before inviting testers.
Run asc publish testflight with --wait to push an IPA to a beta group without leaving the terminal.
Use asc publish appstore with --submit and --confirm when version 1.2.3 is ready for review after build validation.
Dry-run asc builds expire-all --older-than 90d then confirm to reclaim Connect build slots.
How it compares
CLI lifecycle skill for asc—not a replacement for Xcode archive or fastlane lanes unless you standardize on asc publish end-to-end.
Common Questions / FAQ
Who is asc-build-lifecycle for?
Solo builders shipping iOS apps who want asc commands for build lookup, TestFlight publish, App Store submit, and retention instead of manual Connect UI steps.
When should I use asc-build-lifecycle?
In Ship launch prep while waiting on processing; at Launch when pushing to TestFlight or store submit; in Operate when expiring builds older than a policy window.
Is asc-build-lifecycle safe to install?
Commands can expire builds and submit store versions when confirmed; review the Security Audits panel on this page and prefer --dry-run before destructive flags.
SKILL.md
READMESKILL.md - Asc Build Lifecycle
# 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` - 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` prepares upload operations only; use `asc publish` for end-to-end flows. - For long processing times, use `--wait`, `--poll-interval`, and `--timeout` where supported.