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

React Native独立版App无法接收Expo推送通知问题求助

解决Expo推送通知SNS发送失败的问题

我之前也踩过几乎一模一样的Expo推送坑,结合你描述的场景——独立APK收不到、他人用Expo客户端也收不到(只有你自己能收),还有统一的SNS报错,给你拆解下可能的原因和解决办法:

1. 独立版安卓APP:检查FCM配置是否到位

独立版安卓的推送依赖Firebase Cloud Messaging(FCM),Expo是通过AWS SNS中转到FCM的,如果FCM配置错了,必然会触发SNS发送失败:

  • 打开Expo Dashboard,找到你的项目进入「Credentials」页面,检查「Android Push Certificates」是否已经关联了有效的Firebase Server Key。
  • 如果没配置,去Firebase控制台创建对应包名的项目,生成Server Key后上传到Expo这边。
  • 注意:配置完必须重新构建APK(执行eas build -p android),旧的APK不会加载新的配置。

2. Expo客户端推送异常:排查设备权限与注册状态

只有你自己能收、别人收不到,大概率是对方设备的注册或权限问题:

  • 让对方检查手机系统的通知权限,确保Expo客户端(或你的APP)被允许发送通知。
  • 让对方重新登录Expo客户端,或者卸载重装后重启APP——有时候旧的设备注册信息会失效,导致Expo无法正确定位设备。
  • 确认对方的Expo客户端是最新版本,旧版本可能存在推送兼容性bug。

3. 验证推送目标Token的有效性

别小看这个细节,很多时候是用错了Token:

  • 让对方在APP里打印自己的Expo Token(比如用alert(ExpoPushToken)或者控制台输出),确保你推送时用的是对方的专属Token,而不是你自己的。
  • 可以用Expo Dashboard里的「Push Notifications」测试工具,输入对方的Token直接测试,排除你代码里推送逻辑的问题。

4. 获取完整SNS错误信息定位根源

你给出的错误被截断了,完整的错误信息会明确说明原因(比如InvalidPlatformToken、EndpointDisabled):

  • 调用Expo推送API时,加上detail: true参数,就能拿到详细错误:
    {
      "to": "TARGET_EXPO_TOKEN",
      "title": "测试通知",
      "body": "Hello World",
      "detail": true
    }
    
  • 根据错误码处理:比如InvalidPlatformToken说明Token无效,需要重新获取;EndpointDisabled说明设备推送端点被禁用,需要用户重新开启权限或重新注册设备。

5. 检查项目配置的一致性

确保app.json里的配置和Firebase项目匹配:

  • 确认android.package字段的包名,和Firebase控制台里的包名完全一致,包名不匹配会导致FCM拒绝请求,进而触发SNS失败。
  • 如果用EAS Build,确保googleServicesFile路径正确,已经关联了Firebase的google-services.json文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:33:38