Non-renewable subscriptions are spent. Therefore, they cannot be restored. Therefore, the restore button does not make sense. You also need some kind of authentication / login system for the user. (See detailed explanations below.)
Sources:
There was some debate in the comments that non-renewable subscriptions are being spent or not, so I want to say something about it. Consumable means that you can consume them several times. Like “30 minutes of talk” in a telephony application with voice subscription. On the other hand, there are no consumables that you can only buy once. For example, when you open all the levels in the game application. You buy it once, and when you reset the device and download the application, you can restore the purchase, so you do not have to pay twice to unlock all levels. In addition, if you do not press the restore button in this case, but buy the “unlock all levels” package again, it will work, but you will not be charged with an apple a second time. That is why it is called non-expendable. This is a kind of metaphor. Apple is being consumed. Once absorbed, he disappeared. The chair is not consumed. You have it until you destroy it or give it away.
Thus, it makes sense to consider a non-renewable subscription as non-expendable. If you buy it a second time, you should not pay twice, you should just use the old subscription that you already have. If you reset the device, you can restore the subscription after re-downloading the application. Recovery is simply not done by Apple, but by the application itself.
I still consider non-renewable subscriptions as expendable. I use a simple definition of consumed and non-consumable: Purchases purchased in the application are consumed when, from the StoreKit API point of view, they can be purchased several times in one week by the same user. All IAP consumables cannot be recovered through StoreKit. All unused IAP elements can be restored through StoreKit.
So, the developer himself is responsible for restoring the purchase in the application without renewing the subscription, right? No, sorry. How can an application restore a purchase in a non-renewable subscription inside the application? Suppose I have an iPod and I sign up for 1 month of listening to Foo -radio. Now I want to also listen to Foo-Radio on my iPad. Su, I install the Foo-App on my iPad and click on the restore button. Well ... what does the restore button mean? How do I know if I have already bought a Foo subscription or not, and how long will it be valid? Answer: he cannot. This approach does not work.
In order for a non-renewable subscription to work, you must first log in to associate the subscription with an online account. Username / Password, Open-ID, Login via Gmail, Facebook, etc. All of this will work. Then, when a user buys an nr subscription, you must keep the fact that he has subscribed to some server and linked it to his server account. You should also prevent a user from buying an nr subscription when they are not logged in. Continue to work with my iPod / iPad example above. I download the application on my iPad, I log in using Facebook and voila, now I can use the "Foo" subscription. There is no need for a "restore" button, because the application must check the login time, which is signed by the user.
There will be some additional problems. (1) For example, nothing prevents a user from logging on to 200 devices. The problem here is not the user with 200 devices, but the university with 1000 students, where 180 students share the same account. (2) If the server crashes, some people are likely to lose their subscriptions. Problem (1) can potentially lead to lower revenues. Problem (2) can lead to angry and unhappy customers.