Restore button is required when auto-renewable subscription used In App Purchase?
They reject apps that does NOT have the restore button. Every app that provides non_consumable or auto_renewable_subscription purchases MUST have it. They also provide everything you need in order to actually restore user purchases at SKPaymentQueue without having to store it somewhere else.
Which will trigger the method:
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
I recommend this guide, everything there works very well: https://hackernoon.com/swift-how-to-add-in-app-purchases-in-your-ios-app-c1dc2fc82319
Also don't forget to add your Items ID before asking for purchases history.
you should keep a restore button.
The receipt will tell you that subscribed or not and u can validate this with your server. For info
There you have to check latest_receipt_info key, that will be array of json then u read last object and check expires_date key.