Official Action
Therudrankriyam/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
Quick Start
Basic Workflow
.github/workflows/testflight.yml
Setup Action Configuration
Inputs
| Input | Description | Required | Default |
|---|---|---|---|
version | Version to install (latest, 1.2.3, etc.) | No | latest |
token | GitHub token for API rate limiting | No | ${{ github.token }} |
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
- Navigate to your repository Settings > Secrets and variables > Actions
- Click New repository secret
- Add the following secrets:
| Secret Name | Value |
|---|---|
ASC_KEY_ID | Your App Store Connect Key ID |
ASC_ISSUER_ID | Your App Store Connect Issuer ID |
ASC_PRIVATE_KEY_B64 | Base64-encoded .p8 private key |
APP_ID | Your app’s ID (optional, for convenience) |
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 theasc 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
Authentication failed
Authentication failed
- 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
Version not found
Version not found
The setup-asc action failed to find the specified version:
- Check releases for available versions
- Use
latestfor the most recent release - Ensure version format is correct (e.g.,
1.0.0, notv1.0.0)
Upload timeout
Upload timeout
- Increase
ASC_UPLOAD_TIMEOUTenvironment variable - Check network connectivity from GitHub runner
- Verify IPA file is not corrupted
Rate limiting
Rate limiting
- 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:
