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

iOS TestFlight构建的Expo通知点击后打开Expo GO而非应用的问题求助

解决方案:点击推送通知直接打开TestFlight安装的Expo应用

核心问题原因

使用Expo HTTP/2 API发送推送时,若未正确指定应用Bundle Identifier和APNs环境,推送会默认关联Expo GO的标识,导致点击通知跳转至Expo GO。

具体修复步骤

1. 推送请求中添加正确的apns配置

向Expo HTTP/2 API发送POST请求时,必须在message字段下添加apns对象,明确指定以下关键参数:

  • bundleId: 你的应用在Apple Developer后台注册的Bundle Identifier(例如com.yourcompany.yourapp)
  • environment: TestFlight环境需填"production"(TestFlight属于生产沙盒环境,不能设为development)

示例请求体结构:

{
  "to": "EXPO_PRODUCTION_PUSH_TOKEN",
  "message": {
    "title": "通知标题",
    "body": "通知内容",
    "apns": {
      "payload": {
        "aps": {
          "category": "default"
        }
      },
      "bundleId": "com.yourcompany.yourapp",
      "environment": "production"
    }
  }
}

2. 验证项目配置文件一致性

检查app.json或app.config.js中的ios.bundleIdentifier是否与Apple后台完全一致,同时确保ios.buildNumber和version与TestFlight提交的版本匹配:

{
  "expo": {
    "ios": {
      "bundleIdentifier": "com.yourcompany.yourapp",
      "buildNumber": "1.0.0",
      "version": "1.0.0"
    }
  }
}

3. 确认APNs密钥配置

  • Apple Developer后台生成的APNs密钥,必须关联你的应用Bundle Identifier,且权限包含推送通知
  • 已在Expo Dashboard项目设置中正确配置该APNs密钥

4. 使用生产环境推送令牌

确保推送请求中使用的是TestFlight安装应用后获取到的生产环境推送令牌,而非Expo GO中获取的开发令牌,两类令牌格式不同,不可混用。

关键注意事项

  • 绝不能省略apns.bundleId和apns.environment,这两个参数是将通知关联到你的应用而非Expo GO的核心
  • TestFlight环境属于Apple生产沙盒,environment必须设为"production",否则会导致通知送达失败或跳转错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:02:41