asc-signing-setup
rudrankriyam/app-store-connect-cli-skills
Set up iOS/macOS signing certificates, provisioning profiles, and bundle IDs via App Store Connect CLI.
What is asc-signing-setup?
Automates creation and management of signing assets (bundle IDs, capabilities, certificates, provisioning profiles) for iOS and macOS apps using the asc CLI. Use when onboarding a new app, rotating signing credentials, or syncing signing assets across a team via encrypted git storage.
- Create and list bundle IDs with platform-specific configuration
- Add and manage bundle ID capabilities with custom settings
- Generate or upload signing certificates (distribution, development, etc.)
- Create provisioning profiles for App Store, development, and ad-hoc distribution
- Download, inspect, and locally install provisioning profiles
- Revoke expired certificates and audit/delete old profiles
How to install asc-signing-setup
npx skills add https://github.com/rudrankriyam/app-store-connect-cli-skills --skill asc-signing-setup- asc CLI installed and authenticated (via `asc auth login` or ASC_* environment variables)
- Bundle identifier and target platform (IOS or macOS) known in advance
- CSR file for certificate creation, or permission to generate one inline
- For team sync: git repository access and shared encryption password
How to use asc-signing-setup
- 1.Authenticate: run `asc auth login` or set ASC_* environment variables
- 2.Create or find bundle ID: `asc bundle-ids list` or `asc bundle-ids create --identifier "com.example.app" --platform IOS`
- 3.Add capabilities: `asc bundle-ids capabilities add --bundle BUNDLE_ID --capability ICLOUD` (with optional settings)
- 4.Create signing certificate: `asc certificates create --certificate-type IOS_DISTRIBUTION --generate-csr --key-out ./key --csr-out ./csr`
- 5.Create provisioning profile: `asc profiles create --name "Profile" --profile-type IOS_APP_STORE --bundle BUNDLE_ID --certificate CERT_ID`
- 6.Download profile: `asc profiles download --id PROFILE_ID --output ./profiles/AppStore.mobileprovision`
- 7.Inspect and install locally: `asc profiles inspect --path ./profiles/AppStore.mobileprovision` then `asc profiles local install --path ./profiles/AppStore.mobileprovision`
- 8.(Optional) Sync to team: `asc signing sync push --bundle-id com.example.app --repo git@github.com:team/certs.git --password $MATCH_PASSWORD`
Use cases
- Onboard a new iOS/macOS app by creating bundle ID, capabilities, certificate, and provisioning profile in sequence
- Rotate signing certificates and profiles when credentials expire or security policies require renewal
- Share signing assets securely across a development team using encrypted git-backed storage instead of fastlane match
- Audit and clean up expired or invalid provisioning profiles and certificates in App Store Connect
- Inspect provisioning profile entitlements and local Xcode profile state before deployment
- iOS/macOS app developers managing signing credentials
- DevOps engineers automating app signing workflows
- Teams needing secure, shared access to signing assets without fastlane
- App onboarding specialists setting up new projects in App Store Connect
asc-signing-setup FAQ
App Store Connect API credentials must be configured via `asc auth login` or ASC_* environment variables (ASC_ISSUER_ID, ASC_KEY_ID, ASC_PRIVATE_KEY_PATH).
Yes. Use `asc certificates create --generate-csr --key-out ./key --csr-out ./csr` to generate both the key and CSR inline.
Use `asc signing sync push` to encrypt and push certificates/profiles to a shared git repo, then team members pull them with `asc signing sync pull --password $MATCH_PASSWORD`.
Compare the profile's `expirationDate` against the current date; do not rely solely on the `profileState` field, as Apple may report `ACTIVE` for profiles with past expiration dates.
`asc profiles` commands interact with App Store Connect API (list, create, download, delete); `asc profiles local` commands operate on local disk state (install, list, clean).
Full instructions (SKILL.md)
Source of truth, from rudrankriyam/app-store-connect-cli-skills.
name: asc-signing-setup description: Set up bundle IDs, capabilities, signing certificates, provisioning profiles, and encrypted signing sync with the asc cli. Use when onboarding a new app, rotating signing assets, or sharing them across a team.
asc signing setup
Use this skill when you need to create or renew signing assets for iOS/macOS apps.
Preconditions
- Auth is configured (
asc auth loginorASC_*env vars). - You know the bundle identifier and target platform.
- You have a CSR file for certificate creation, or you will let
asc certificates create --generate-csrcreate one.
Workflow
- Create or find the bundle ID:
asc bundle-ids list --paginateasc bundle-ids create --identifier "com.example.app" --name "Example" --platform IOS
- Configure bundle ID capabilities:
asc bundle-ids capabilities list --bundle "BUNDLE_ID"asc bundle-ids capabilities add --bundle "BUNDLE_ID" --capability ICLOUD- Add capability settings when required:
--settings '[{"key":"ICLOUD_VERSION","options":[{"key":"XCODE_13","enabled":true}]}]'
- Create a signing certificate:
asc certificates list --certificate-type IOS_DISTRIBUTIONasc certificates create --certificate-type IOS_DISTRIBUTION --csr "./cert.csr"- Or generate a key and CSR inline:
asc certificates create --certificate-type IOS_DISTRIBUTION --generate-csr --key-out "./signing/dist.key" --csr-out "./signing/dist.csr"
- Create a provisioning profile:
asc profiles create --name "AppStore Profile" --profile-type IOS_APP_STORE --bundle "BUNDLE_ID" --certificate "CERT_ID"- Include devices for development/ad-hoc:
asc profiles create --name "Dev Profile" --profile-type IOS_APP_DEVELOPMENT --bundle "BUNDLE_ID" --certificate "CERT_ID" --device "DEVICE_ID"
- Download the profile:
asc profiles download --id "PROFILE_ID" --output "./profiles/AppStore.mobileprovision"
- Inspect and install the downloaded profile locally when needed:
asc profiles inspect --path "./profiles/AppStore.mobileprovision" --output tableasc profiles inspect --path "./profiles/AppStore.mobileprovision" --entitlements --output markdownasc profiles local install --path "./profiles/AppStore.mobileprovision"asc profiles local list --output table
Rotation and cleanup
- Revoke old certificates:
asc certificates revoke --id "CERT_ID" --confirm
- Audit remote provisioning profiles before deleting or rotating:
asc profiles list --profile-state ACTIVE,INVALID --paginate --output json- Apple
profileStateis not a complete expiration signal: some profiles can have a pastexpirationDatewhile still reportingACTIVE. For true expired-profile audits, compareexpirationDateagainst the current date instead of relying only onINVALID.
- Delete old profiles:
asc profiles delete --id "PROFILE_ID" --confirm
- Clean local Xcode provisioning profiles:
asc profiles local clean --expired --dry-runasc profiles local clean --expired --confirm
Shared team storage with asc signing sync
Use this when you want a lightweight, non-interactive alternative to fastlane match for encrypted git-backed certificate/profile storage.
# Push current ASC signing assets into an encrypted git repo
asc signing sync push \
--bundle-id "com.example.app" \
--profile-type IOS_APP_STORE \
--repo "git@github.com:team/certs.git" \
--password "$MATCH_PASSWORD"
# Pull and decrypt them into a local directory
asc signing sync pull \
--repo "git@github.com:team/certs.git" \
--password "$MATCH_PASSWORD" \
--output-dir "./signing"
Notes:
--passwordfalls back toASC_MATCH_PASSWORD.- The encrypted repo follows a familiar match-style git layout for certs and profiles.
pullwrites files to disk; keychain import or profile installation is a separate step.
Notes
- Always check
--helpfor the exact enum values (certificate types, profile types). - Use
--paginatefor large accounts. --certificateaccepts comma-separated IDs when multiple certificates are required.- Device management uses
asc devicescommands (UDID required). asc profiles inspectandasc profiles local ...operate on local disk state, not App Store Connect API resources.
Related skills
More from rudrankriyam/app-store-connect-cli-skills and the wider catalog.

asc-submission-health
Validate App Store submission readiness, submit versions, and monitor review status with asc commands.

asc-subscription-localization
Bulk-localize subscription and IAP display names across all App Store Connect locales via CLI.

asc-testflight-orchestration
Orchestrate TestFlight distribution, groups, testers, and release notes via App Store Connect CLI.

asc-wall-submit
Submit or update Wall of Apps entries in App-Store-Connect-CLI repository

asc-whats-new-writer
Generate engaging, localized App Store release notes (What's New) from git log, bullet points, or free text using canonical metadata under `./metadata`. Optionally pairs with promotional text updates.

asc-workflow
Define and run multi-step App Store Connect automations with lane-style workflows and step outputs.