在应用程序购买沙盒中反复重新打开,并且不会在流中发送购买状态

问题描述 投票:0回答:1

我在 IOS 模拟器 17.0 中通过 in_app_purchase 包购买自动续订订阅时遇到一个奇怪的问题。

以下是该问题的预览: https://www.loom.com/share/0a483d3dcba44807bec0a38e0a752e66?sid=faf18c39-f93f-47a0-8ed2-fc4e867c99b2

什么效果好:

  1. 我可以从应用程序商店获取我的订阅产品。
Future<void> _getProducts() async { ProductDetailsResponse response = await _iap.queryProductDetails(productIds.toSet()); if (response.notFoundIDs.isNotEmpty) { print('These products were not found: ${response.notFoundIDs.join(', ')}'); } _products = response.productDetails; notifyListeners();   }
  1. 我可以打开沙箱并使用苹果应用商店中的沙箱测试者帐户开始购买。
    Future<void> buyProduct(ProductDetails product) async { final PurchaseParam purchaseParam = PurchaseParam(productDetails: product); try { await _iap.buyNonConsumable(purchaseParam: purchaseParam); } catch (e) { print("$e"); }   }
  1. 沙箱显示“完成”UI,但我从未在我的流中获得 PurchasedStatus.purchased,并且沙箱再次重新打开。

循环重复

这是我的 flutter doctor -v 的输出

[✓] Flutter(频道稳定,3.13.1,在 macOS 14.0 23A344 darwin-x64 上,区域设置 en-GB) • Flutter 版本 3.13.1 稳定在 /Users/muhammadhamadjamal/Documents/FlutterDev/sdk/flutter 上 • 上游存储库 https://github.com/flutter/flutter.git • 框架修订版 e1e4722(3 个月前),2023-08-22 21:43:18 -0700 • 发动机版本b20183e040 • Dart 版本 3.1.0 •开发工具版本2.25.0

[✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 33.0.2) • Android SDK 位于 /Users/muhammadhamadjamal/Library/Android/sdk • 平台 android-33,构建工具 33.0.2 • Java 二进制文件位于:/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java 版本 OpenJDK 运行时环境(内部版本 11.0.15+0-b2043.56-8887301) • 接受所有Android 许可证。

[✓] Xcode - 为 iOS 和 macOS 开发 (Xcode 15.0) • Xcode 位于 /Applications/Xcode.app/Contents/Developer • 构建 15A240d • CocoaPods 版本 1.13.0

[✓] Chrome - 网络开发 • Chrome 位于 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio(版本 2022.1) • Android Studio 位于 /Applications/Android Studio.app/Contents • Flutter 插件可以从以下位置安装: 🔨https://plugins.jetbrains.com/plugin/9212-flutter • Dart 插件可以从以下位置安装: 🔨https://plugins.jetbrains.com/plugin/6351-dart • Java 版本 OpenJDK 运行时环境(内部版本 11.0.15+0-b2043.56-8887301)

[✓] VS 代码(版本 1.84.1) • VS Code 位于 /Applications/Visual Studio Code.app/Contents • Flutter 扩展版本 3.76.0

[✓] 连接的设备(3 个可用) • iPhone 15 Pro Max(移动) • DC9EDD04-0B17-4D27-BD2A-966F06BFCF7F • ios • com.apple.CoreSimulator.SimRuntime.iOS-17-0(模拟器) • macOS(桌面) • macos • darwin-x64 • macOS 14.0 23A344 darwin-x64 • Chrome(网络) • chrome • web-javascript • Google Chrome 119.0.6045.105

[✓] 网络资源 • 所有预期的网络资源均可用。

• 未发现问题!

flutter in-app-purchase
1个回答
0
投票

我也有同样的问题。穆罕默德提出了一个简单的解决方法,我想在这里更详细地解释一下。

首先: 使用 flutter run 时,它

不起作用
。别问我为什么,事实就是没有。 (
flutter build ipa

相反,您必须使用 Xcode 本身来测试您的应用内购买。这是您需要做的:

  1. 在 xcode 中打开您的项目
  2. 在“文件”>“新建”>“文件”下创建一个新的 StoreKit 配置文件,然后选择“StoreKit 配置文件”
  3. 将其命名为
    Configuration.storekit
    并将其保存在项目中的某个位置
  4. 单击加号也可以在此处添加您的应用内购买。
  5. 通过打开菜单“产品”>“方案”>“编辑方案”来应用配置文件
  6. 选择“运行”并转到“选项”选项卡
  7. 找到“StoreKit Configuration”并选择新创建的
    Configuration.storekit
  8. 通过 xcode 构建运行应用程序并测试您的购买

注意:要在沙盒模式下测试应用内购买,您需要通过 xcode 继续测试它们。

flutter run
还是不行。

© www.soinside.com 2019 - 2024. All rights reserved.