Get the FREE Ultimate OpenClaw Setup Guide โ†’
I

TestFlight

Scanned

@ivangdavila

npx machina-cli add skill @ivangdavila/testflight --openclaw
Files (1)
SKILL.md
3.2 KB

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

TopicFile
CI/CD automationci-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

GroupPurposeLimit
InternalTeam members with App Store Connect access100
ExternalBeta testers, requires review10,000

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

4. Upload Methods

MethodBest For
XcodeManual, one-off uploads
xcrun altoolScripts, CI without fastlane
FastlaneFull automation, multiple apps
Xcode CloudApple-native CI/CD
TransporterGUI 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

# 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 patterns
  • xcode โ€” Xcode workflows
  • flutter โ€” cross-platform builds

Feedback

  • If useful: clawhub star testflight
  • Stay updated: clawhub sync

Source

git clone https://clawhub.ai/ivangdavila/testflightView on GitHub

Overview

It automates beta distribution for iOS and macOS using TestFlight, covering App Store Connect setup, tester grouping, and build uploads. It also integrates with CI/CD workflows to streamline beta releases.

How This Skill Works

Before any upload, the skill ensures App Store Connect is prepared (registered Bundle ID and app, credentials). Each build must meet requirements (unique CFBundleVersion, valid provisioning, export compliance). It then assigns testers into Internal or External groups and uploads the build using a chosen method (Fastlane, xcrun altool, Xcode, Xcode Cloud, or Transporter), with optional CI/CD automation.

When to Use It

  • Distribute a new beta to internal testers after a successful code build
  • Set up App Store Connect (Bundle ID, app, credentials) before first beta
  • Automate beta uploads in CI/CD using Fastlane, altool, or Xcode Cloud
  • Manage tester groups and handle external beta reviews
  • Plan releases around 90-day TestFlight build expiration

Quick Start

  1. Step 1: Ensure App Store Connect is prepared (bundle ID, app, API key or password)
  2. Step 2: Configure your CI/CD to use a preferred upload method (Fastlane or altool)
  3. Step 3: Build and trigger a TestFlight upload, then monitor processing and tester access

Best Practices

  • Do App Store Connect setup first: register the bundle, create the app, and configure credentials
  • Enforce build hygiene: always increment CFBundleVersion and ensure valid provisioning profiles
  • Define tester groups (Internal vs External) and respect their limits
  • Choose the right upload method for your workflow (manual Xcode, altool scripts, Fastlane, or CI-native options)
  • Monitor build processing and plan release timing before expiration (90 days)

Example Use Cases

  • Internal testers receive rapid feedback with immediate availability after each internal build
  • A CI pipeline triggers Fastlane beta uploads to TestFlight after a successful merge
  • Xcode Cloud handles automated builds and TestFlight distribution for multi-app projects
  • External testers are queued for beta review after internal validation to ensure compliance
  • API key-based authentication is used to avoid storing credentials in CI scripts

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers โ†—