My app has been rejected twice under Guideline 2.1(b) because its In-App Purchases did not load during review. Both reviews used an iPad Air 11-inch (M3); the latest was on iPadOS 27.0.1. The reviewer's screenshots show the app's fallback state, which appears when StoreKit 2's Product.products(for:) returns none of the products.
I can't reproduce it
The same build loads all four products with their prices in every test I've run:
TestFlight on iPhone and iPad (iPadOS 27.0), with a US account
Run from Xcode with StoreKit Testing disabled, using a brand-new US sandbox account and a fresh install
Starting offline and then reconnecting
Signed out of the sandbox
With In-App Purchases restricted in Screen Time
Setup
Four non-consumables, $0.49 USD, available in all countries, with localizations and review screenshots
Submitted together with the app version (status: Waiting for Review)
Paid Apps Agreement, banking and tax all active
I've worked through Technote TN3186 (Troubleshooting In-App Purchases availability in the sandbox)
Code
Loading is a single call, retried a few times, and the user can tap Try Again:
let products = try await Product.products(for: productIDs)Questions
Is there anything that can stop products from being returned in the App Review environment but not in the sandbox?
Is there a way to check what the review environment sees?
Any help is appreciated.
0
0
90