iOS 应用内购买 - 如何针对生产服务器进行调试?

iOS in-app-purchases - How to debug against the production server?

如何在不将其发布到 public 的情况下在我的应用中测试真实购买?我需要在应用中完成对订阅逻辑的测试和调试,但我无法退出沙箱。

我将 Ionic 4 与 RevenueCat 的 Purchases Cordova 插件一起使用。

沙盒测试进展顺利。删除应用程序后,我可以购买商品并按预期恢复它们。我不知道重复购买是如何运作的。我想测试这个新的应用程序版本对旧用户的反应以及如何恢复以前的购买。

我希望能够通过真实的生产收据查看从商店退回的商品。无论我尝试什么,Apple 都会把我扔进沙箱。在直接构建到设备并作为 App Store Connect Test Flight 用户时,该应用程序会不断进行沙盒或 Beta 测试购买。

我正在尝试完成应用程序的逻辑,但我没有取回生产用户所需的数据。

测试用例:
我们提供 2 种非续订订阅:1 个月和 1 年。用户最初在 2016 年 2 月购买了 1 个月,然后多次购买了 1 年。我希望在历史记录中看到 1 次 1 个月购买和 5 次 1 年购买。

当前结果:
getPurchaserInfo 方法 returns 一个对象。重复沙盒购买只是不断更新该订阅类型的日期,而不是添加到对象或使用数组。

"allPurchaseDates": {
    "1YearSub": "2020-04-08T21:45:03Z",
    "30DaySub": "2020-04-07T17:00:44Z"
},

期望:
getPurchaserInfo 方法 returns 一组完整的历史记录,无论是在沙盒中还是在生产中。

"allPurchaseDates": [
    {"1YearSub": "2020-04-10T21:45:03Z"},
    {"1YearSub": "2019-04-12T21:45:03Z"},
    {"1YearSub": "2018-04-14T21:45:03Z"},
    {"1YearSub": "2017-04-16T21:45:03Z"},
    {"1YearSub": "2016-04-18T21:45:03Z"},
    {"30DaySub": "2016-03-19T17:00:44Z"}
],

在真实设备上使用合法 AppleId 用户进行测试:iOS 13.4、13.3.1、13.4.1

"@ionic-native/purchases": "^5.23.0"
"cordova-plugin-purchases": "^1.1.0"
Ionic CLI                     : 5.4.2 (/usr/local/lib/node_modules/ionic)
Ionic Framework               : @ionic/angular 4.11.8
Cordova CLI       : 8.1.2 (cordova-lib@8.1.1)
Cordova Platforms : ios 5.0.1
NodeJS            : v10.16.3 (/usr/local/bin/node)
npm               : 6.11.3
OS                : macOS Catalina
Xcode             : Xcode 11.4 Build version 11E146

谢谢

除非您发布应用程序,否则您无法测试生产收据。没有办法解决这个问题。

如果您已经在商店中拥有一个应用程序并且不希望人们使用应用程序内购买,我建议使用仅对您的特定用户启用应用内购买的功能标志。

如果您还没有应用程序,我建议您只在您所在的国家/地区进行软启动,如果您不以某种方式做广告,您很可能不会获得除您的下载之外的任何下载。