restoreCompletedTransactions across devices

On a first device, I have purchased 14 non consumables products. Pressing a Restore button, restoreCompletedTransaction is executed and a print (transactions.count) gives 14. All is correct.

On a second device, I have not purchased any product yet. Pressing the same Restore button, restoreCompletedTransaction is executed but no transactions are returned. The print is not even executed. My initial expectation was to get 14 transactions on that second device.

According to Apple documentation : "restoreCompletedTransactions sends a request to the App Store to restore all of your app’s completed transactions".

I was assuming App Store to search for the completed transactions regardless the originating device. Apparently, no.

To continue, on the second device I now purchase one product. The Restore button now gives me 1 transaction. That shows restoreCompletedTransaction is tied to the device ????!!!


All the above is tested in Sandbox, with the same user.

How to explain these differences ? Is this due to Sandbox ? Is it reading App Store for the test user or for a device ?

Thanks for any comments