I have implemented in app purchases into my app update for the first time, only too wait 3 weeks and have it rejected for the following reason:
We found that your app offers In-App Purchase/s that can be restored but it does not include a "Restore" feature to allow users to restore the previously purchased In-App Purchase/s. To restore previously purchased In-App Purchase products, it would be appropriate to provide a "Restore" button and initiate the restore process when the "Restore" button is tapped.
Now I was thinking of adding a navbar
button to the right (top) of my table where the app purchases can be seen/tapped and adding the following code that will be linked to the button:
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
Can someone verify that this is correct and most likely all that is needed? Would like this to pass successfully this time. Thanks in advance!
I've been rejected for the same reason. It's due to the fact that you can be signed in with the same
Apple ID
on different ios devices.For example, let's say I'm logged into
test@iCloud.com
on an iPad. When I download your application I realize that I would like to remove the ads (let's say you have ads on your app if you don't), so I remove them for99¢
. One year later, I decide to buy an iPhone, and sign intotest@iCloud.com
on that account, and I download your app again. The ads are still there, though, even though I already payed for them. Who would like to pay for the same thing twice? With therestore
feature, I can restore the purchases that I made on myiPad
, and make them work on myiPhone
.To restore the purchase, you could use:
After that, you need to also provide the content that the user bought.
Alex, i've been rejected for the same reason last week, and this is right what Apple wanted - after adding such a Restore button they didn't ask any other question on this subject.
Of course, you need not only to call
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
, but implement the restoring itself too (i mean, providing the content to user).I use a variation of this:
Sorry, I'm on my iPad if this makes no sense.
Alternative to restore button could be a restore switch in app settings bundle. It does not overwhelm UI and seems like Apple welcomes it (but be sure to mention that you have implemented mechanics this way).