asc-builds-upload
Original:🇺🇸 English
Translated
Upload IPA/PKG builds to App Store Connect and manage the full build distribution workflow. Use this skill when: (1) Uploading a build: "asc builds upload --app-id ... --file MyApp.ipa ..." (2) Checking or listing build upload records: "asc builds uploads list/get/delete" (3) Linking a build to an App Store version before submission: "asc versions set-build" (4) Adding or removing a beta group from a build for TestFlight distribution (5) Setting TestFlight "What's New" notes: "asc builds update-beta-notes" (6) User says "upload my build", "distribute to TestFlight", "set what's new", "link build to version"
2installs
Sourcetddworks/asc-cli-skills
Added on
NPX Install
npx skill4agent add tddworks/asc-cli-skills asc-builds-uploadTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →asc Builds Upload
Upload and distribute builds via App Store Connect. See workflow.md for the full end-to-end flow and error handling.
Commands
Upload a build
bash
asc builds upload \
--app-id <APP_ID> \
--file MyApp.ipa \
--version 1.0.0 \
--build-number 42 \
[--platform ios|macos|tvos|visionos] # auto-detected from extension
[--wait] # poll until processing completesPlatform is auto-detected: → , everything else → .
.pkgmacosiosPoll status
bash
asc builds uploads get --upload-id <UPLOAD_ID>
asc builds uploads list --app-id <APP_ID>
asc builds uploads delete --upload-id <UPLOAD_ID>TestFlight distribution
bash
# Add build to a beta group
asc builds add-beta-group --build-id <BUILD_ID> --beta-group-id <GROUP_ID>
# Remove build from a beta group
asc builds remove-beta-group --build-id <BUILD_ID> --beta-group-id <GROUP_ID>
# Set "What's New" notes (creates or updates the localization)
asc builds update-beta-notes \
--build-id <BUILD_ID> \
--locale en-US \
--notes "Bug fixes and improvements."Link build to version
bash
asc versions set-build --version-id <VERSION_ID> --build-id <BUILD_ID>Required before submitting a version for App Store review.
Resolve App ID
See project-context.md — check before asking the user or running .
.asc/project.jsonasc apps listTypical Workflow
bash
APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')
# If empty: ask user or run `asc apps list | jq -r '.data[0].id'`
# 1. Upload and wait
asc builds upload --app-id "$APP_ID" --file MyApp.ipa \
--version 1.2.0 --build-number 55 --wait
# 2. Get the processed build ID
BUILD_ID=$(asc builds list --app-id $APP_ID | jq -r '.data[0].id')
# 3. Distribute to beta group
asc builds add-beta-group --build-id $BUILD_ID --beta-group-id $GROUP_ID
# 4. Set notes
asc builds update-beta-notes --build-id $BUILD_ID --locale en-US --notes "..."
# 5. Link to version and submit
asc versions set-build --version-id $VERSION_ID --build-id $BUILD_ID
asc versions submit --version-id $VERSION_IDCAEOAS Affordances
Upload responses include with ready-to-run follow-up commands:
affordancesjson
{
"data": [{
"affordances": {
"checkStatus": "asc builds uploads get --upload-id abc123",
"listBuilds": "asc builds list --app-id 123456789"
},
"state": "COMPLETE"
}]
}listBuildsstate == "COMPLETE"Reference
See workflow.md for:
- Full 5-step upload API flow internals
- Build upload states and polling logic
- Error scenarios and troubleshooting