No problem creating content.
The best practice is to perform check verification on a server with an authentication protocol between the application and the server (this is also true for several other mobile app stores). If you perform validation on a device, people can use existing tools to bypass IAP validation and content theft. See https://developer.apple.com/library/ios/#releasenotes/StoreKit/IAP_ReceiptValidation/ for some information.
Therefore, while a server is not required, it is recommended. Only you can tell whether it is worth protecting your content, it is worth it to support the server.
I agree with J. Freeman that direct storage at NSUserDefaults seems weak. I store things in a local file, but the format is attached to the device and it requires a server compute key to create it. Lastly, yes, you must use SKPaymentQueue restoreCompletedTransactions to purchase items purchased on another device. Understand that recovered transactions should also check their receipts on your server.
source share