Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to determine the original build or date that app (not in-app purchase) was purchased

My app is currently a paid app. I would like to convert the app to a free app with IAP and grandfather (give all users who paid for the app) the IAP features for free. I thought I could use receipt validation to either (1) determine original purchase date of app - but this seems to be only available for IAP or (2) Use original Application Version (which appears to be the build version not the app version). However, when I test this in testflight, the original version number is always '1.0'. Various sources say this is a testflight issue and that the release app would correctly identify the build on the date the app was purchased. https://forums.developer.apple.com/message/42107#42107 I haven't seen this addressed on stackoverflow - many of the questions on finding the app purchase date are prior to receipt validation in iOS 7 or apply to In-App purchases, not the initial purchase of the app

I have 3 related questions to see whether I'm heading down the right track:
Question 1: Can I use original application version to identify users who purchase before my app was converted. That is, users who purchased version 1.30 or earlier can be identified by comparing them to the latest build 2.0 and I can then grant any user whose original version number is < 2.0, free access IAP features.

Question 2: Is there any way to test the code before the app is released, e.g. using testflight ?

Question 3. Is there any other way to convert the app to freemium without getting existing users to repay (even when they download the app on a new device)?

I used Receigen to get the receipt data and test my model - Receigen notes that testing for original version number is either nil or zero but doesn't say if this is fixed when the app is released.

like image 888
user3000868 Avatar asked May 29 '16 13:05

user3000868


1 Answers

UPDATE: Apple technical support have confirmed (1) Original Application Version is the field to use to identify existing users (not original original purchase date per WWDC 2013) . (2) TestFlight and Sandbox don’t work as there is no application history with the current user. Was encouraged to file a bug report (as others have already done). Even though application receipts in TestFlight all return the original_app_version as “1.0”, you should get the true version when the app goes into production. Just hope you didn’t mess up in development!

like image 188
user3000868 Avatar answered Nov 16 '22 21:11

user3000868