So I have a few renewable monthly subscription based In App Purchases. They rejected my app because it does not implement a 'Restore' function anywhere...however I have it set up so it checks the receipts and refreshes if none found (ie. they may sign into the same device with a different Apple ID then when initially downloading the app) and reverifies it....soo...I do not see where I would place this 'Restore' button because it does not seem like it would ever actually appear. Where would I put this 'Restore' button at within the application? Any luck from any fellow developers that dealt with this issue? I am unable to find any proper documentation from Apple explaining this besides stating 'You need this'
Regarding Restore Purchase for In App Purchases
For any app which runs in the sandbox, there is never an appStoreReceipt at first launch after the app has been installed via Xcode, TestFlight (or in App Review). Many apps implement the SKReceiptRefreshRequest method to have the app implement a provisional appStoreReceipt for this case. In App Review, when there is the resulting Authentication dialog, the reviewer will always cancel the dialog and the app needs to handle this case. There is no requirement in the App Store Guidelines that there be an appStoreReceipt present before the first purchase is made.
As I understand, App Review will check that user can restore previous purchases and will look for a "Restore" button after re-installing the app. Many StoreKit implementations have a tiny "restore" button below the "BUY IT NOW" button. Pressing "restore" causes the app to make the restoreCompletedTransactions call - which will result in the updatedTransactions delegate called with the .restore transactionState. You may want to do otherwise, but make the button easy to find.
rich kubota developer technical support CoreOS/Hardware/MFI