- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的用户在应用程序购买中遇到了这个问题,其中只有一半或有时四分之一的用户能够成功地在应用程序购买中进行自动续订。在网上进行了一些研究后,我找不到任何解决方案并与 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/
我一直在尝试将 Redux 集成到项目中。 我按照使用示例进行操作,但收到错误store.getState is not a function。 所以我知道其他人也问过类似的问题,但情况略有不同。 R
我正在尝试将我的第一个应用程序上传到 App Store。我已完成 iTunes Connect 所需的所有步骤,我的应用程序状态为“等待上传”。 我相信下一步是使用 Application Load
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
App Store 有所谓的“服务器到服务器”通知。也就是说,当您购买应用内功能时,Apple 服务器会向您服务器的回调方法(发送收据数据)发出 HTTPS 请求。 问题是 - 收据数据中似乎没有用户
我已经将我的第一个应用程序上载到App Store,但是我没有放置我的App需要位置服务和wifi的UIRequiredDeviceCapabilities。结果:该应用程序没有像应做的那样开始寻找坐
由于iOS 8将于本月发布,并且我的应用仅支持32位(因为第3个库仅兼容32位),因此我不确定如果我将新版本的应用提交给我,则该应用的新版本是否会被拒绝App Store将于下个月发布,因为它不支持6
我有一个让我有些困惑的问题。 为了将我的应用提交到App Store,我必须输入Bundle ID后缀。如您所知,Bundle ID会获得Bundle ID后缀的确切名称(您在Bundle ID后缀上
如问题所述,我想知道更新后的应用程序一旦获得批准,是否会自动发布到应用程序商店中? 我的更新已完成并且已经过测试,由于需要几天的时间才能批准,因此我希望现在将其提交批准。同时,我需要在服务器上更改一些
获取应用程序提交到 Apple App Store 的屏幕截图的最简单方法是什么,需要包含的各种尺寸是多少? 另外,是否允许状态栏?我相信我听说它不是,但是包括 Facebook 和 Quora 在内
我在 iTunes 商店中有一个应用程序,其分发证书(在 key 链访问中)将于明天到期。它是一年前生成的,尽管我最近更新了我的 iPhone 开发者计划,但我还没有更新任何证书或签名。 当我将测试设
我的商店包含以下 reducer : export const centralStampState = { layoutState : layoutReducer, //this one is n
我即将将我的应用程序提交到 Apple App Store,并且我了解到 Apple 需要两周时间才能对其进行审核,然后才能上线。但是,在 iTunes Connect 的定价部分,它询问我什么时候发
如果我的应用程序正在接受审核或已获得批准(因此处于 Ready For Sale 状态或同等状态),我可以编辑哪些应用程序信息而无需提交应用程序的新版本? 最佳答案 据此Apple Documenta
我已经在Opera管理控制台上进行了全面检查,看不到他们在哪里提到付款方式。他们说明何时制作,但没有说明。即Paypal,Cheque等。 有人知道他们如何付款吗? 最佳答案 当金额达到200美元时,
我上传了我的二进制文件并创建了屏幕截图。我做的所有屏幕截图都是 640x960,我将它们上传为 PNG。这背后的想法是,我应该以尽可能最好的质量把它交给他们,这样当他们将它们重新压缩成 320x480
我从Microsoft下载了Windows 8 app samples,并下载了这些示例之一加速度传感器示例 我不知道如何测试它以计划使用此功能的软件? 我没有水面设备,想知道只有一种方法可以做到吗?
我正在为TestFlight上传第二个应用程序。第一次进展顺利,但这次却被拒绝了。 We have started the review of your beta app, but we are no
不确定这是正确的论坛,如果不是,我提前道歉。 某处是否有 App Store 新版本的提要?还是带有类别和发布日期的应用提要/列表? 此列表已从 App Store 中消失,我想看看是否可以制作一个应
我有一个 JSON 存储,定义如下 var subAccountStore = new Ext.data.JsonStore({ autoLoad: true, proxy: { ty
我有一个提交到应用商店的应用被拒绝,原因是: 2.30 不符合 Mac OS X 文件系统文档的应用将被拒绝 他们声称我的应用正在修改不受支持的 ~/Library/Preferences/com.a
我是一名优秀的程序员,十分优秀!