Checklist pack
Solo iOS release checklist
Use before every archive/upload. If a field is blank, stop.
Markdown version for repos · pairs with Issue #0 and Issue #5
0) Release identity
- Date
- Marketing version
- Build number
- Git SHA
- Xcode version (
xcodebuild -version)
- Destination: TestFlight / App Store
- Why this build exists
1) Toolchain
- Active Xcode is supported for the destination (stable floor vs allowed beta lane)
xcode-select -p points at the Xcode you intend
xcodebuild -version recorded in the identity table
- You are not assuming last month’s TestFlight success freezes the toolchain
xcode-select -p
xcodebuild -version
2) Project / binary identity
- Correct scheme
- Release configuration
- Correct bundle identifier
- Marketing version set intentionally
- Build number higher than every build already in App Store Connect
- No leftover debug flags / staging endpoints / test API keys
3) Symbols
- App dSYMs generated for Release/Archive
- Dependency/binary dSYM strategy known
- Upload pipeline includes the symbols you think it includes
4) Privacy & store facts
- Purpose strings still match actual APIs used
- Privacy Nutrition answers still match SDKs
- Tracking/ATT stance unchanged or deliberately updated
- Export compliance answer known
- Store-facts doc updated if dependencies changed
Open the store-facts template →
5) Critical path smoke (on the archive build)
- Launch / onboarding
- Core create/log action
- Settings / account / export path
- Paywall / upgrade path if monetized
- No obvious permission crash on first prompt
6) Upload plan
- Destination chosen: TestFlight only or App Store candidate
- Tester notes drafted with exact build number
- Previous good build number written down
- Time blocked to watch processing (no fire-and-forget before a meeting)
Build <N> (<marketing version>)
What to test:
Known issues:
Obsolete builds for this test:
Stop now if
- Xcode is unsupported/beta for the destination
- Build number did not increase
- You cannot identify the git SHA for the archive
- Critical path was not smoked on the archive build
- Privacy answers are guesswork after adding an SDK