| name | asc-signing-setup |
| description | Set up bundle IDs, capabilities, signing certificates, and provisioning profiles with the asc CLI. Use when onboarding a new iOS or macOS app, rotating expired certificates, creating provisioning profiles, configuring app capabilities (iCloud, push, etc.), or troubleshooting code signing failures. Triggers: "bundle ID", "signing certificate", "provisioning profile", "code signing", "asc certificates", "asc profiles", "capabilities", "signing assets", "rotate cert". |
asc signing setup
Iron Law
NEVER CREATE A NEW CERTIFICATE OR PROFILE WITHOUT CHECKING IF ONE ALREADY EXISTS — RUN LIST COMMANDS FIRST
Use this skill when you need to create or renew signing assets for iOS/macOS apps.
Preconditions
- Auth is configured (
asc auth login or ASC_* env vars).
- You know the bundle identifier and target platform.
- You have a CSR file for certificate creation.
Workflow
- Create or find the bundle ID:
asc bundle-ids list --paginate
asc 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_DISTRIBUTION
asc certificates create --certificate-type IOS_DISTRIBUTION --csr "./cert.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"
Rotation and cleanup
- Revoke old certificates:
asc certificates revoke --id "CERT_ID" --confirm
- Delete old profiles:
asc profiles delete --id "PROFILE_ID" --confirm
Notes
- Always check
--help for the exact enum values (certificate types, profile types).
- Use
--paginate for large accounts.
--certificate accepts comma-separated IDs when multiple certificates are required.
- Device management uses
asc devices commands (UDID required).
Documentation Sources
| Source | How to Access | Purpose |
|---|
| asc CLI help | asc bundle-ids --help, asc certificates --help, asc profiles --help | Current flags for each signing entity |
| XcodeBuildMCP | show_build_settings tool | Inspect current signing config in Xcode project |