Hello,
I think i got the same issue with my iMessage app extension.
When i use the method :
SKPaymentQueue.default().restoreCompletedTransactions()
to restore transactions i got an error message telling me there is no information about in-app purchases - Sandbox environnement - 21105.
This is probably linked with the receipt created by :
let _receiptRequest = SKReceiptRefreshRequest()
_receiptRequest.start()
The SKReceiptRefreshRequest() never works, i can't have a receipt from apple with it.
So, when i want to test the in-app purchases in sandbox environnement, i need to purchase one of the in-app purchases of the iMessage Extension. Purchase an in-app is the only way that worked to get a receipt. And if i delete the app and download it again i need to purchase each time one in-app to restore the purchases.
I tested this basic method in sandbox environnement in my developpment device and in testflight environnement. Each time same result, to create a receipt it need a bought.
I wonder if its a problem linked to test environnement. If not, the customer will not wan't to buy something they already got to restore purchases.