StoreKit Products Load After Rebuild But Not on Fresh Install (iOS/SwiftUI)

Problem:

I'm implementing StoreKit 2 in my SwiftUI app. Products load successfully when I rebuild in Xcode, but on a fresh install, Product.products(for:) returns an empty array. The paywall shows "Unable to load pricing."

Setup:

Using StoreKit Configuration File ( .storekit ) for testing Product IDs match exactly between config and code: com..premium.lifetime (non-consumable) com..premium.monthly (auto-renewable subscription) com.****.premium.yearly (auto-renewable subscription) StoreKitManager is a @MainActor singleton with @Published properties What I've Tried:

Initial delay before loading - Added 1-second delay in init before calling loadProducts() Product ID verification - Confirmed IDs match exactly between StoreKitConfig.storekit and code Retry logic with exponential backoff - Implemented 3 retry attempts with 0.5s/1s/1.5s delays Multiple calls to updatePurchasedProducts() - Called twice after initial load Verified StoreKit configuration - File is properly added to project, has valid product definitions Code Structure:

swift @MainActor final class StoreKitManager: ObservableObject { static let shared = StoreKitManager() @Published private(set) var products: [Product] = []

private init() {
    updateListenerTask = listenForTransactions()
    Task {
        try? await Task.sleep(nanoseconds: 1_000_000_000)
        await loadProducts() // Returns empty on fresh install
        await updatePurchasedProducts()
    }
}

} Observations:

✅ Works perfectly after Xcode rebuild ❌ Fails on fresh app install (simulator & device) ❌ Product.products(for:) returns empty array (no error thrown) ✅ StoreKit configuration file is valid and properly configured Question: Why does StoreKit need a rebuild to recognize products? Is there a proper initialization sequence I'm missing for fresh installs?

Environment:

Xcode [Version 26.0 beta 7] iOS [IOS +17.0] Testing with StoreKit Configuration File

StoreKit Products Load After Rebuild But Not on Fresh Install (iOS/SwiftUI)
 
 
Q