Watch it work a real app
Recorded 2026-10-01, dogfooding the packaged CLI against a real app in this portfolio (AprilReady v1.0 โ App Review staging). Real output, no cuts โ MP4 here.
Shipside drives the App Store Connect API with your own key: version, listing text, screenshots, age rating, review contact, build attach โ and the actual submit for review. When Apple's API says no, Shipside prints the exact recovery steps instead of a stack trace.
pipx install git+https://github.com/rorshopping/shipsideOn 2026-09-30 this exact pipeline submitted five apps to App Review end-to-end โ and hit every wall App Store Connect has. The walls became playbooks; the playbooks became the CLI.
Adhera: the age-rating questionnaire turned out to be scriptable โ one attribute per error,
ten round trips, automated. REM Sleep Alarm: the build went INVALID mid-flight โ only the build
dies, the version survives. Quilly: APP_IPHONE_69
is not a real enum; the 6.7″ set takes the 1320ร2868 files. Every scar is now a
shipside playbook. Read the full story โ
Your build is still your job (Xcode / altool). Shipside takes the last mile โ and tells you exactly what it can't do for you.
| command | what it does | writes? |
|---|---|---|
| shipside init | Config wizard โ bundle id, your ASC API key (referenced by path, never uploaded), review contact โ shipside.toml | local file |
| shipside state | Full ASC status report: versions, builds, screenshots, IAPs, review submissions + the next action | no |
| shipside plan | The submission dry-run: every step marked ok / fix / blocked, nothing written | no |
| shipside metadata | Push listing text (fastlane-deliver-compatible folders) into the editable version, char limits enforced | yes |
| shipside screenshots | Upload 1320ร2868 / 1290ร2796 PNGs into the 6.7″ set โ enum trap handled | yes |
| shipside submit --yes | Creates the version (two API routes, 405 playbook), sets age rating + review details, attaches the newest VALID build, submits for review | irreversible |
429/5xx back off respecting Retry-After; a 409 on a retried write means the first one landed โ treated as success.
The .p8 is referenced by path and stays put. Shipside's servers never see your ASC credentials โ the license check is separate.
13 known failure modes โ the 405 deadlock, INVALID_BINARY, ITMS-91055, the 640ร920 trap โ each with its exact recovery steps. Browse them โ
Recorded 2026-10-01, dogfooding the packaged CLI against a real app in this portfolio (AprilReady v1.0 โ App Review staging). Real output, no cuts โ MP4 here.
Per developer. 14-day free trial with every feature โ no card. Activate with the email you buy with.
SHIPDAY at checkout takes 40% off your first year.After checkout, run:
shipside license activate --email you@used-to-buy.com
Your license provisions automatically from the payment โ usually instantly, always within a minute.
shipside trial --email you@example.comshipside initshipside planplan is read-only: it shows every blocker between your app and App Review โ missing screenshots, empty description, no age rating, no VALID build โ and what Shipside will do about each. You lose nothing by looking.