What the App Store actually does.
Every post here is something that cost me days to work out and takes you ten minutes to read. No launch retrospectives and no revenue screenshots. Just the mechanics, with the API calls that worked.
Posts
newest firstThe first posts go up shortly. Each one is drafted from notes I kept while the problem was still live, which is why the details are right. Here is the queue.
Review and submission
queuedA Resolution Center reply is not a resubmissionqueued
Eighteen days sitting in a queue that was empty, and the API sequence that actually resubmits.
Rejected twice for 2.1(b) because the reviewer could not reach the purchasesqueued
Gating in-app purchases behind game progress a reviewer never makes.
Your first in-app purchases must ship attached to an app versionqueued
Why submitting them alone is refused, and the one submission that carries all three items.
A version can look submitted while nothing holds itqueued
Check the review submission state, never the version state.
Signing and build
queuedEvery signing error message points the wrong wayqueued
A missing certificate reads as "No Accounts". A locked keychain reads as an internal component failure on a random framework. How to diagnose it properly.
xcodegen was silently overwriting my version numbersqueued
Every binary shipped as 1.0 build 1 regardless of what the lane stamped.
Discovery and measurement
queuedA keyword change raised my impressions sevenfold and cut downloads to a fifthqueued
Impressions are not the scoreboard. Judge ASO on downloads.
You get 70 custom product pages per app, each with its own keywordsqueued
Each carries its own keywords, ships without an app update, and is automatable through the API.
The free App Store surfaces that sit unclaimedqueued
In-App Events appear inside search results, Game Center gates the Top Played chart, and the Small Business Program is a form and a permanent raise.
Pulling Apple analytics without the web UIqueued
Which reports are useful, which return zero instances forever, and the four levels of indirection to the actual data.
Never gate an analytics event behind a session fetchqueued
Nine completions in the database produced four events, and every rate computed from them was wrong.
Counting installs honestlyqueued
Device identifiers are not people, a second account on one device stays one person, and how to tell Apple's reviewers from your users.