Skip to main content

Signing

Manage signing certificates and provisioning profiles
Fetch and manage code signing assets for your applications.

Overview

The signing command provides high-level operations for managing code signing workflows, automatically resolving and downloading the certificates and provisioning profiles needed for app distribution.

Fetch Signing Files

Fetch certificates and provisioning profiles for an app in a single command:
This command:
  1. Resolves the bundle ID in App Store Connect
  2. Finds matching certificates for the profile type
  3. Finds or creates a provisioning profile
  4. Downloads certificates (.cer) and profile (.mobileprovision)
  5. Saves files to the output directory

Required Flags

  • --bundle-id - Bundle identifier (e.g., com.example.app)
  • --profile-type - Type of provisioning profile (see Profile Types)

Optional Flags

  • --output - Output directory (default: ./signing)
  • --app - App Store Connect app ID (validates bundle ID match)
  • --certificate-type - Filter specific certificate type (usually auto-inferred)
  • --device - Device IDs for development profiles (comma-separated)
  • --create-missing - Create a new profile if none exists
  • --format - Output format for metadata: json, table, markdown (default: json)

Profile Types

iOS Profile Types

App Store Distribution:
  • Used for: App Store submission
  • Certificate type: IOS_DISTRIBUTION
  • Devices: Not required
Development:
  • Used for: Local development and testing
  • Certificate type: IOS_DEVELOPMENT
  • Devices: Required (use asc devices list to find IDs)
Ad Hoc:
  • Used for: External testing (outside TestFlight)
  • Certificate type: IOS_DISTRIBUTION
  • Devices: Required
In-House (Enterprise):
  • Used for: Enterprise internal distribution
  • Certificate type: IOS_DISTRIBUTION
  • Devices: Not required
  • Requires: Apple Developer Enterprise Program

tvOS Profile Types

  • TVOS_APP_STORE - App Store distribution
  • TVOS_APP_DEVELOPMENT - Development
  • TVOS_APP_ADHOC - Ad Hoc distribution
  • TVOS_APP_INHOUSE - Enterprise distribution

macOS Profile Types

App Store:
  • Certificate type: MAC_APP_DISTRIBUTION
Direct Distribution:
  • Certificate type: DEVELOPER_ID_APPLICATION
  • Used for: Distribution outside Mac App Store
Development:
  • Certificate type: MAC_APP_DEVELOPMENT
Mac Catalyst:
  • MAC_CATALYST_APP_STORE - Mac App Store
  • MAC_CATALYST_APP_DIRECT - Direct distribution
  • MAC_CATALYST_APP_DEVELOPMENT - Development

Certificate Type Inference

The CLI automatically infers the correct certificate type from the profile type: Override with --certificate-type if needed.

Create Missing Profiles

Create a new provisioning profile if none exists:
For development profiles, devices are required:
If --create-missing is not specified and no matching profile exists, the command will fail with an error suggesting you use this flag.

Output Files

Files are saved to the output directory with sanitized names: Provisioning Profile:
Certificates:
File names are based on profile name/ID and certificate serial numbers.

Complete Example Workflows

App Store Submission

Development Setup

CI/CD Integration

Troubleshooting

Bundle ID Not Found

Solution: Create the bundle ID first:

No Certificates Found

Solution: Create a certificate:

No Active Profile Found

Solution: Add --create-missing flag or create profile manually:

Devices Required for Development

Solution: Specify device IDs: