我在 IOS 模拟器 17.0 中通过 in_app_purchase 包购买自动续订订阅时遇到一个奇怪的问题。
以下是该问题的预览: https://www.loom.com/share/0a483d3dcba44807bec0a38e0a752e66?sid=faf18c39-f93f-47a0-8ed2-fc4e867c99b2
什么效果好:
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(); }
Future<void> buyProduct(ProductDetails product) async { final PurchaseParam purchaseParam = PurchaseParam(productDetails: product); try { await _iap.buyNonConsumable(purchaseParam: purchaseParam); } catch (e) { print("$e"); } }
循环重复
这是我的 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 run
时,它
不起作用。别问我为什么,事实就是没有。 (
flutter build ipa
)
相反,您必须使用 Xcode 本身来测试您的应用内购买。这是您需要做的:
Configuration.storekit
并将其保存在项目中的某个位置Configuration.storekit
注意:要在沙盒模式下测试应用内购买,您需要通过 xcode 继续测试它们。
flutter run
还是不行。