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

1

7

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.

Snowfield answered 29/5, 2016 at 13:42 Comment(0)
S
6

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!

Snowfield answered 2/6, 2016 at 1:22 Comment(1)
I ended up purchasing a 3rd party app to generate the receipt validation code for iOS called Receigen - it was fairly easy to integrate into Xcode. I used it for both receipt validation (app and in-app purchases) and to determine the original application version (bundle version) with the app receipt. I could then compare the user's original bundle version against the bundle version used for paid users to determine whether the user originally purchased the app. The website (receigen.etiemble.com) gives you sample code for all of this.Snowfield

© 2022 - 2024 — McMap. All rights reserved.