In-app purchases are not transferring from Mac to iOS App Stores

Our app is a Catalyst app with a single non-consumable in-app purchase. Over the last few weeks we've had a number of users complaining that they've purchased the app on macOS but when they come to restore the same purchase on their iOS devices, our app tells them that there's "No purchase found to restore". This is the code that is giving the message:

public func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
        
  guard queue.transactions.count > 0 else {
    self.setError(text: "No purchase found to restore")
    return
  }

...

So the delegate function is getting called, but the transaction queue is empty.

We never have problems with iOS purchasers restoring purchases to iOS devices. Nor do we have issues when macOS purchasers restore to macOS devices. It's only an issue when macOS purchasers restore to iOS devices.

We now advise users experiencing this issue to go through the purchase route on their iOS devices. This will give them an error telling them that they have already purchased this IAP, but then subsequently the IAP seems to be available to restore on the iOS App Store.

This should not be necessary.

Please advise if there's something else we should be doing to fix this long term. I've also raised Feedback on this (FB11733455).

It's a different app. Why do you think the IAP will transfer to the other app?

(Is there now some way to make the iOS and Mac apps use the same IAPs? Maybe there is something new to make this work.)

It’s the same app and same IAP. Catalyst allows you to do this.

Can you please file a feedback ticket through Feedback Assistant and post the FB number here please?

Correct, universal apps do allow a single app and set of in-app purchases. Thank you for filing the ticket. But to investigate further we will need additional information such as the app name, ID, bundle ID, in-app purchase id's and ideally example apple ID's that experienced this problem. If you are able to reproduce, a sysdiagnose would be great too.

From there we should then have enough to investigate. Meanwhile we would recommended considering implementing our "Proactive Restore" best practice as this process means your app can restore service to customers automatically without any action by the customer. https://developer.apple.com/videos/play/wwdc2022/110404/

Thank you - requested details now added to FB11733455.

Unfortunately I can't provide a sysdiagnose as we are unable to reproduce (it works fine in our dev & test environments).

We will look in to implementing "Proactive Restore" - it looks like a much smoother process for our customers.

Hi - is there any update on this please?

I've just added additional details to FB11733455 as error reports are continuing to come in from users.

In-app purchases are not transferring from Mac to iOS App Stores
 
 
Q