Installable skillMIT

In Fastfile

Distribute iOS and macOS beta builds with TestFlight, tester management, and CI/CD automation.

BY clawicUPDATED Oct 27, 2026
INTENDED FORβ—ˆOpenClawInstall in a listed agent.

instructions.md

---
name: testflight
slug: testflight
version: 1.0.0
description: Distribute iOS and macOS beta builds with TestFlight, tester management, and CI/CD automation.
homepage: https://clawic.com/skills/testflight
metadata:
  clawdbot:
    emoji: πŸ›«
    requires:
      bins: []
    os:
    - darwin
    displayName: TestFlight
---

## When to Use

User needs to distribute beta builds via TestFlight. Agent handles App Store Connect setup, tester groups, build uploads, and CI/CD integration.

## Quick Reference

| Topic | File |
|-------|------|
| CI/CD automation | `ci-cd.md` |

## Core Rules

### 1. App Store Connect Setup First
Before uploading:
- Bundle ID registered in Developer Portal
- App created in App Store Connect
- App-specific password or API key configured

### 2. Build Requirements
Every TestFlight build needs:
- Unique build number (CFBundleVersion) - increment ALWAYS
- Valid provisioning profile (App Store distribution)
- No missing compliance declarations

### 3. Tester Group Strategy

| Group | Purpose | Limit |
|-------|---------|-------|
| Internal | Team members with App Store Connect access | 100 |
| External | Beta testers, requires review | 10,000 |

Internal builds available immediately. External requires Apple review (24-48h first time).

### 4. Upload Methods

| Method | Best For |
|--------|----------|
| Xcode | Manual, one-off uploads |
| `xcrun altool` | Scripts, CI without fastlane |
| Fastlane | Full automation, multiple apps |
| Xcode Cloud | Apple-native CI/CD |
| Transporter | GUI for non-developers |

### 5. Build Expiration
TestFlight builds expire after 90 days. Plan releases accordingly.

## TestFlight Traps

- **Build number not incremented** - rejected immediately, must bump and rebuild
- **Missing export compliance** - stuck in "Processing" until answered in App Store Connect
- **External testers on first build** - requires full beta review, use internal first
- **Expired provisioning profile** - upload fails silently, check before archiving
- **App-specific password in CI** - use App Store Connect API key instead (more secure, no 2FA issues)

## CI/CD Quick Setup

### App Store Connect API Key (Recommended)

1. App Store Connect > Users > Keys > App Store Connect API
2. Generate key with "App Manager" role
3. Download `.p8` file (only shown ONCE)
4. Note: Issuer ID, Key ID

### Fastlane Upload

```bash
# In Fastfile
lane :beta do
  build_app(scheme: "MyApp")
  upload_to_testflight(
    api_key_path: "fastlane/api_key.json",
    skip_waiting_for_build_processing: true
  )
end
```

### xcrun altool (No Fastlane)

```bash
xcrun altool --upload-app \
  --type ios \
  --file "MyApp.ipa" \
  --apiKey "KEY_ID" \
  --apiIssuer "ISSUER_ID"
```

## Security & Privacy

**Data that leaves your machine:**
- IPA/app binary uploaded to Apple servers
- Build metadata (version, bundle ID, team)

**Data that stays local:**
- API keys and certificates (keep in Keychain)
- Source code (not uploaded)

**This skill does NOT:**
- Store Apple credentials in plain text
- Share builds outside Apple's infrastructure

## Related Skills
More Clawic skills, get them at https://clawic.com/skills/<slug> (install if the user confirms):
- `ios` β€” iOS development patterns
- `xcode` β€” Xcode workflows
- `flutter` β€” cross-platform builds

## Feedback

- If useful, star it: https://clawic.com/skills/testflight
- Latest version: https://clawic.com/skills/testflight
COMPATIBILITY & REFERENCES

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.