【问题标题】:iOS Receipt validation failing for long-term users长期用户的 iOS 收据验证失败
【发布时间】:2017-02-10 18:18:13
【问题描述】:

在我们的最新版本中,我们将应用从付费转换为应用内订阅购买。我们向我们现有的用户承诺,我们会将他们加入订阅,因为他们已经为该应用程序付费。在我们的代码中,我们在第一个订阅版本之前寻找带有原始应用程序版本的有效收据。在我们的测试中一切都很好。

当我们发布新应用时,我们开始从我们的长期用户那里得到反馈,他们被要求订阅(他们甚至不应该看到订阅按钮)。在研究该问题时,我们注意到所有这些用户都在 2014 年 9 月将应用转让给新开发者之前购买了我们的应用。

重现此问题很困难 - 我们如何模拟 2014 年的应用安装?我可能能够以受影响用户之一的身份登录,这将涉及使用他们的 Apple 凭据。我不太愿意要求用户分享他们的凭据。

由于我无法重新创建它并且我们的代码非常简单,我对发生的最佳猜测是,我们没有收到在 2014 年应用转移之前购买的用户的有效收据。

所以,我有几个问题:

  1. 有其他人经历过这种情况吗?
  2. 如果是这样,您是如何解决的?
  3. 您将如何对其进行故障排除?

仅供参考 - 我已向 Apple (3045378) 提出问题。

【问题讨论】:

    标签: ios receipt-validation


    【解决方案1】:

    在与 Apple 开发人员技术支持人员交谈时,我们发现了一种使用最近发布的统一日志记录功能从设备中提取 NSLog 消息的方法。我们的几个用户提交了他们的日志,这清楚地表明他们得到了有效的收据,但这些收据最初购买的版本是 4 和 2.8。

    鉴于我们当前的版本是 1.7.1,这些都是奇怪且非典型的数字。但是,收据上报的原始应用程序版本实际上是CFBundleVersion(或Build),它可以是与App Store中报告的应用程序版本完全不同的字符串。

    我假设开发人员在应用转移之前使用的版本编号系统与标准 ... 方案不同。

    我改进了代码中的版本检查并重新提交了应用程序。它于今天发布,到目前为止,一切都得到了正确的继承。

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 2012-07-14
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-03
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多