6

I have StoreKit 2 code that works on iOS 15, but fails in WatchOS 8. I'm making a standalone WatchOS app that has a subscription. I took the code that fails and created an iOS app, where it works fine. I'm testing with the simulated Store in Xcode 13. The purchase works fine, and I can see the transaction in the Xcode list of StoreKit Transactions. When I run the app a second time, the iOS app gets the subscription status, but the WatchOS app gets back an empty status array.

await requestProducts()
guard let product = subscriptions.first else { print("No Subscriptions"); return }
guard let sub = product.subscription else { print("Not Subscription",product.id); return }
let statuses = try await sub.status

requestProducts() gets the subscription products (subscriptions) just fine on both iOS and WatchOS. On iOS, the async call to get the subscription status array (sub.status) works. On WatchOS, it returns an empty array. Any idea why, or how to fix it?

EPage_Ed
  • 1,173
  • 11
  • 11
  • 1
    I have the same issue for an IAP. It says the product has already been purchased, but when I look at `Transaction.currentEntitlements` or at the product `currentEntitlement` it is nil. Same code works fine on the phone. – Damian Oct 02 '21 at 04:54

1 Answers1

0

I created an issue in Apple's Feedback Assistant and they corrected it for the WatchOs 8.5. Right now is in beta, I tried it and it works perfectly. If you want to give it a try, download Xcode 13 Beta.