You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native IAP无法从Apple账户获取订阅产品问题求助

React Native IAP 无法获取订阅方案问题排查方案

1. 纠正API调用误区

你当前调用的getAvailablePurchases(['PCKGIDS'])是用于获取用户已购买的非消耗品/订阅记录,而非查询可用的订阅方案,且该API不需要传入商品ID数组,正确用法是RNIap.getAvailablePurchases()。

如果要获取可购买的订阅方案,请使用专门的API:

// 获取订阅方案
const subscriptions = await RNIap.getSubscriptions(['你的订阅商品ID']);
// 获取普通内购商品
const products = await RNIap.getProducts(['你的商品ID']);

2. 解决Apple登录弹窗与密码错误问题

  • 若处于沙盒测试环境:必须使用App Store Connect中创建的沙盒测试账号,不能用真实Apple ID登录,真实账号在沙盒环境下会提示密码错误。
  • 确认设备登录的Apple ID状态:无账号锁定、密码正确,且(沙盒测试时)已被添加为测试人员。
  • 检查设备系统时间:确保自动同步时间,时间偏差会导致苹果服务器验证失败。

3. 配置项完整性检查

  • 确认App Store Connect中对应的订阅商品状态为已批准(不能是“准备提交”或“被拒绝”状态),且商品ID与代码中传入的完全一致。
  • 核对Xcode项目的Bundle ID与App Store Connect中的应用Bundle ID完全匹配。
  • iOS端执行pod install:npm安装依赖后,需进入ios目录执行pod install确保原生依赖生效。

4. 连接状态重置与错误捕获

  • 尝试重置IAP连接,避免异常状态:
    await RNIap.endConnection();
    const isConnected = await RNIap.initConnection();
    console.log('连接状态:', isConnected);
    
  • 给API调用添加错误捕获,查看具体报错信息:
    try {
      const subscriptions = await RNIap.getSubscriptions(['你的订阅ID']);
      console.log('可用订阅:', subscriptions);
    } catch (error) {
      console.error('获取订阅失败:', error);
    }
    
  • 查看Xcode控制台的原生日志,苹果会返回具体错误码(如21002=凭证无效、21005=沙盒与环境不匹配),根据错误码针对性修复。

内容的提问来源于stack exchange,提问作者aslamkv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 19:10:50