Skip to content
Back to skills

Beta

ASecurity

Build and upload iOS app to TestFlight

  • 37 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 7, 2026
toolsgorubyswiftbashtestingsecurityperformance

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add greenstevester/fastlane-skill --skill beta --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Beta?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Beta
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/greenstevester-beta/badge)](https://www.skillsdirectory.com/skills/greenstevester-beta)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.