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

Expo推送通知在Expo GO正常但APK(生产环境)无法使用

Expo Android推送通知EAS构建后无法接收的排查方案
  • 确认凭证包名匹配
    你的应用包名是com.hyrix.myapp,在Expo凭证页面必须选择对应此包名的凭证组,Legacy(经典构建)凭证不适用于EAS构建。同时检查该凭证下的FCM服务器密钥,确保和Firebase控制台中云消息服务的服务器密钥完全一致。

  • 校验google-services.json有效性
    确保google-services.json是从Firebase控制台对应com.hyrix.myapp应用下载的,打开文件确认client[0].client_info.android_client_info.package_name字段值与app.json里的android.package完全匹配。EAS构建依赖此文件配置FCM,路径或内容错误会导致配置失效。

  • 显式添加通知权限
    Android 13+需要POST_NOTIFICATIONS权限,在app.json的android字段中添加权限声明:

    "android": {
      // 原有配置保留
      "permissions": ["POST_NOTIFICATIONS"]
    }
    

    构建后首次启动App时,需在代码中请求该权限,否则无法接收通知。

  • 检查推送消息格式
    发送通知时需确保payload包含notification字段(后台也能弹出),仅data字段需App自行处理展示。示例有效payload:

    {
      "to": "BUILD_APK_PUSH_TOKEN",
      "sound": "default",
      "title": "测试通知",
      "body": "推送内容",
      "data": { "key": "value" }
    }
    
  • 重新关联FCM密钥到EAS环境
    之前用expo push:android:upload上传的密钥可能未关联到EAS构建环境,执行eas credentials命令,选择Android平台,重新配置FCM服务器密钥,确保与Firebase端一致。

  • 使用构建APK的推送令牌测试
    Expo GO与自建APK的推送令牌不通用,安装构建后的APK后获取新令牌,用此令牌发送测试通知,避免用Expo GO的令牌测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:50:30