Initial Purchase Date of app(not IAP)

(I cannot find any better place to post this question so I post it here even thought it is not directly about IAP.)


This is from WWDC 2013 Session 308 — Using Receipts to Protect Your Digital Sales:

You've got purchase information about the app itself, plus the In-App Purchases that the user has made, and there's also information there, I mentioned as well, about the Volume Purchase Program, but I think the most exciting thing that we've added to the receipt this year is the initial purchase date and initial purchase version.


So for everyone that's got a paid app on the store today, and you want to make the transition to being a free app with In-App Purchases, previously that used to be quite a challenge for you, because if you simply switch to being a free app with In-App Purchases, your customers would have to go and buy all those In-App Purchases again, but they've already paid for it, and they're not going to like that.


So now in the receipt itself we have the date, when the user first purchased your app, and the version that it was at that time.


So you can use this to make a really informed, intelligent decision about what features and content to grant this user into, so if your app looks at the receipt and inspects it and sees this user bought my app before I made the switch to being free with In-App Purchases, grant them into what they've paid for, but if they purchased your app after you've made the transition to being free with In-App Purchases, you know then not too unlock features and content until they make the purchase and you verify that transaction with the receipt itself.

However, I don't see the Initial Purchase Date field in the receipt. Neither I see it mentioned in Receipt Validation Programming Guide. Is Initial Purchase Date of app really avaiable in the receipt? If so how can I extract it?

Replies

I have an old receipt that has 'original_purchase_date' in it but you are correct it is not documented so it can come and go. The way you accomplish what you most likely want to accomplish is by using:


application_version

"This corresponds to the value of

CFBundleVersion
(in iOS) or
CFBundleShortVersionString
(in OS X) in the
Info.plist"
.


Note that for iOS it is CFBundleVersion not the CFBundleShortVersionString. The CFBundleVersion is "Build number" NOT "Version number"!!!!!!

Probably the "initial purchase date" mentioned in WWDC'13 was replaced with "original_application_version" along the way, to make it easier for developers to handle paid -> freemium transition 🤓