TestFlight
Distribute iOS and macOS beta builds with TestFlight, tester management, and CI/CD automation.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/ivangdavila/testflightWhen 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)
- App Store Connect > Users > Keys > App Store Connect API
- Generate key with "App Manager" role
- Download
.p8file (only shown ONCE) - Note: Issuer ID, Key ID
Fastlane Upload
# 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)
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
Install with clawhub install <slug> if user confirms:
ios— iOS development patternsxcode— Xcode workflowsflutter— cross-platform builds
Feedback
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-ivangdavila-testflight": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
Animations
Create performant web animations with proper accessibility and timing.
Arduino
Develop Arduino projects avoiding common wiring, power, and code pitfalls.
Bulgarian
Write Bulgarian that sounds human. Not formal, not robotic, not AI-generated.
Arabic
Write Arabic that sounds human. Not formal, not robotic, not AI-generated.
Assistant
Manage tasks, communications, and scheduling with proactive and organized support.