We have an iOS app using StoreKit 2 only (no RevenueCat).
Products:
- pro1 (non-consumable)
- monthly (auto-renewable)
- annual (auto-renewable, 14-day introductory free trial)
Current App Store Connect state:
- all products are submitted / attached to app version 1.0
- subscriptions and IAP are now in Waiting for Review
- annual has an introductory offer configured in App Store Connect
- monthly and annual are in the same subscription group
App behavior: We load products using Product.products(for:) with all three product IDs. In TestFlight, for multiple tester accounts, StoreKit still returns no usable products and the paywall remains in retry state. Earlier debug checks showed:
- annual.subscription?.introductoryOffer == nil
- isEligibleForIntroOffer == false
Because introductoryOffer is nil, this does not appear to be only a tester-eligibility issue. It looks like the annual subscription product is not yet surfacing its intro offer/product data in TestFlight.
Question: Is it expected that Product.products(for:) / Product.SubscriptionInfo.introductoryOffer may continue returning no subscription products or no introductory offer in TestFlight while the products are only in Waiting for Review? If so, is there a typical propagation delay, or is there anything else we should verify beyond:
- products attached to app version
- products in Waiting for Review
- Paid Apps agreement active
- intro offer configured on the annual subscription
Any guidance would be appreciated.