Guideline 2.1(b) and in-app purchases the reviewer can't find
“make sure they are complete, up-to-date, visible to the reviewer and functional”
Guideline 2.1(b) says that if your app sells in-app purchases, each one must be complete, up to date, visible to the reviewer and working. If the reviewer can't find a purchase you set up, or it fails when they try it, the version is turned down as incomplete. When a purchase really can't be reached in the app, Apple asks you to explain why in the review notes.
Checked against Apple’s guidelines on (Apple’s version of ). Apple’s reviewers make the final call.
What Guideline 2.1(b) means
Every product you add to the submission is reviewed with the app, so the reviewer has to be able to find each one and try it. A product that only appears after an hour of use, on a special date, in one country or for a certain kind of account can look missing to someone starting from a fresh install.
Apple's Business section adds that if your business model isn't obvious, the metadata and review notes should explain it, because a reviewer who can't understand how purchases work will delay the review and may reject it.
Subscriptions have one more need: Apple's help page on a complete review asks for a demo account with an expired subscription, so the reviewer can go through the whole purchase flow instead of landing in an account that already has everything.
Apple's App Review Help has a page on configuring in-app purchases for review in the sandbox, the test environment where purchases cost nothing, which is how reviewers try them.
Why apps are turned down under Guideline 2.1(b)
The reviewer couldn't find the in-app purchases
The purchase sits behind a long path, a sign-in, a usage limit or a feature flag the reviewer never reached, and the notes didn't say where it is.
The purchase didn't work
Buying showed an error or nothing happened, often because the product isn't fully set up in App Store Connect or the ID in the app doesn't match the one there.
The purchase doesn't match its description
The name, price or content in the app differs from what was submitted, or the product unlocks nothing visible.
How to fix it and resubmit
- List every product in the submission and, for each one, write down the exact taps from launch to the purchase sheet.
- Make each product reachable on a fresh install without waiting or special conditions; if one can't be, say why in the notes.
- Check each product in App Store Connect: the same ID as the app uses, a display name, a price, a review screenshot and every required field filled in.
- Buy each one in the sandbox on a real iPhone, restore it after reinstalling, and for subscriptions prepare a demo account whose subscription has expired.
- Add the taps for each product to the review notes, include the products with the version, and resubmit.
How Borel helps
When a Borel app sells something, the publish flow creates each product in App Store Connect before Borel's Mac builds the app, and the app finds them by the same IDs, so the store and the app can't drift apart.
The review notes Borel drafts list every product with its name, type and product ID, say where to buy and where Restore Purchases is, and state that prices come from StoreKit and nothing is sold outside In-App Purchase.
Questions people ask
Why does Apple say it can't find my in-app purchases?
The reviewer couldn't reach them from a fresh install with the demo account. Say in the review notes exactly where each purchase is, or why it can't be shown, and make sure nothing hides it behind time, location or usage.
How do reviewers test purchases?
In Apple's sandbox, the test environment where purchases cost nothing. Apple's App Review Help has a page on configuring in-app purchases for review there.
What demo account does a subscription app need?
Apple asks for one with an expired subscription, so the reviewer can see and try the whole purchase flow.
Related guidelines
Words on this page
Make an iPhone app that's ready for review
Describe the app you want and see its first screens before you pay anything.
See your app free