App Store Connect automation
Automate App Store Connect Screenshot Uploads with Genshot
Import, review, publish, and verify App Store screenshots with the shipped Genshot CLI and API while preserving Apple’s reservation, upload, commit, and processing states.
Short answer
Genshot now supports an explicit review-before-write App Store Connect workflow: connect a scoped Apple key, import an editable version, review ordered screenshot decisions, publish selected sets, and poll the durable publish status.
Apple’s asset upload is a four-state workflow
- Step 1
Reserve
Create the screenshot resource with filename and byte size.
- Step 2
Upload
Send every operation or part Apple returns.
- Step 3
Commit
Mark the reservation as uploaded only after all parts succeed.
- Step 4
Verify
Read Apple’s processing status; transport success is not completion.
1. Connect and import an editable version
Omit `--issuer-id` for an individual key. Genshot accepts the private key from the local file, stores encrypted credential material, and prints only credential-safe connection information.
genshot appstore connect \
--key-id "$APPLE_KEY_ID" \
--key-file ./AuthKey.p8 \
--issuer-id "$APPLE_ISSUER_ID"
genshot appstore apps --json
genshot appstore import 123456789 \
--project-id project_example \
--platform IOS \
--json2. Inspect and save the exact ordered review
Review decisions are durable and do not mutate Apple. Supported actions are `keep_existing`, `use_generated`, `remove`, and `regenerate`; the order on the command is the intended store order.
genshot appstore screenshots --project-id project_example --json
genshot appstore review \
--project-id project_example \
--locale en-US \
--display-type APP_IPHONE_67 \
--decision use_generated:gimg_first use_generated:gimg_second keep_existing:apple_third \
--json3. Publish explicitly, then verify the publish ID
Non-interactive publishing requires `--yes`. Keep the returned publish ID and poll status until the expected images are both uploaded and processed. A failed or partial status is evidence to inspect, not a reason to repeat replacement blindly.
genshot appstore publish \
--project-id project_example \
--locale en-US \
--display-type APP_IPHONE_67 \
--yes \
--json
genshot appstore status ascpublish_example \
--project-id project_example \
--jsonProduction safety checklist
- Use the narrowest Apple role and protect the one-download `.p8` file.
- Import and bind the intended app, platform, editable version, locale, and display type.
- Save an explicit review before the first write.
- Use JSON mode in agents and CI so stdout contains one parseable object.
- Store the publish ID and verify Apple processing before declaring release completion.
- Disconnect the credential when the workflow no longer needs it; imported images remain.
Sources and verification
Product capabilities and changing requirements were checked against these primary pages. External pages can change after the verified date above.
Related App Store screenshot resources
Open the live API contract
Verify current request and response fields before building a non-interactive workflow.
Open the live API contract