Product Timeout, In App purchase is approved in App Store Connect. The Product ID and Bundle ID match.
Environment
- macOS App in TestFlight
- Bundle ID: com.streamtime.StreamTime
- App Version: 1.1 (Build 51)
- StoreKit 2
- Product ID: com.streamtime.premium
- Status: App & Subscription Approved
Issue
StoreKit product request (Product.products(for:)
) consistently times out after 60 seconds in TestFlight, despite all connectivity checks passing. The same code works perfectly in Xcode with local StoreKit configuration.
Diagnostic Results ✅ Successful checks:
- App Store connectivity (HTTP 200 from buy.itunes.apple.com)
- Backend API connectivity (HTTP 200)
- StoreKit 2 API available
- AppStore.canMakePayments: true
- Valid receipt exists
- Bundle ID matches
- Product ID matches approved subscription
❌ Failing:
- Product request times out after 60 seconds
- No products returned
Code Implementation
// Direct product request (fails in TestFlight)
let products = try await Product.products(for: ["com.streamtime.premium"])
Logs 🔍 App Bundle ID: com.streamtime.StreamTime 🔍 Product ID: com.streamtime.premium 🔍 AppStore.canMakePayments: true 🔍 Apple Store connectivity: HTTP 200 🔵 Direct request for product ID: 'com.streamtime.premium' ⏱️ Direct request start time: 2025-08-30 10:21:32 +0000 ❌ TIMEOUT: Product request took longer than 60 seconds
What I've Tried
- Removed manual in-app-purchase entitlement (per Apple's guidance)
- Using automatic signing
- Verified subscription is approved in App Store Connect
- Using Sandbox Apple ID in TestFlight
- Verified all network connectivity
Questions
- Why does StoreKit timeout only in TestFlight when all other connectivity works?
- Are there additional configuration steps needed for macOS apps vs iOS?
- Could this be related to the automatic in-app purchase entitlement?
Any guidance would be greatly appreciated as this is blocking our TestFlight validation.