Skip to content
FunCoding

ios-bootstrap-testflight

Scaffold a native iOS app (SwiftUI, no dependencies) from nothing, run it in the Simulator, and archive + upload it to TestFlight entirely from the command line. Bundles working scripts for icon generation, simulator run, and signed upload via the App Store Connect API. Use this whenever the user wants to build, run, ship, or debug an iOS/iPhone/iPad app, mentions Xcode, SwiftUI, .xcodeproj, xcodebuild, simctl, provisioning, code signing, App Store Connect, TestFlight, archiving, or "get this on my phone" — and also when an existing iOS build is failing on icons, signing, teams, destinations, or duplicate build numbers.

Star
2,111
License
MIT
Last commit
Oct 8, 2026

skills/ios-bootstrap-testflight/SKILL.md

View on GitHub

iOS bootstrap → TestFlight

Two jobs: create an iOS app that builds, and get it onto a real phone. Both are almost entirely CLI. Xcode's UI is only needed for first-time account setup.

FileWhen
references/bootstrap.mdCreating a new project, or the project won't open/build
references/testflight.mdSigning, archiving, uploading. Holds the user's Team ID and API key details.
references/appstore.mdPublic release — screenshots, metadata, privacy policy, review. Read the 4.3 risk section before the user invests in assets.
references/caveats.mdAnything looks wrong on device — button styling, layout, gestures, animation

Scripts

Copy into the project's workspace/ and run from the project root. They auto-detect the .xcodeproj and scheme, so they work unmodified in any project.

mkdir -p workspace
cp ~/.claude/skills/ios-bootstrap-testflight/scripts/* workspace/
chmod +x workspace/*.sh
ScriptDoes
make_icon.swiftRenders a 1024×1024 App Store icon into the asset catalog
run.shBuild → boot simulator → install → launch
upload_testflight.shBump build number → icon → archive → upload to TestFlight
screenshots.shCaptures App Store screenshots at Apple's exact required sizes
time ./workspace/run.sh                          # test locally
time ./workspace/upload_testflight.sh --validate # archive only, no API key needed
time ./workspace/upload_testflight.sh            # bump + archive + upload

The rule that saves the most time

Never run xcodebuild raw and read the output. It emits thousands of lines and buries the one that matters. Always filter:

xcodebuild ... 2>&1 | grep -E "error:|warning:|BUILD"

A build can print ** BUILD FAILED ** while every Swift file compiled fine — asset catalog and signing failures look identical to code failures in raw logs. Check which build command failed before assuming the code is broken.

Environment expectations

  • Xcode (full app, not Command Line Tools) — xcode-select -p must contain Xcode.app
  • ~40 GB free disk for Xcode + one iOS platform
  • Apple Developer Program membership for TestFlight (free tier cannot upload)

If any of that is missing, references/bootstrap.md has the setup commands in order.

Similar Skills

receiving-code-review

OBobra/superpowers298k2,631 new stars in the last 7 days

requesting-code-review

OBobra/superpowers298k2,631 new stars in the last 7 days

systematic-debugging

OBobra/superpowers298k2,631 new stars in the last 7 days

code-review

MAmattpocock/skills288k10,178 new stars in the last 7 days

codebase-design

MAmattpocock/skills288k10,178 new stars in the last 7 days

scaffold-exercises

MAmattpocock/skills288k10,178 new stars in the last 7 days