如何确定购买该应用(不是应用内购买)的原始版本或日期

Posted

技术标签:

【中文标题】如何确定购买该应用(不是应用内购买)的原始版本或日期【英文标题】:How to determine the original build or date that app (not in-app purchase) was purchased 【发布时间】:2016-09-27 09:28:59 【问题描述】:

我的应用目前是付费应用。我想将该应用程序转换为具有 IAP 和祖父(为所有为该应用程序付费的用户)免费提供 IAP 功能的免费应用程序。我想我可以使用收据验证来(1)确定应用程序的原始购买日期 - 但这似乎仅适用于 IAP 或(2)使用原始应用程序版本(这似乎是构建版本而不是应用程序版本)。但是,当我在 testflight 中对此进行测试时,原始版本号始终为“1.0”。各种消息来源称这是一个测试飞行问题,发布应用程序将在购买应用程序之日正确识别构建。 https://forums.developer.apple.com/message/42107#42107我还没有在 *** 上看到这个问题 - 许多关于查找应用购买日期的问题是在 ios 7 中的收据验证之前或适用于应用内购买,而不是应用的初始购买

我有 3 个相关问题,看看我是否走在正确的轨道上: 问题1:我可以使用原始应用程序版本来识别在我的应用程序转换之前购买的用户吗?也就是说,可以通过将购买版本 1.30 或更早版本的用户与最新版本 2.0 进行比较来识别他们,然后我可以授予原始版本号

问题 2:有什么方法可以在应用发布之前测试代码,例如使用试飞?

问题 3. 有没有其他方法可以将应用程序转换为免费增值服务而不让现有用户还款(即使他们在新设备上下载应用程序)?

我使用 Receigen 来获取收据数据并测试我的模型 - Receigen 指出测试原始版本号要么为零要么为零,但没有说明在发布应用程序时是否已解决此问题。

【问题讨论】:

【参考方案1】:

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

【讨论】:

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

以上是关于如何确定购买该应用(不是应用内购买)的原始版本或日期的主要内容,如果未能解决你的问题,请参考以下文章

关闭应用内购买?

iOS 应用内购买。如何查看购买是不是已经购买?

Honouring应用内购买离线+删除已取消的购买

在 Pending Developer Release 中,应用内购买的行为如何?

如何确定单个应用内购买交易的收益

我是不是已经提交了一个实际的二进制文件来测试应用内购买?