In App Purchase 订阅在测试/试飞中对我有用,但不适用于 App Review 团队

Posted

技术标签:

【中文标题】In App Purchase 订阅在测试/试飞中对我有用,但不适用于 App Review 团队【英文标题】:In App Purchase subscriptions work for me in testing / Test Flight, but not for App Review team 【发布时间】:2020-08-27 03:51:37 【问题描述】:

我正在处理一个非常令人沮丧的应用程序拒绝。 Apple 曾两次根据Guideline 2.1 - Performance - App Completeness 拒绝我的应用程序。他们说应用内购买(自动续订订阅)在购买后不会解锁高级内容。

我已在 3 台设备和 3 个不同的 TestFlight 帐户上彻底测试了此 IAP。所有测试都完美无缺。我无法重现 Apple App 审核团队遇到的问题。

我的另一个应用程序也使用了相同的 IAP 帮助程序/收据验证,该应用程序在 App Store 上运行了一年多。

我已确保所有产品标识符都匹配。 我重新生成了订阅密钥。

有什么我可能忽略的吗? 是什么导致 IAP 无法解锁仅适用于 App 审核者的内容,而不是我的 6 款经过测试且运行完美的独特设备中的任何一款。

【问题讨论】:

有没有考虑sandboxproduction模式? @DuyNguyen - 是的。在我的收据验证中,我处理状态 21007,它涵盖沙盒到生产 Apple 正在审查的版本指向生产,对吗? @DuyNguyen - 是的。它指向生产 【参考方案1】:

这个问题已经解决了!我的应用在应用内订阅的收据验证中使用了expires_date。事实证明,expires_date 在某些设备配置(设备/ios/语言环境)中容易出错。因此,购买已成功完成,但由于过期日期配置错误,高级内容仍处于锁定状态。

解决方案是使用expires_date_ms 而不是expires_date。 Apple 的文档中甚至都没有记录 expires_date 的内容。

见:https://developer.apple.com/documentation/appstorereceipts/expires_date_ms

希望这可以帮助任何遇到应用内购买订阅无法解锁内容的问题!

【讨论】:

以上是关于In App Purchase 订阅在测试/试飞中对我有用,但不适用于 App Review 团队的主要内容,如果未能解决你的问题,请参考以下文章

iOS In App Purchase仅在App评论中崩溃 - 在沙盒测试中找到作品

如何在 Flutter 中首次购买 In-App Purchases 订阅?

我被迫使用Apple In-App Purchase API

如何在 Android 上使用颤振测试应用订阅

Flutter In-App-Purchase,每次重启应用如何查看是不是已购买?

iPhone In-App Purchase Store Kit 错误 -1003“无法连接到 iTunes Store”