When my app tries to access a subscription, StoreKit's products(for:) always returns zero results. Similarly, SubscriptionStoreView always shows "Subscription Unavailable" followed by "The subscription is unavailable in the current storefront".
The app is a watch-only app (no iPhone companion app).
The app and the subscription product were each approved in App Store Connect over two weeks ago.
The problem occurs when the app is installed from TestFlight, when the app is installed from the App Store (production), and when run in the Xcode debugger. The only time the app successfully accesses the subscription when simulating it in Xcode with a .storekit file.
How should my app access the subscription?
Repro:
App Store bundle ID: com.toolsay.hoopref
Phone app target (unused) bundle ID: com.toolsay.hoopref
Watch app bundle ID: com.toolsay.hoopref.watchapp
Subscription product ID: com.toolsay.hoopref.pro.annual
Subscription availability: All countries and regions
App Store listing
let products = try await Product.products(for: ["com.toolsay.hoopref.pro.annual"])
products.count is 0.
1
0
124