iOS StoreKit testing, expiring doesn't seem to work (but refunds doe), log error...

  • 19 December 2021
  • 1 reply

Badge +5


I’m StoreKit testing and subbing to my monthly or annual products works. Refunds also work. Switching between monthly and annual also works but… cancelling does not. I never seem to see willRenew == false., I do sometimes see this in the logs: 

2021-12-19 18:29:19.582279+0000 Captionista Debug[85027:961458] [Purchases] - ERROR: 😿‼️ The data object identifier couldn't be found on the receipt.

2021-12-19 18:29:19.582382+0000 Captionista Debug[85027:961458] [Purchases] - WARN: ⚠️ /Users/marc/Library/Developer/Xcode/DerivedData/Captionista-dhlqkvltvxzowycfexhqwsaswlxg/SourcePackages/checkouts/purchases-ios/PurchasesCoreSwift/LocalReceiptParsing/ReceiptParser.swift-receiptHasTransactions(receiptData:): Could not parse receipt, conservatively returning true

Any ideas?

Basically I can’t verify that cancellation clears the entitlement.isActive as it stays true when I cancel — no matter what time scale I use e.g. monthly sub with 1 month = 30 seconds.

If I restart the app after waiting, the entitlement is gone - but I can’t verify `willRenew` functionality.


Best answer by tina 27 December 2021, 22:19

View original

1 reply

Userlevel 5
Badge +10

Hey @Marc Palmer 

With StoreKit testing, the receipt is cleared after restarting the device, which is why you’re seeing that the entitlement is gone after resetting. The log message that you see just indicates that local receipt parsing failed, this is just an informative message indicating the on device receipt couldn't be parsed, and doesn't necessarily indicate a larger issue- by returning true, it ensures that the receipt gets sent to our backend for processing.


Have you tried testing on a real device yet?