asc-release-flow
kumaran-is/claude-code-onboarding/.claude/skills/asc-release-flow/SKILL.md
End-to-end release workflows for TestFlight and App Store using asc publish, builds, versions, and submit commands. Use when uploading a build to App Store Connect, distributing to TestFlight beta testers, submitting to App Store review, managing iOS/macOS/visionOS/tvOS releases, or running multi-platform releases. Triggers: "upload build", "distribute TestFlight", "submit to App Store", "asc publish", "release flow", "App Store submission", "TestFlight distribute", "upload IPA", "upload PKG".
What's in it
- Release flow (TestFlight and App Store)
- Iron Law
- Preconditions
- iOS Release
- Preferred end-to-end commands
- Manual sequence (when you need more control)
- macOS Release
- Build and Export
- Upload PKG
- Attach and Submit
- visionOS / tvOS Release
- Multi-Platform Release
- Pre-submission Checklist
- Notes
- Documentation Sources
Tools it asks for
- Bash
- Read
--- name: asc-release-flow description: End-to-end release workflows for TestFlight and App Store using asc publish, builds, versions, and submit commands. Use when uploading a build to App Store Connect, distributing to TestFlight beta testers, submitting to App Store review, managing iOS/macOS/visionOS/tvOS releases, or running multi-platform releases. Triggers: "upload build", "distribute TestFlight", "submit to App Store", "asc publish", "release flow", "App Store submission", "TestFlight distribute", "upload IPA", "upload PKG". allowed-tools: Bash, Read metadata: triggers: upload build, distribute TestFlight, submit to App Store, asc publish, release flow, App Store submission, TestFlight distribute, upload IPA, upload PKG, iOS release, macOS release related-skills: asc-cli-usage, asc-id-resolver, asc-submission-health, asc-testflight-orchestration, asc-build-lifecycle domain: mobile-deployment role: specialist scope: deployment output-format: commands last-reviewed: "2026-03-15" --- # Release flow (TestFlight and App Store) Use this skill when you need to get a new build into TestFlight or submit to the App Store. ## Iron Law **NEVER UPLOAD A BUILD WITHOUT VERIFYING ENCRYPTION COMPLIANCE IS RESOLVED AND BUILD NUMBER IS UNIQUE** Run `asc-submission-health` preflight checks before any App Store submission. Use `asc-id-resolver` to resolve all IDs before running release commands. ## Preconditions - Ensure credentials are set (`asc auth login` or `ASC_*` env vars). - Use a new build number for each upload. - Prefer `ASC_APP_ID` or pass `--app` explicitly. - Build must have encryption compliance resolved (see asc-submission-health skill). ## iOS Release ### Preferred end-to-end commands - TestFlight: - `asc publish testflight --app <APP_ID> --ipa <PATH> --group <GROUP_ID>[,<GROUP_ID>]` - Optional: `--wait`, `--notify`, `--platform`, `--poll-interval`, `--timeout` - App Store: - `asc publish appstore --app <APP_ID> --ipa <PATH> --version <VERSION>` - Optional: `--wait`, `--submit --confirm`, `--platform`, `--poll-interval`, `--timeout` ### Manual sequence (when you need more control) 1. Upload the build: - `asc builds upload --app <APP_ID> --ipa <PATH>` 2. Find the build ID if needed: - `asc builds latest --app <APP_ID> [--version <VERSION>] [--platform <PLATFORM>]` 3. TestFlight distribution: - `asc builds add-groups --build <BUILD_ID> --group <GROUP_ID>[,<GROUP_ID>]` 4. App Store attach + submit: - `asc versions attach-build --version-id <VERSION_ID> --build <BUILD_ID>` - `asc submit create --app <APP_ID> --version <VERSION> --build <BUILD_ID> --confirm` 5. Check or cancel submission: - `asc submit status --id <SUBMISSION_ID>` or `--version-id <VERSION_ID>` - `asc submit cancel --id <SUBMISSION_ID> --confirm` ## macOS Release macOS apps are distributed as `.pkg` files, not `.ipa`. ### Build and Export See `asc-xcode-build` skill for full build/archive/export workflow. ### Upload PKG Upload the exported `.pkg` using `asc`: ```bash asc builds upload \ --app <APP_ID> \ --pkg <PATH_TO_PKG> \ --version <VERSION> \ --build-number <BUILD_NUMBER> \ --wait ``` Notes: - `--pkg` automatically sets platform to `MAC_OS`. - `asc publish appstore` currently supports `--ipa` workflows; for macOS `.pkg`, use `asc builds upload --pkg` + attach/submit steps below. ### Attach and Submit Same as iOS, but use `--platform MAC_OS`: ```bash # Wait for build to process asc builds list --app <APP_ID> --platform MAC_OS --limit 5 # Attach to version asc versions attach-build --version-id <VERSION_ID> --build <BUILD_ID> # Create submission asc review submissions-create --app <APP_ID> --platform MAC_OS # Add version item asc review items-add \ --submission <SUBMISSION_ID> \ --item-type appStoreVersions \ --item-id <VERSION_ID> # Submit asc review submissions-submit --id <SUBMISSION_ID> --confirm ``` ## visionOS / tvOS Release Same as iOS flow, use appropriate `--platform`: - `VISION_OS` - `TV_OS` ## Multi-Platform Release When releasing the same version across platforms: 1. Upload each platform's build separately 2. Create version for each platform if not exists 3. Attach builds to respective versions 4. Submit each platform separately (or together via reviewSubmissions API) ## Pre-submission Checklist Before submitting, verify: - [ ] Build status is `VALID` (not processing) - [ ] Encryption compliance resolved - [ ] Content rights declaration set - [ ] Copyright field populated - [ ] All localizations complete - [ ] Screenshots present See `asc-submission-health` skill for detailed preflight checks. ## Notes - Always use `--help` to verify flags for the exact command. - Use `--output table` / `--output markdown` for human-readable output; default is JSON. - macOS builds require `ITSAppUsesNonExemptEncryption` in Info.plist to avoid encryption issues. ## Documentation Sources | Source | How to Access | Purpose | |--------|--------------|---------| | asc CLI help | `asc publish --help`, `asc builds --help`, `asc submit --help` | Current flags for upload and submission commands | | asc-submission-health skill | Load skill | Preflight checklist before any App Store submission | | XcodeBuildMCP | `build_sim`, `build_run_sim` tools | Build and export IPA before upload |
More agent context in kumaran-is/claude-code-onboarding
157 other files this repository gives its agents, the first 60 shown.
CLAUDE.md
Skill
- a2ui-angular.claude/skills/a2ui-angular/SKILL.md
- accessibility-audit.claude/skills/accessibility-audit/SKILL.md
- adk-deploy-guide.claude/skills/adk-deploy-guide/SKILL.md
- adk-dev-guide.claude/skills/adk-dev-guide/SKILL.md
- adk-eval-guide.claude/skills/adk-eval-guide/SKILL.md
- adk-observability-guide.claude/skills/adk-observability-guide/SKILL.md
- agentic-ai-coding-standard.claude/skills/agentic-ai-coding-standard/SKILL.md
- agentic-ai-dev.claude/skills/agentic-ai-dev/SKILL.md
- ai-audit.claude/skills/ai-audit/SKILL.md
- ai-chat.claude/skills/ai-chat/SKILL.md
- ai-decision-record.claude/skills/ai-decision-record/SKILL.md
- ai-incident-response.claude/skills/ai-incident-response/SKILL.md
- ai-launch-check.claude/skills/ai-launch-check/SKILL.md
- ai-playbook.claude/skills/ai-playbook/SKILL.md
- angular-best-practices.claude/skills/angular-best-practices/SKILL.md
- angular.claude/skills/angular/SKILL.md
- angular-spa.claude/skills/angular-spa/SKILL.md
- angular-ui-patterns.claude/skills/angular-ui-patterns/SKILL.md
- api-design-principles.claude/skills/api-design-principles/SKILL.md
- app-store-optimization.claude/skills/app-store-optimization/SKILL.md
- architect-review.claude/skills/architect-review/SKILL.md
- architecture-decision-records.claude/skills/architecture-decision-records/SKILL.md
- architecture-design.claude/skills/architecture-design/SKILL.md
- asc-cli-usage.claude/skills/asc-cli-usage/SKILL.md
- asc-crash-triage.claude/skills/asc-crash-triage/SKILL.md
- asc-id-resolver.claude/skills/asc-id-resolver/SKILL.md
- asc-signing-setup.claude/skills/asc-signing-setup/SKILL.md
- asc-submission-health.claude/skills/asc-submission-health/SKILL.md
- asc-testflight-orchestration.claude/skills/asc-testflight-orchestration/SKILL.md
- browser-testing.claude/skills/browser-testing/SKILL.md
- changelog-generator.claude/skills/changelog-generator/SKILL.md
- claude-actions-auditor.claude/skills/claude-actions-auditor/SKILL.md
- clean-code.claude/skills/clean-code/SKILL.md
- codebase-onboarding.claude/skills/codebase-onboarding/SKILL.md
- code-explainer.claude/skills/code-explainer/SKILL.md
- code-reviewer.claude/skills/code-reviewer/SKILL.md
- code-simplifier.claude/skills/code-simplifier/SKILL.md
- comment-analyzer.claude/skills/comment-analyzer/SKILL.md
- database-schema-designer.claude/skills/database-schema-designer/SKILL.md
- ddd-architect.claude/skills/ddd-architect/SKILL.md
- decision-frameworks.claude/skills/decision-frameworks/SKILL.md
- dedup-code-agent.claude/skills/dedup-code-agent/SKILL.md
- deployment-ci-cd.claude/skills/deployment-ci-cd/SKILL.md
- design-system.claude/skills/design-system/SKILL.md
- docker.claude/skills/docker/SKILL.md
- documentation-generation.claude/skills/documentation-generation/SKILL.md
- domain-finder.claude/skills/domain-finder/SKILL.md
- error-detective.claude/skills/error-detective/SKILL.md
- eval-guide.claude/skills/eval-guide/SKILL.md
- feature-forge.claude/skills/feature-forge/SKILL.md
- firebase-basics.claude/skills/firebase-basics/SKILL.md
- firebase-hosting-basics.claude/skills/firebase-hosting-basics/SKILL.md
- fixing-accessibility.claude/skills/fixing-accessibility/SKILL.md
- fixing-motion-performance.claude/skills/fixing-motion-performance/SKILL.md
- flutter-animations.claude/skills/flutter-animations/SKILL.md
- flutter-genui.claude/skills/flutter-genui/SKILL.md
- flutter-mobile.claude/skills/flutter-mobile/SKILL.md
- flutter-security-expert.claude/skills/flutter-security-expert/SKILL.md
- frontend-design.claude/skills/frontend-design/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
No reports yet. Be the first to say whether it worked.
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

