360 Secure SkillHub
360 安全技能中心

TestFlight

面向 iOS/macOS 测试版分发的操作型 Skill:涵盖 App Store Connect 准备、构建号与描述文件要求、内外部测试组管理、Xcode/Fastlane/xcrun altool 等上传方式、90 天构建过期规则与常见失败陷阱,并给出 CI/CD 中 API Key 配置与命令示例及数据外发说明。

ivangdavila
ivangdavila
热度 79.59
最近更新 2026-05-17 12:22:19
分类:开发依赖:代码执行 / 第三方 API应用场景:DevOps / 自动化脚本 / API 集成

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add testflight
Metadata
name
TestFlight
slug
testflight
version
1.0.0
homepage
https://clawic.com/skills/testflight
description
Distribute iOS and macOS beta builds with TestFlight, tester management, and CI/CD automation.
metadata
{"clawdbot":{"emoji":"🛫","requires":{"bins":[]},"os":["darwin"]}}

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

# 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