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

React Native Expo应用:TestFlight测试Offer Codes失败求助

促销码功能失效的排查步骤(React Native Expo + RevenueCat + TestFlight)

一、Apple端配置检查

  • 确认促销码关联的是目标订阅产品,且优惠规则设置为「延长免费试用期」,而非折扣或其他类型,同时明确规则适用对象(仅现有试用期用户/新用户)。
  • 检查一次性促销码状态:确保是已激活状态,未被提前消耗,剩余数量大于0。
  • 确认促销码允许TestFlight测试用户使用:在App Store Connect的促销码配置页,查看「可用对象」是否包含测试用户(部分场景默认仅开放给正式用户)。
  • 替换链接中的{apple_app_id}为正确的数字App ID(可在App Store Connect的App信息页获取,不是Bundle ID)。

二、跳转链接与Expo配置检查

  • 修正跳转链接:原链接末尾的&code参数多余,正确链接应为:
    const redeemUrl = `https://apps.apple.com/redeem?ctx=offercodes&id=${你的数字AppID}`;
    
    带空code参数可能导致兑换页面异常。
  • 确认Expo的Linking调用逻辑正确:先检查URL是否可打开再执行跳转,示例代码:
    import { Linking } from 'react-native';
    
    const handleRedeemPress = async () => {
      const appId = '123456789'; // 替换为你的数字AppID
      const url = `https://apps.apple.com/redeem?ctx=offercodes&id=${appId}`;
      const canOpen = await Linking.canOpenURL(url);
      if (canOpen) {
        await Linking.openURL(url);
      }
    };
    
  • 仅在iOS真机测试:该兑换链接不支持模拟器,必须使用安装了TestFlight包的真机测试。

三、RevenueCat端配置检查

  • 确认RevenueCat已同步Apple的订阅产品与促销规则:在RevenueCat控制台「Products」页能看到对应订阅产品,且「Promotions」中已关联Apple的促销码。
  • 查看RevenueCat日志:用户兑换促销码后,检查是否有对应事件上报。若兑换成功但订阅状态未更新,可能是未正确配置Apple与RevenueCat的通知同步(需确保App Store Connect中已设置RevenueCat的webhook)。
  • 验证订阅状态逻辑:确认用户处于免费试用期时,兑换延长码会触发试用期延长规则;若规则仅适用于付费订阅用户,试用期用户无法触发。

四、TestFlight环境特殊限制

  • 使用沙盒专用促销码:正式环境生成的促销码无法在TestFlight中使用,需在App Store Connect的「沙盒测试」板块生成测试用促销码。
  • 确认测试用户已授权:测试用户需在App Store Connect中添加为内部/外部测试员,且已接受测试邀请。
  • 确认订阅产品已关联TestFlight构建:在App Store Connect「TestFlight」板块,确保当前测试构建已关联目标订阅产品(产品状态需为「准备提交」或「已批准」)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:35:27