Docs

Shipshot turns raw phone captures into store-ready screenshot sets. This covers what it infers, what it cannot, and the failure modes worth knowing before you upload.

Getting started

  1. 01Open the studio and drop in screenshots straight off your phone. No account needed.
  2. 02Dimensions are read locally to identify the device, which fixes the frame, corner radius, Dynamic Island geometry and status-bar height.
  3. 03Copy is generated per screen. Edit any of it — the preview updates as you type.
  4. 04Export. You are asked to sign in only at this point.

Store size reference

Every canvas Shipshot renders, and the slot that accepts it.

CanvasSlotNotes
1284×2778iPhone 6.5"6.5" Display slot
1242×2688iPhone 6.5" altalso accepted by 6.5"
1320×2868iPhone 6.9"6.9" slot only
1290×2796iPhone 6.7"6.7" slot only
2064×2752iPad 13"iPad 12.9"/13" slot
2048×2732iPad 13" altalso accepted by iPad 13"
1440×3120Play phonePlay Store phone

Apple accepts a maximum of 10 screenshots per display size per localisation, and shows the first three on the install sheet. Google Play accepts 8.

Apple's required sizes, exactly

This is what the upload box in App Store Connect will actually accept, per slot, in both orientations. Anything else bounces.

iPhone slotPortrait / landscapeStatusNotes
6.9" DisplayiPhone 16 Pro Max, 17 Pro Max1320 × 28682868 × 1320or 1290 × 2796 / 2796 × 1290 AcceptedSatisfies the iPhone requirement on its own.
6.5" DisplayiPhone 11 Pro Max, XS Max1284 × 27782778 × 1284or 1242 × 2688 / 2688 × 1242 AcceptedThe other accepted option. One of 6.5" or 6.9" is enough.
6.7" DisplayiPhone 14/15 Pro Max1290 × 27962796 × 1290 OptionalOptional. Accepted, but not required on its own.
iPad slotPortrait / landscapeStatusNotes
13" DisplayiPad Pro 12.9" and 13"2064 × 27522752 × 2064or 2048 × 2732 / 2732 × 2048 AcceptedRequired if your app supports iPad. Scales down to every smaller iPad.

You only need one iPhone size

Apple requires a single iPhone screenshot — 6.5" or 6.9" — and a single iPad 13" screenshot. Everything smaller is scaled automatically. Most guides still tell you to build six sets; you do not have to.

  • 1–10 screenshots per slot, per language
  • Up to 3 app previews (video, optional)
  • Formats: .png, .jpg, .jpeg
  • The first three screenshots show on the install sheet

Slots vs. devices

This is the single most common cause of a rejected upload. App Store Connect validates a file against the slot you drop it into, not the device you captured on. A perfectly valid 1320 × 2868 file from an iPhone 16 Pro Max is rejected by the 6.5" slot, which wants 1284 × 2778 or 1242 × 2688.

All four iPhone canvases are within 0.5% of the same aspect ratio, so one capture set legitimately feeds all of them. Shipshot renders every one and names each output folder after its slot, then reads each PNG's header back to confirm its dimensions before you download.

Metadata character limits

Every text field on the version page, with the limit App Store Connect enforces. Hitting one of these halfway through a submission is the classic way to lose an afternoon.

FieldLimitWhat it is
App namerequired30The name on the product page and the Home Screen.30 characters includes spaces. Keyword stuffing here gets rejected.
Subtitle30One line under the name. Your positioning statement.Indexed for search, so it is worth more than most people give it.
Promotional Text170Sits above the description on the product page.The only marketing copy you can change WITHOUT shipping a new build or waiting for review. Use it for launches and sales.
Descriptionrequired4,000The full pitch. Only the first ~3 lines show before 'more'.Front-load the value. Almost nobody taps 'more'.
Keywords100Comma-separated search terms. Never shown to users.100 characters total, not per keyword. Skip spaces after commas — they burn characters. Do not repeat words already in your name or subtitle.
Support URLrequiredURLA page where users can get help.Required. It must resolve, and a dead link is a rejection.
Marketing URLURLYour product site.
VersionrequiredURLThe public version string, e.g. 1.0.Must match the version in the build you upload, or you cannot select it.
Copyrightrequired200Year and rights holder, e.g. 2026 Your Company Inc.No leading © symbol — Apple adds it.

The one field you can change freely

Promotional Text (170 characters) is the only marketing copy you can update without shipping a new build or waiting for another review. Everything else in this table is locked to a version.

What blocks a submission

Your binary can be perfect and your screenshots pixel-exact, and you will still be stuck in Prepare for Submission until these three are done. None of them are code.

Pricing and Availability

Pick a base country and a price tier — including $0.00 for free. Apple derives every other country's price from your base using tax and FX, and you can override any single region.

Why it blocks you: Until a price exists, the version cannot go to review. Pricing takes effect the moment the app becomes Ready for Sale.

  1. 01Choose your base country or region (e.g. United States (USD)).
  2. 02Choose a price tier from the list — $0.00, $0.99, $1.99 and up.
  3. 03Review the auto-generated prices for all 174 other regions.
  4. 04Confirm. You can edit any individual region afterwards.
  5. 05Set a Tax Category — for most apps this is 'App Store software'.
Pricing and Availability in App Store Connect

App Availability

Decide where the app can be bought or downloaded: all 175 countries and regions, a specific subset, or a pre-order in selected regions.

Why it blocks you: A blank availability selection is a submission blocker. Pre-order also changes your release mechanics, so choose deliberately.

  1. 01All Countries or Regions — the default, all 175.
  2. 02Specific Countries or Regions — pick a subset, useful when you have licensing or language limits.
  3. 03Publish as Pre-Order — the product page goes live before the app does, and orders download automatically on release day.

App Privacy

A Privacy Policy URL for each localisation, plus the privacy questionnaire describing every category of data you collect and whether it is linked to identity or used for tracking.

Why it blocks you: Apple will not accept a submission without it, and the answers become the 'App Privacy' card on your product page. Getting it wrong is a common rejection and a bad look once published.

  1. 01Host a real privacy policy at a stable URL.
  2. 02Add the URL under App Privacy for every language you ship.
  3. 03Answer the data-collection questionnaire honestly — including data your SDKs collect, not just your own code.
  4. 04Declare tracking if you use IDFA or share data with brokers.

TestFlight, OTA, and which website is which

TestFlight vs over-the-air updates

Both put new code on a device without an App Store release, but they move completely different things. TestFlight ships a binary. An OTA update ships your JavaScript bundle.

FeatureTestFlightOTA update (EAS Update / CodePush)
What it shipsA full native build (.ipa)JS bundle and assets only
Needs a new buildYes, every timeNo — that is the entire point
Apple reviewFirst external build is reviewedNone
Time to testersMinutes to hours, plus processingSeconds
Audience100 internal, 10,000 external testersAnyone already running the app
Can change native codeYesNo — native changes require a build
ExpiryBuilds expire after 90 daysPersists until replaced

In practice: Use TestFlight when native code, permissions or dependencies changed. Use an OTA update for JS-only fixes and copy changes. Apple allows OTA under guideline 3.3.2 provided you do not materially change what the app does.

App Store Connect vs the Apple Developer site

Two different websites, two different jobs, and the login is the same — which is exactly why people look for things in the wrong one.

FeatureApp Store ConnectApple Developer
URLappstoreconnect.apple.comdeveloper.apple.com/account
Think of it asYour storefront and release consoleYour account and identity vault
App records and metadataYesNo
Screenshots and previewsYesNo
Pricing and availabilityYesNo
TestFlight and reviewYesNo
Certificates and keysNoYes
Bundle IDs and capabilitiesNoYes
Provisioning profiles and devicesNoYes
The $99/year membershipNoYes
Sales, payouts and analyticsYesNo

In practice: Signing or identifier problem? Apple Developer. Anything about the listing, the build or the release? App Store Connect.

Copy generation

Headlines are written by Claude Fable 5 (claude-fable-5) from a description of what is on each screen. The model is instructed to:

  • Never invent a feature that is not visible in the capture.
  • Keep headlines under 38 characters and state a benefit, not a screen name.
  • Name one concrete, visible detail in the subline.
  • Wrap exactly one phrase in *asterisks*, which renders in your accent colour.

Without an ANTHROPIC_API_KEY, the API falls back to deterministic copy so the demo never fails on a fresh clone.

Known traps

Capture chrome

Screenshots taken while recording carry a coloured pill, a live-activity timer, a real wall clock, a drained battery, and sometimes a green active-call indicator. An opaque black band covers that region and a clean 9:41 with full signal and battery is drawn on top. A translucent band blends with the pill instead of hiding it.

Replaced captures, stale copy

If you replace a capture but keep its filename, copy attached by filename silently describes the old screen. Nothing detects it — the render still succeeds. Always re-read the grid after changing captures.

Mixed platforms

iPhone is ~2.17:1 and iPad is ~1.33:1. Compositing one into the other distorts the UI, so iPad needs its own layout and its own project rather than another canvas on an iPhone set.

API

Copy generation is exposed directly. Team plans get export endpoints for CI.

POST /api/generate-copy
{
  "appName": "Stock Picks",
  "screen": "Order filled confirmation, BUY 1 SPY @ $747.03",
  "category": "fintech"
}

→ { "headline": "Orders fill *instantly*",
    "sub": "Confirmed at the ask, at the price you were shown",
    "source": "claude-fable-5" }

Pass screens: string[] instead of screen to generate a whole set in one call — cheaper, and the copy varies more across the set.

FAQ

Do my screenshots get uploaded?

Not in the studio. Captures are read locally with an object URL. Files are only sent when you export.

Can I use my own device frame?

Five bezel finishes ship today. Custom frames are on the Team roadmap.

Does it do iPad?

Yes, as a separate project type — iPad needs a different layout because its aspect ratio is nowhere near a phone's.

What about App Store video previews?

Not yet. Screenshots first.