SKReceiptRefreshRequest not working on macOS in production
Originator: | hannes.oud.dev | ||
Number: | rdar://35826398 | Date Originated: | 04-Dec-2017 11:39 AM |
Status: | Closed | Resolved: | 04-Dec-2018 08:08 PM |
Product: | macOS + SDK | Product Version: | 10.13.2 Beta (17C83a) |
Classification: | Serious Bug | Reproducible: | Always |
Summary: In an App released in the Mac App Store, SKReceiptRefreshRequest does not refresh the App’s receipt and does not call either of its delegates. It works only in SandBox and on iOS. Steps to Reproduce: In a released app on Mac App Store: 1. Create a SKReceiptRefreshRequest 2. Implement its delegate 3. Start the request 4. Wait for delegate callbacks Expected Results: 1. One of the two delegate methods should be called eventually: a) requestDidFinish(_ request:) b) request(_ request:didFailWithError:) 2. The receipt should be refreshed after a) is called Actual Results: - Neither of the delegates is called (thus the App is waiting forever) - The receipt file remains unchanged and is not updated Version: 10.13.2 Beta (17C83a) Notes: With a development signed App and Sandbox user, the request performs as expected. On iOS it works in Sandbox and Production. Workarounds: 1. Use SKPaymentQueue’s restoreCompletedTransactions(). Problem: - In Sandbox this however only refreshes the receipt when IAPs were made previously. So when there is no receipt, even after calling restoreCompletedTransactions() there is still no receipt. 2. exit(173). This refreshes the receipt. Problem: The app is forcedly terminated which can lead to data loss, and the user flow is interrupted. The behaviour was observed on 10.13.1 as well as on 10.13.2 betas.
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!
DUPLICATE OF 35745461
Apple Developer Relations
The original report on your issue has been closed recently. Please note that you will not be able to directly view the original report in order to keep its information confidential. If you have further questions about this issue, please update your report using the Apple Bug Reporter http://bugreport.apple.com.
Apple Developer Relations
Engineering has determined that your bug report is a duplicate of another issue and will be closed. The open or closed status of the original report your bug was duplicated to appears in a text box within the bug detail section of the bug reporter user interface. For security and privacy reasons, we don't provide access to the original bug yours was duped to. If you have any questions or concerns, please update your report directly at this link: https://bugreport.apple.com/.