Build and upload iOS app to TestFlight
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: beta
description: Build and upload iOS app to TestFlight
argument-hint: [--skip-build-increment] [--external] [--changelog "text"]
allowed-tools: Bash, Read
---
## TestFlight Beta Release
Build and upload the iOS app to TestFlight for beta testing.
### Pre-flight Checks
- Fastlane installed: !`fastlane --version 2>/dev/null | grep "fastlane " | head -1 || echo "✗ Not installed - run: brew install fastlane"`
- Fastfile exists: !`ls fastlane/Fastfile 2>/dev/null && echo "✓ Found" || echo "✗ Not found - run /setup-fastlane first"`
- App-specific password: !`[ -n "$FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD" ] && echo "✓ Set" || echo "⚠️ Not set - export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD='xxxx-xxxx-xxxx-xxxx'"`
### Arguments: ${ARGUMENTS:-none}
---
## What This Does
1. **Syncs certificates** via Match (appstore type)
2. **Increments build number** (unless `--skip-build-increment`)
3. **Builds release archive** with gym
4. **Uploads to TestFlight** via pilot
5. **Optionally distributes to external testers** (if `--external`)
---
## Commands
### Standard Beta (Internal Testers)
```bash
cd project/product/swiftui-ios-app # or your fastlane directory
fastlane beta
```
### Skip Build Number Increment
```bash
fastlane beta skip_build_increment:true
```
### External Testers (with changelog)
```bash
fastlane beta_external changelog:"Bug fixes and performance improvements"
```
---
## Troubleshooting
### "No value found for 'username'"
Set your Apple ID in `fastlane/Appfile`:
```ruby
apple_id("your@email.com")
```
### "Please sign in with an app-specific password"
1. Go to https://account.apple.com → Sign-In & Security → App-Specific Passwords
2. Generate a password named "Fastlane"
3. Export it:
```bash
export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD='xxxx-xxxx-xxxx-xxxx'
```
### rsync error during export
If you see `--extended-attributes: unknown option`, Homebrew rsync conflicts with Xcode:
```bash
brew uninstall rsync # Use system rsync
```
---
## After Upload
- Build will appear in TestFlight within 1-5 minutes
- Internal testers are notified automatically
- External testers require `beta_external` lane or manual distribution in App Store Connect
No comments yet. Be the first to comment!