If this is an Apple problem, I'd submit a bug report using the Apple Developer Feedback Assistant web page. It will help to include diagnostic information as evidence that the problem lies with Apple. If you can replicate the issue, then I'd install the StoreKit Profile as is available on the Bug Reporting Profiles and Log page <
https://developer.apple.com/bug-reporting/profiles-and-logs/> and capture a console log from the device and include it with the bug report <
https://feedbackassistant.apple.com>. However, it's not clear to me that this is an Apple issue -
When a user attempts an in-app purchase and the StoreKit UI indicates that the transaction was successful, one can assume that the application's updatedTransactions delegate method is called with the .purchased transactionState. At this point, it's the responsibility of the app to handle the successful transaction indication. This raises the question - what does the app do to process the .purchased transactionState. What might cause the application to fail to provide the services associated with the in-app purchase?
Does the application log the failure condition to the device console log? My guess is that you are unable to replicate this issue. If the problem is only happening to your customers, then the issue requires that you obtain diagnostic logging from the affected user.
If the app's updatedTransaction delegate is being called with the .purchased transactionState and the app detects an issue, make sure that the app does not call finishTransaction. The finishTransaction call should only be made after the app has provided the paid for content to the customer. As a reminder, you should also make sure that the app calls addTransactionObserver at app launch time. If the finishTransaction call is not used, the transaction remains on the app queue and will be detected when the transactionObserver queries the App Store for queued transactions.
rich kubota - rkubota@apple.com
developer technical support CoreOS/Hardware/MFI