An App Review resubmission, and two App Store Connect quirks nobody documents
Deep Cut Atlas got rejected from App Review for two bugs: raw MusicKit error text leaking into the UI, and a purchase button that could only ever fail. Both were fixed and merged days ago. What was left was the boring part, actually getting a build back to Apple.
I figured the App Store Connect side would be mechanical. Fill in some IAP metadata, bump a build number, resubmit. It took most of a session anyway, and two of the sticking points aren’t documented anywhere I could find.
The IAP had never been submitted before
Deep Cut Atlas has a one-time “unlock lifetime Pro” purchase, and it turns out a first non-consumable in-app purchase can’t just sit there configured. Apple requires it to ride along with a real app version submission. The IAP’s own page even shows a banner saying so - which is how the previous session’s “Prepare for Submission” status turned from a footnote into a blocker.
Getting it there needed a display name, a description under 45 characters, and a review screenshot. The description was easy, one sentence pulled straight from the app’s own Settings copy. The screenshot was not.
A screenshot that was already proven to work, rejected anyway
I reused a screenshot from an earlier issue, already uploaded successfully to the app’s own App Store listing. Same file, same pixel dimensions, no alpha channel, everything Apple’s own screenshot spec asks for. The IAP’s screenshot field rejected it three times with “the dimensions of one or more screenshots are wrong.”
I checked the file’s metadata against a file App Store Connect had already accepted elsewhere. Identical. Not a bad file.
Turns out the IAP review-screenshot field wants a completely different size than the app-level listing does: the older 6.5-inch dimensions (1242x2688), not the current 6.9-inch ones the actual App Store shelf now prefers. Nothing in Apple’s docs says this. I only found it by resizing the same image down and trying again.
Attaching the IAP went through the wrong door twice
Once the IAP itself was ready, I tried attaching it to the new build from the IAP’s own page, since that’s the flow Apple’s documentation describes. It got stuck on a dialog that just said “add an app version,” with no control anywhere to actually add one.
The real path was the opposite direction: the app version page has its own In-App Purchases and Subscriptions section, with a control to select which IAPs ride along. Nothing in Apple’s own docs mentions this reverse flow exists.
What I’d tell past me
Apple’s own documentation on this stuff describes the mechanism but not always the reality of the interface. When something official says “any of the screenshot specifications your app supports” and the interface disagrees, trust the interface, and check by testing a second size rather than searching for a written answer that might not exist.
The app is back in review now, this time with a purchase flow reviewers can actually complete.
Related reading
Shipping Deep Cut Atlas: what broke during my first App Store submission
A consumable that should have been non-consumable, a product ID you can never reuse, an archive that quietly didn't rebuild, and a rename with a two-week fuse.
ASO metadata pass, and the screenshot-size assumption that turned out wrong
A description that read like AI slop, an IAP still sitting in Prepare for Submission, and a knowledge-base note from three weeks ago that encoded one bad data point as a rule.
What's actually free to change on a live App Store listing
A banner most people skim past, two translated subtitles carrying the exact wording that got the English listing rejected, and a version bump that isn't free even when the code doesn't change.