Post

Replies

Boosts

Views

Activity

Reply to Non-consumable IAP app rejected: Pro auto-unlocked for pre-1.0.5 paid users, App Review asks for expired subscription account
Follow-up / Update Update: New rejection – “Unlock Pro not responsive” on iPad, cannot reproduce locally I wanted to provide an update, as the app was rejected again after addressing the previous feedback. New rejection details Apple now reports the following issue: Guideline 2.1 – Performance – App Completeness Bug description: “Unlock Pro is not responsive” Steps to reproduce (per review): Tap “Unlock Pro” No action occurs Review device: iPad Air (5th generation) OS: iPadOS 26.2.1 This is confusing because: The app works correctly on my devices I tested the full purchase flow successfully: on physical iPhone in the iOS Simulator even on an iPad simulator The StoreKit purchase sheet appears as expected when tapping “Unlock Pro” I followed Apple’s advice to: uninstall previous versions reinstall fresh test upgrade paths I still cannot reproduce a state where tapping “Unlock Pro” does nothing. Important technical detail (possible cause) Looking closer at my implementation, I realized there is a silent-failure code path: When “Unlock Pro” is tapped: purchasePro() is called If Product.products(for:) fails or returns an empty array (sandbox / network / StoreKit timing issue), proProduct remains nil The function logs "Product not found" and returns No user-visible feedback is shown From a user (or reviewer) perspective, this results in: Tap “Unlock Pro” → no visible action This could explain Apple’s observation, even if the issue is intermittent and not reproducible locally. Additional complication: iPad testing Although the app is marked as iPhone-only in App Store Connect, Apple tested it on an iPad Air (5th gen) in iPhone compatibility mode. I’m now assuming: App Review may still test iPhone-only apps on iPad StoreKit behavior (timing / product loading) may differ slightly in that environment Planned fix To make the purchase flow App-Review-proof, I am implementing: A dedicated HydraProView that is: always accessible visible even when Pro is already active Explicit loading and error states: disable “Unlock Pro” while products are loading show a visible error message + retry button if products cannot be loaded Ensure that no tap can ever fail silently, even if StoreKit temporarily returns no products Questions to the community Have others seen StoreKit sandbox product loading intermittently fail during App Review, leading to “button not responsive” reports? How did you solve that? Is it common for Apple to test iPhone-only apps on iPad and hold them to the same stability expectations? Does Apple generally accept the solution of: disabling purchase buttons while loading and showing a visible error + retry instead of silently returning? Any insight or confirmation would be appreciated. At this point, I’m confident the issue is not a functional bug, but an unhandled StoreKit edge case combined with App Review environment differences. Thanks again to everyone who helped on the first post.
Topic: App & System Services SubTopic: StoreKit Tags:
5d