Hi there!
I'm currently trying to implement IAP in my macOS app and struggling with the feature to restore purchased (non-consumable) products for various reasons:
- When I request a receipt refresh submitting a SKReceiptRefreshRequest according to Apple's doc (in the sandbox, outside of Xcode), the delegate method
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error is alway called with an error = nil - I realized that SKReceiptRefreshRequest is only available since macOS 10.9, while the other StoreKit classes / protocols exist since 10.7; How to handle refreshes with a deployment target < 10.9?
- Most important: What exactly is the purpase implementing this function? I think the user can only "loose" his purchases when deleting the receipt from the app bundle (or the app bundle itself). Then he can re-download or restore the app and a receipt is requested during the first launch. When does a user need to restore a purchase which is a non-consumable product to unlock some app funcationality? Is this function mandatory for the App Store Review?
Any help or hint is appreciated, Mattes