2016-05-29 58 views
4

我的应用程序目前是付费应用程序。我想将应用程序转换为免费的应用程序,包括IAP和祖父(让所有支付应用程序的用户)免费使用IAP功能。我认为我可以使用收据验证来(1)确定应用程序的原始购买日期 - 但这似乎只适用于IAP或(2)使用原始应用程序版本(似乎是构建版本而不是应用程序版本)。但是,当我在testflight中测试此版本时,原始版本号始终为'1.0'。各种消息称,这是一个测试飞行问题,并且发布应用程序会在应用程序购买日期正确识别构建。 https://forums.developer.apple.com/message/42107#42107我还没有看到这在stackoverflow解决 - 许多关于寻找应用程序购买日期的问题是在iOS 7收到验证之前或适用于应用程序内购买,而不是应用程序的初始购买如何确定购买应用程序(不是应用程序内购买)的原始版本或日期

我有3个相关问题,以查看我是否正在走向正确的轨道:
问题1:我可以使用原始应用程序版本来识别在我的应用程序转换之前购买的用户。也就是说,购买1.30或更低版本的用户可以通过将其与最新版本2.0进行比较来识别,然后我可以授予任何原始版本号为< 2.0的用户免费访问IAP功能。

问题2:在应用程序发布之前是否有任何测试代码的方法,例如:使用testflight?

问题3.是否有任何其他方式将应用程序转换为免费增值而没有获得现有用户的回报(即使他们将应用程序下载到新设备上)?

我使用Receigen获取收据数据并测试我的模型 - Receigen注意到原始版本号的测试是零或零,但并不表示在应用程序发布时这是否已修复。

回答

6

更新:Apple技术支持已确认(1)原始应用程序版本是用于识别现有用户的字段(不是每个WWDC 2013的原始原始购买日期)。 (2)TestFlight和Sandbox不起作用,因为没有当前用户的应用程序历史记录。被鼓励提交错误报告(正如其他人已经完成的那样)。即使TestFlight中的应用程序收据都将“original_app_version”返回为“1.0”,但应用程序投入生产时应该会得到真正的版本。只是希望你没有陷入发展!

+0

你能提供你如何做到这一点的代码? – strangetimes

+0

我最终购买了第三方应用程序来为iOS生成Receigen的收据验证代码 - 这很容易集成到Xcode中。我将它用于收据验证(应用程序和应用程序内购买)并确定应用程序收据的原始应用程序版本(捆绑版本)。然后,我可以将用户的原始捆绑软件版本与用于付费用户的捆绑软件版本进行比较,以确定用户最初是否购买了该应用。该网站(http://receigen.etiemble.com/)为您提供了所有这些示例代码。 – user3000868