ios-app-store-connect — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ios-app-store-connect (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use [asc](https://github.com/rorkai/App-Store-Connect-CLI) (asc) for distribution. Keep simulator development on XcodeBuildMCP (ios-debugger-agent); switch to asc when the task is archive, upload, TestFlight, metadata, signing, or App Store submission.
Read references as needed:
references/auth-setup.md — API keys, profiles, CI/Agent env varsreferences/testflight-workflow.md — local Xcode → TestFlight (.asc/workflow.json)references/app-store-release.md — validate, stage, publish, monitor reviewreferences/upstream-skills.md — optional granular skills from app-store-connect-cli-skillsCopy templates from templates/ into the iOS project root as .asc/ (adjust paths, team ID, bundle ID, app ID).
brew install asc
# or: curl -fsSL https://asccli.sh/install | bash
asc version.p8 keys, .asc/config.json with credentials, or exported .ipa / .xcarchive unless the repo is explicitly set up for that.ASC_BYPASS_KEYCHAIN=1 or use asc auth login --bypass-keychain (see auth reference).asc version
asc auth status --validate
asc auth doctor
asc apps list --output jsonIf auth is missing, follow references/auth-setup.md and stop until the user completes login.
Collect before upload/submit:
| ID | How |
|---|---|
| App Store Connect app ID | asc apps list --output json |
| Bundle ID | Xcode target or asc bundle-ids list |
| Team ID | Apple Developer membership or export options |
| Scheme / project | xcodebuild -list or repo docs |
| TestFlight group name or ID | asc testflight groups list --app APP_ID |
| Goal | Canonical command |
|---|---|
| Upload IPA only | asc builds upload --app APP_ID --ipa PATH.ipa |
| TestFlight (upload + group + wait) | asc publish testflight --app APP_ID --ipa PATH.ipa --group GROUP --wait |
| External TF beta review | add --submit --confirm to publish testflight |
| App Store release | asc publish appstore --app APP_ID --ipa PATH.ipa --version VERSION --submit --confirm |
| Readiness check | asc validate --app APP_ID --version VERSION |
| Review blockers | asc review doctor --app APP_ID |
For local Xcode → IPA → TestFlight in one repo-local pipeline, prefer .asc/workflow.json (see references/testflight-workflow.md).
Option A — `asc` xcode commands (recommended for release automation)
asc builds next-build-number --app APP_ID --version VERSION --platform IOS --output jsonasc xcode inject --manifest .asc/deployment.json --set version=... --set build_number=... --overwriteasc xcode archive --project ... --scheme ... --configuration Release ...asc xcode export --archive-path ... --export-options .asc/export-options-app-store.plist --ipa-path ...Option B — existing IPA
Skip archive/export; use asc publish testflight or asc builds upload with the given path.
Do not use XcodeBuildMCP simulator build tools for App Store IPA export—they target Simulator/debug loops, not distribution archives.
asc validate --app APP_ID --version VERSION --output json
asc review doctor --app APP_ID --output jsonSummarize blockers as: API-fixable (metadata, encryption, export compliance), web-only (first-time privacy, IAP setup), manual (contracts, banking). Propose the next single asc command for each fixable item.
# TestFlight
asc publish testflight --app APP_ID --ipa ./path.ipa --group "Internal Testers" --wait --output json
# App Store (after user confirms)
asc publish appstore --app APP_ID --ipa ./path.ipa --version VERSION --submit --confirm --output json
asc status --app APP_ID --watch
asc review status --app APP_ID --output jsonReport: build number, build ID, processing state, group assignment, submission state.
Typical end-to-end prompt shape:
ios-debugger-agent: build/run on Simulator, UI checks.asc publish testflight or appstore.asc metadata init/apply or install upstream asc-metadata-sync (see upstream reference).| Symptom | Action |
|---|---|
| Auth fails in Agent terminal | ASC_BYPASS_KEYCHAIN=1, re-login with --bypass-keychain, see auth reference |
| Upload rejected (version) | Marketing version must be new if current version is already READY_FOR_DISTRIBUTION |
| Export/signing errors | asc auth doctor; add -allowProvisioningUpdates via asc xcode archive/export flags |
| Build stuck processing | asc builds list --app APP_ID; increase wait/--poll-interval on publish |
| "Can I submit?" | asc validate + asc review doctor; prefer upstream asc-release-flow patterns |
For metadata sync, signing setup, ASO, subscriptions, and Apple Ads, install the community skill pack (see references/upstream-skills.md). This skill stays the default entry point for Cursor distribution workflows.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.