首页 > 解决方案 > 如何使用 Flutter 在 iOS 中测试验证 InAppPurchase

问题描述

我一直在为我的问题寻找解决方案,但是,虽然我见过很多类似的问题,但没有一个真正有答案。

我正在使用颤振和 in_app_purchase ( https://pub.dev/packages/in_app_purchase ) 插件开发应用程序。我已经逐步按照插件和 iOS 文档进行操作,但我仍然无法测试购买。

该产品是在应用商店连接功能面板中创建的(假设它的 ID 是app_subscription)。由于我创建并提交了产品,它“等待修订”(或类似的东西,我使用西班牙语的面板)。我创建了一个沙盒帐户来对产品进行测试。最后,我已经实现了从应用程序进行购买所需的代码,但是当我尝试从物理设备测试购买时,我失败了,因为 queryProductDetails 函数没有找到具有app_subscriptionID 的产品。

简单地说,检索产品的代码是这样的,正如插件文档所说:

import 'package:in_app_purchase/in_app_purchase.dart';
...
InAppPurchaseConnection _iap = InAppPurchaseConnection.instance;
...
Set<String> ids = Set.from(['app_subscription']);
ProductDetailsResponse response = await _iap.queryProductDetails(ids);
print(response.productDetails); // prints: []

我开始认为我拿不到产品的原因是因为它没有经过审稿人的验证,但是已经一周了,状态没有改变。我已经填写了所有必需的元数据,包括屏幕截图。

如果您需要更多信息,请告诉我。

提前致谢

编辑(2019 年 12 月 2 日):App Store 终于接受了我的构建并发布了我的应用程序,但他们将我的产品置于“需要开发人员操作”状态,据称是因为他们进行了购买但被退回了......是,我仍然无法测试我自己的购买,因为代码还没有被识别。我应该怎么办?我已经尝试编辑我的产品描述并再次测试购买,但它不起作用......

标签: iosflutterin-app-purchasesandboxapp-store-connect

解决方案


如果您的应用未获取产品,则很可能是 App Store Connect 中的配置问题。如果您的产品处于“准备提交”阶段,那么听起来您已经设置了产品所需的一切。

唯一可能是缺少 App Store Connect 中的“付费应用程序协议”。如果没有签名,即使在沙箱中,您的产品获取请求也会静默失败。

有关无法获取产品的其他常见原因,请参阅配置应用内产品很难。


推荐阅读