Q:

Restoring in-app-purchased items without using restoreCompletedTransactions

My App uses in-app-purchases for contents (non-consumable) and keeps audit of all the purchases in the backend. According to Apple Guidelines, the app should implement restore functionality for restoring already purchased items. Does it always has to be done via a call to SKPaymentQueue:restoreCompletedTransactions or can I use my own mechanism in which I get the list of the purchased items from my backend and restore them in the app?

A:

Apparently, Apple requires the usage of SKPaymentQueue:restoreCompletedTransactions method for restoring in app purchases. Here is the response we got from Apple:

We found that your app initiates the In App Purchase process in a
  non-standard manner. 
It would be appropriate to use the Store Kit to restore In-App
  Purchases. In addition, it would be appropriate to initiate the same
  process that takes place when performing the initial In-App Purchase,
  i.e. prompting the user to provide the Apple ID password and
  confirming the transaction has been completed.

I know, that App review is sometimes a very subjective thing, but to be on the safe side, use the Store Kit functionality for that.

