Skip to main content

GitHub Actions Integration

Use the official setup-asc action to automate App Store Connect workflows in GitHub Actions

Official Action

The rudrankriyam/setup-asc action provides:
  • Automatic version detection and caching
  • Support for all platforms (macOS, Linux, Windows)
  • Matrix build support for multiple app configurations
  • Integration with GitHub Secrets for credential management
Repository: github.com/rudrankriyam/setup-asc

Quick Start

Basic Workflow

.github/workflows/testflight.yml

Setup Action Configuration

Inputs

Example: Pin to Specific Version

Complete Workflows

TestFlight Distribution

.github/workflows/testflight-release.yml

App Store Submission

.github/workflows/app-store-submit.yml

Metadata Sync

.github/workflows/metadata-sync.yml

Crash Monitoring

.github/workflows/crash-monitor.yml

Matrix Builds

Multiple Apps

.github/workflows/multi-app-deploy.yml

Authentication Setup

GitHub Secrets Configuration

  1. Navigate to your repository Settings > Secrets and variables > Actions
  2. Click New repository secret
  3. Add the following secrets:

Base64 Encoding Private Key

Using Private Key File (Alternative)

If you prefer not to use base64 encoding:

Environment Variables

Set default environment variables for all jobs:

Caching

The setup-asc action automatically caches the asc binary. You can also cache build artifacts:

Conditional Workflows

Deploy only on tags

Manual approval for production

Troubleshooting

Enable Debug Logging

Verify Credentials

Common Issues

  • Verify all three secrets are set correctly
  • Check that private key is properly base64-encoded
  • Ensure API key has not been revoked in App Store Connect
  • Verify Key ID and Issuer ID match the API key
The setup-asc action failed to find the specified version:
  • Check releases for available versions
  • Use latest for the most recent release
  • Ensure version format is correct (e.g., 1.0.0, not v1.0.0)
  • Increase ASC_UPLOAD_TIMEOUT environment variable
  • Check network connectivity from GitHub runner
  • Verify IPA file is not corrupted
  • Add delays between API calls
  • Use pagination wisely with --limit
  • Consider spreading operations across multiple jobs

Best Practices

Use explicit versions

Pin action versions for reproducibility:

Set timeouts

Prevent hanging workflows:

Separate build and deploy

Use separate jobs for build and deployment:

Use environments

Leverage GitHub Environments for approvals:

Examples Repository

For more complete examples, see: github.com/rudrankriyam/setup-asc