IAP which unlock past added features + those added for 1 year

Dear everyone,


I'm about to finish my first version of an application and would like to add an in-app purchase, but I find it hard to clearly work with the different in-app purchases types to do what I want.


In short, I would like to add an in-app purchase that unlock the application and let the user receive the new features for 1 year since its purchase and then another in-app purchase will be available to upgrade and unlock every feature and the ones added for the coming year since this new purchase. With that, I want to offer a 14-days free trial that makes it possible to test the application freely before unlocking with the in-app purchase.


The problem is basically with the upgrade since I think I've figured it out for the rest. Let me know if this doesn't work, but what I have in mind is:


1. Create a free trial using an Introductory Offer

2. Create a non-consumable in-app purchase for the first item that unlock every feature + those added for 1 year

3. Create a non-renewing subscription item that would unlock the released features + those added for 1 year. This one would appear after 1 year of the in-app purchase from point 2.


Then, every year the customer could renew the in-app purchase at point 3 or wait some times before upgrading again or never upgrade and keep the features that were added during the time of its purchase.


So my question, I've seen some place online that say that a non-renewing subscription information is kept in the receipt and some others that say that it is not kept in the receipt and need to be kept on our own server. So, I would like to know which one is correct ? I don't have a server to deal with that and feel it's so much safer and less error prone to have it directly in the Apple receipt than having to copy it to a server and then making sure it's scanned from other devices with the same Apple ID.


My idea would be to have the information in the receipt and calculate the 1 year of added features from the time of purchase from the user. And then, to retrieve and unlock the features the user is allowed to use, I would add a restore button that would call StoreFront to retrieve the receipt and scan the purchased items and see the date the last purchase end so I can unlock up until that date. For that, I would need to keep all the purchase information in the receipt, so is it something I can be sure that would be kept inside the receipt? Or I really need to create a workaround to save those informations?


With that, am I correct for the in-app purchase at point 2 that I need to create a non-consumable in-app purchase? I mean, it's a purchase that would unlock for 1 year, but the unlocked features are kept after that. So, it's the same thing as point 3, but as the first unlock I would price it higher so those after are cheaper upgrades.


So, again, is this the way to go by using non-renewing subscription items or if I want to make sure the items are kept in the receipt I should only create non-consumable items? I mean, I would create multiple non-consumable items like:


1. App unlock

2. Upgrade 1 year

3. Upgrade for another year

4. Upgrade for another year

5. Upgrade for another year

6. Upgrade for another year

...


Which should work, but I preferred to have 1 upgrade items that could be bought multiple times.


Thanks for your help!

Replies

TMI.


If you want to make stuff available for a fixed period of time, use a non-renewing subscription.

If you want to make things available forever, use a non-consumable.

If you want to allow the user to sample the non-consumable or the non-renewing subscription for an introductory period of time then use a free introductory offer non-consumable. This will leave an indelible record in the user's iTunes/App Store account showing they used the free period offer.


If you want to do-it-yourself it is getting a bit difficult to leave an indelible record. You can certainly do that through "DeviceCheck" but that may require a server. You could also write a file to the keychain - but that is supposedly being eliminated. And you could use CloudKit to write a record that will indelibly mark the user's iCloud ID as having used the free offer.


If this doesn't answer your issue, try to state it a bit more succinctly.

Thanks PBK for your answer. This is really appreciated!


But this doesn't clear my mind completely. So, I'll try to be more succinct.


In short, I want to do something like the application "Working Copy" : https://apps.apple.com/us/app/working-copy/id896694807?ign-mpt=uo%3D6


My problem is more with the Upgrade purchase. What I want is an in-app purchase that unlocks the features added previously and those added in the coming year, but then they need to pay again to unlock the features added in the year after. So, it's like a non-consumable purchase since the features are kept indefinitely, but like the non-renewing subscription since the purchase works to unlock the added features for 1 year and need to be renewed to unlock those added after.


In other words: there's a timeframe and the item need to be bought again, but features added during this timeframe are kept indefinitely.


So, does the non-renewing subscription could be used for that or I need to create many non-consumable purchases so the user can buy one after the other to keep the record in the receipt (I mean, to buy a different one every year that it wants to renew) ? From looking at Working Copy, there is only one in-app purchase for the upgrade, so my understanding is that a non-renewing subscription is used, but does the non-renewing subscription add an indelible record to the App Store account so I can retrieve the information and know the purchase dates?


Thanks again for any help!

So you want to place into a basket all of the features from T=1 to T=2 and into another basket the features from T=2 to T=3. I assume that you want teh user to retain the T=1 to T=2 features forever.


You can do this either way. The receipt will indelibly record what the user has purchased - both non-consumables (by name) and also the non-renewing subscription (initial purchase date). The advantage of the multiple non-consumable IAP is that it allows a user to purchase T=2 to T=3 features more easily because they are identified by name not by time. And your app can use restoreCompletedTransactions to recover those purchases. In teh non-renewing subscription you will need to decode the receipt and correlate time periods with features.


I think the answer is in the number of time periods. If you will have more than X then divide them into time periods and sell them through a subscription model, like you accumulate issues of a magazine like National Geographic, all with the same name but with different dates. If fewer than X then sell them like widgets using a different name for each item.