TestFlight Ship
testflight_shipBuild, sign, and upload an iOS app to TestFlight end-to-end, including distribution signing, archive, and App Store profiles. Needs Maestro smoke tests passed and human approval for upload.
Instructions
Build, sign and upload a TestFlight build end to end: distribution signing, archive, App Store profiles, manual-signing export, asc builds upload (needs human approval).
Use when: shipping a build to TestFlight. Refuses unless the Maestro smoke flows passed (maestro_test) and App ID capabilities exist. Never submits for App Store review (use asc_submit_for_review for that). Not for: single build steps (build_archive, build_export_ipa, signing_*). Returns: {ok, build, ...} or an error / approval_required refusal.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scheme | Yes | Xcode scheme name to build, e.g. 'MyApp'. | |
| app_dir | Yes | Absolute path to the app project directory (contains app.spec.json), e.g. /Users/me/Apps/MyApp. | |
| project | Yes | Path to the .xcodeproj or .xcworkspace to build, e.g. /path/App/App.xcodeproj. | |
| bundle_id | Yes | App bundle identifier in reverse-DNS form, e.g. com.example.app. | |
| approval_id | No | Approval id from a previous approval_required refusal; omit on the first call. The human approves out-of-band with `appfactory approve <id>`, then call again with the same arguments and this id. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||