Revenuecat,Flutter - PurchasePackage 不起作用,但没有例外
Posted
技术标签:
【中文标题】Revenuecat,Flutter - PurchasePackage 不起作用,但没有例外【英文标题】:Revenuecat, Flutter - PurchasePackage does not work, but there are no exceptions 【发布时间】:2021-02-10 03:21:02 【问题描述】:这是场景:
-
沙盒用户购买了订阅,但已过期。
沙盒用户尝试再次购买相同的订阅。
Apple 的 IAP UX 未触发,并且 PurchaserInfo 对象返回时没有新的购买和新的权利。没有抛出异常。
在购买者信息对象中,我看到了旧的权利和过期的订阅。
我在这里错过了什么?
【问题讨论】:
您找到解决方案了吗?我遇到了同样的问题,我正在使用最新版本的插件和颤振。在 RCs github 页面上没有任何帮助。 【参考方案1】:对于不同的场景,我面临同样的问题。
有时“purchasePackage”方法成功,有时不返回。不抛出异常,不显示产品的底页。如果再次点击购买按钮,我会得到PurchasesErrorCode.operationAlreadyInProgressError
。沙盒用户和普通用户都会遇到这种情况。
在日志中我看到purchase started
,仅此而已。
【讨论】:
是的。完全相同的问题。 请问您使用的是哪些插件?这可能是插件之间的冲突。identify
方法也有同样的问题,因为插件冲突。我用超时修复了它。
我使用了大量的插件!而且,对我来说,它 90% 的时间都可以顺利运行(我也提交到了应用商店并且应用获得了批准)。但偶尔,我遇到了这个错误。
问题是我们可能会损失的钱!这对我来说非常重要【参考方案2】:
对于那些收到PurchasesErrorCode.operationAlreadyInProgressError
的人:
purchases-flutter
,则该错误本身是由竞争条件引起的,并且可以重现,例如,如果您在错误回调中有重试机制。
更多详情:https://github.com/RevenueCat/purchases-ios/pull/313
解决方案是升级,我建议更新到可用的最新版本(当前为 1.4.3)。
如果您已经在使用purchases-flutter
>= 1.3.0,您应该通过http://support.revenuecat.com 联系RevenueCat 支持,以便他们提供进一步的帮助。
【讨论】:
问题是没有得到 operationAlreadyInProgressError。通话卡住没有错误 您应该始终尝试在您的应用流程中尽早设置 SDK。这样一来,SDK 就会在队列中捕获事务,这可能包括在您的应用程序之外发生的事务(例如来自 iOS 设置菜单)。此外,您应该只需要调用setup
一次,无需再次调用它。如果用户注销,您可以使用 reset
重置 SDK 以使用新的匿名 ID,但您不应在应用中多次调用 setup
。
如下所述,AudioService 和 RevenueCat 之间存在插件冲突。通常,例如在示例应用程序中,一切正常,正如您所解释的那样。但就我而言,在播放音频后,RevenueCat 通话卡住了。【参考方案3】:
最后,经过一周的调查,我发现了问题和解决方法:问题是 AudioService 和 RevenueCat Purchase 插件之间的冲突。在“initState”中调用“Purchases.setup”方法解决了这个问题。
【讨论】:
你的意思是我们应该在调用 Purchases.purchasePackage() 之前调用 Purchases.setup() 吗?我在 main() 上调用 Purchases.setup() 但问题仍然存在 如果您遇到此插件冲突,您需要在获取购买信息和获取产品之前重新设置购买(很可能在 initState 方法中)。以上是关于Revenuecat,Flutter - PurchasePackage 不起作用,但没有例外的主要内容,如果未能解决你的问题,请参考以下文章
Flutter iOS RevenueCat 未捕获异常'NSInternalInconsistencyException'
购买.getOfferings();将 RevenueCat 升级到最新版本后挂起