[Codeless IAP Plugin] Non consumable products are restored automatically on iOS when the game starts

Hello,

I have a question about the Codeless IAP plugin regarding restoring products on iOS devices. Actually it is more an issue than a question. I’m trying to disable the auto restore of the non-consumable products on iOS when the user has reinstalled the game, but I couldn’t find how to do it. According to Apple recomandations, the game should provide a restore button somewhere in the game, and it should not restore products when it is started, as it breaks the flow of the game, etc… Besides, the game may be rejected because of it.

So I wanted to know if someone else has also encountered this issue, and how to fix it.
By the way, on Android it is the expected behaviour and it works fine, my problem is just for iOS devices.

Thanks !

Correct, I would not expect Restore to happen automatically. How are you making the determination that it’s happening? I suspect your “Successful Purchase” method you have configured for your IAP Button appears to fire automatically when the app starts? How are you testing Restore?

Hello,

I’m listening to purchases with the IAP Listener component, by listening its callbacks inside a manager. It dispatches then the behaviour according to the product ID by calling a method on a scriptable object (there is a SO for each product). If I understand well how the restore feature works, it just simulates a purchase of all already bought products, right ? That’s what I noticed when using the plugin. So the restore and the purchase is handled the same way inside my game, by the manager. When I reinstall the game, the OnPurchaseProduct callback is called automatically on the IAP Listener when the game starts. Then the manager is restoring the products, the same way they are bought during the game.

Is it the right way to do it ?

I have also IAP buttons, one for each product, but I don’t use their callbacks, I prefer to use the IAP Listener to handle everything inside a manager.

Thanks !

@rlefrancoise Thank you for the detail. Yes, that is the right way to do it. You might be right, I will test here. Do you have a Restore button? It’s one of the Codeless button types.

Can you confirm if you have a Restore button?

I have similar problem, I don’t have any restore button. When user clicks IAP Button (which listening its callback with a manager script), it restores previous purchases in iOS (testflight).