我的用户在应用购买问题中遇到过这种情况,其中只有一半或有时四分之一的用户能够在应用购买中成功进行自动续订。经过对网络的一些研究后,我找不到任何解决方案并与Apple联系。你可以想象,它们需要很长时间才能回来甚至询问设备日志。一些背景资料;没有关于开发环境和TestFlight的问题。此问题仅发生在生产环境中。此外,我已经检查了iOS版本,设备型号和国家,没有失败用户的模式。当我在等苹果回应时,我尽力调查这个问题,并尝试了一些事情来做进一步的调试。
我通过iTunes Connect发布了一个新创建的订阅组和订阅的新更新,重写了整个IAP代码,并在购买的每个步骤中放置了分析跟踪器,以便能够获取错误日志。
发布后我等了几个小时,看到很多用户无法购买。有趣的是,52位用户中有26位成功完成了购买,但其余的已经面临这个问题。此外,对于遇到此问题的所有用户,也会显示相同的错误日志;
错误域= SKErrorDomain代码= 2“无法连接到iTunes Store” UserInfo = {NSLocalizedDescription =无法连接到iTunes Store}
我在网上搜索了错误,但找不到任何解决方案或理解此错误的含义。
现在我实施了SKError以获取更多日志。
我尝试在生产环境中的4个不同设备上进行购买,并且所有设备都已成功付款。
我的一位用户也通过电子邮件向我发送了抱怨,她收到了Apple的确认电子邮件,称她已收费,但未启用高级功能。现在我们知道他们会受到指控,这更有意思。
从分析跟踪器我可以看出来;
1)该应用程序成功提取可用产品
2)当调用updatedTransactions委托方法时,transactionState变为“purchase”。
3)然后当第二次调用updatedTransactions委托方法时,transactionState变为“失败”。
4)我在trans.error.debugDescription中收到了失败块中的上述错误。
5)由于transactionState失败,我不会使用我的后端验证收据,因此未启用高级功能。
这就是我所知道的。如果有人能帮我解决这个问题,我将不胜感激。 Apple似乎需要很长时间才能解决问题,而且我正在失去付费用户。
您还可以从以下链接查看我的IAP代码: https://www.dropbox.com/s/328si32e73nizyc/IAPHandler.swift?dl=0
答案 0 :(得分:0)
我已经通过在IAP处理程序上实现事件跟踪程序解决了这个问题。
事实证明,当用户点击我的应用程序上的“订阅”按钮,然后在Apple的IAP警报视图上点击“取消”时
paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
上述观察者为交易返回了“ paymentCancelled”错误,您可以通过向您的分析事件跟踪器软件(例如Mixpanel)发送transaction.error
来进行调试。您还可以通过执行以下操作来获取此错误的详细日志
AnalyticsManager.recordEvent(name: "IAP - Transaction Updated", properties: ["Transaction Error": "\(transaction.error.debugDescription)"])
在我的应用程序中添加了这些事件并发布了更新后,我可以很快看到“无法连接到iTunes Store”错误主要是在用户决定退出付款流程时发生的,换句话说,在Apple的IAP上点击“取消”警报视图。希望这会有所帮助。