React-Native-iap 的 getProducts() 返回空数组。

4

react-native-iap版本 3.3.7

react-native版本 0.60.4

遇到错误的平台(IOS或Android或两者都是?) 仅在iOS上

期望行为 getProducts返回产品数组

实际行为 返回空数组 在Android上运行良好

测试环境(模拟器?真实设备?) 模拟器和真实设备

补充说明 所有应用内购买产品都已在应用商店中获得了批准。 我还尝试使用了版本4.4.8,但没有任何区别。:( 请帮帮我。

2个回答

12

如果产品没有被检索出来,很可能是一些配置问题。在iOS上,最可能的罪魁祸首是:

  1. 产品不处于“准备提交”状态(确保您已经添加了截图)。
  2. 您还没有在App Store Connect中签署付费应用程序协议。
  3. 您正在测试模拟器而不是物理设备。

如果您的产品已经通过审核,并且您已在实体设备上尝试过,请仔细检查第2点,并确保您签署了最新的付费应用程序协议。

以下是来自RevenueCat关于该主题的有用文章,其中一些内容是针对RevenueCat特定的,但大多数检查清单适用于任何应用程序。


谢谢'enc_life'。 我的产品已经获得批准,但我没有签署付费应用程序协议,因为我的应用是免费的。 我在App Store Connect中签署了付费应用程序协议。然后我的产品被获取了。它可以在模拟器和物理设备上运行。 - Blake
更新的链接:https://community.revenuecat.com/sdks-51/why-are-offerings-or-products-empty-124 - Ilia Sidorenko
在我的情况下,我缺少了第二个。谢谢。 - Alauddin Ahmed
有没有办法在模拟器上进行测试?苹果提到了我们可以使用Swift来做到这一点,但不知道如何使用react-native-iap实现。 - Zeeshan Ahmad Khalil

0

这个帖子早已经解决了。但是为了让其他人不必像我一样花费数周的时间,这里有一些我希望在StackOverflow上找到的东西。

getProducts()并不会从商店获取产品列表。给定一组产品ID(SKU),getProducts会获取有关这些产品的详细信息。

我曾经调用过

getProducts();

但是调用getProducts的正确方式应该像这样:

const skus = Platform.select({
     ios: ['product_id_ios'],
     android: ['product_id_android'],
});
getProducts({skus});

我希望这能帮助到某个人


你好,product_id_ios 是你在苹果开发者中心命名的产品ID吗? - hugger
@hugger,没错。很不幸,getProducts()函数就是这样工作的,因为如果你想向商店添加新商品,你必须改变你的代码而不是根据苹果提供的内容进行填充。 - Kyle Storey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接