ios - 为大多数用户 IAP 获取 "Cannot connect to iTunes Store"

标签 ios swift in-app-purchase app-store-connect itunes-store

我的用户在应用程序购买中遇到了这个问题,其中只有一半或有时四分之一的用户能够成功地在应用程序购买中进行自动续订。在网上进行了一些研究后,我找不到任何解决方案并与 Apple 联系。可以想象,他们需要很长时间才能返回甚至询问设备日志。一些背景资料;在开发环境和 TestFlight 上没有问题。此问题仅出现在生产环境中。我还检查了 iOS 版本、设备型号和国家/地区,没有针对失败用户的模式。在等待 Apple 回复时,我尽我所能调查问题并尝试了一些方法来进一步调试。

我发布了一个新的更新,其中包含一个新创建的订阅组和一个通过 iTunes Connect 的订阅,重写了整个 IAP 代码,并在购买的每个步骤中放置了分析跟踪器,以便能够获取错误日志。

发布后,我等了几个小时,看到很多用户无法购买。有趣的是,52 位用户中有 26 位用户成功购买,但其余用户都遇到了这个问题。对于遇到此问题的所有用户,也会出现相同的错误日志;

Error Domain=SKErrorDomain Code=2 "Cannot connect to iTunes Store" UserInfo={NSLocalizedDescription=Cannot connect to iTunes Store}

我在线搜索错误,但找不到任何解决方案或理解此错误的含义。

现在我实现了 SKError 以获取更多日志。

我尝试在生产环境中的 4 台不同设备上进行购买,所有设备都已成功付款。

另外,我的一位用户给我发邮件提示说她收到了 Apple 发来的确认邮件,称她已被收费,但高级功能未启用。现在我们知道他们会被收费,这更有趣。

从分析跟踪器我可以看出这一点;

1) 应用成功获取可用产品

2) 当调用 updatedTransactions 委托(delegate)方法时,transactionState 变为“purchasing”。

3) 然后,当第二次调用 updatedTransactions 委托(delegate)方法时,transactionState 变为“失败”。

4) 我在来自 trans.error.debugDescription 的失败 block 中收到了上述错误。

5) 由于 transactionState 失败,我没有使用我的后端验证收据,因此高级功能未启用。

这就是我所知道的。如果有人能帮助我解决这个问题,我将不胜感激。 Apple 似乎需要很长时间才能解决这个问题,而且我正在失去付费用户。

您还可以从以下链接查看我的 IAP 代码: https://www.dropbox.com/s/328si32e73nizyc/IAPHandler.swift?dl=0

最佳答案

我已经通过在我的 IAP 处理程序上实现事件跟踪器解决了这个问题。

事实证明,当用户点击我的应用程序上的订阅按钮,然后点击 Apple 的 IAP 警报 View 上的取消

paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])

上述观察者返回交易的“paymentCancelled”错误,您可以通过将 transaction.error 发送到您的分析事件跟踪器软件(例如 Mixpanel)来调试它。您还可以通过执行以下操作来获取此错误的详细日志

AnalyticsManager.recordEvent(name: "IAP - Transaction Updated", properties: ["Transaction Error": "\(transaction.error.debugDescription)"])

在我的应用程序上添加这些事件并发布更新后,我可以很快看到“无法连接到 iTunes Store”错误主要发生在用户决定离开付款流程时,换句话说,在 Apple 的 IAP 上点击取消警报 View 。希望这对您有所帮助。

关于ios - 为大多数用户 IAP 获取 "Cannot connect to iTunes Store",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46768745/

相关文章:

ios - 无法将 IBAction 连接到 XIB 中的 UITextField (Swift)

java - android 计费 :4. 0.0 - queryPurchases(INAPP) 和 purchase.getSku()

ios - 如何将 iOS 订阅与现有的订阅网络服务一起使用?

ios - JavaFXPorts 和 robovm-cocoatouch 导入

ios - 导航栏中的 UISearchController

ios - 在 if 语句中声明变量时使用未解析的标识符

开发模式下的 iOS 游戏中心

ios - Alamofire - 使用照片时图像上传失败

ios - Xcode 错误 Command/Applications/Xcode.app/Contents/Developer/usr/bin/momc 失败,退出代码 1

html - epub 和 iBooks 中的交互