Expo推送通知在Android APK构建版本中无法正常工作
APK构建版本推送通知失效排查方案
核对FCM凭证配置
确认构建APK时Firebase Cloud Messaging(FCM)凭证配置无误:- 检查
app.json/app.config.js中android.googleServicesFile字段,确保指向正确的google-services.json文件路径 - 验证该JSON文件内的项目ID、API密钥与Expo关联的Firebase项目完全匹配
- 检查
替换推送令牌环境
Expo Go使用开发环境令牌,APK版本使用生产环境令牌,二者不通用:- 在APK启动时获取并打印生产环境推送令牌,用该令牌重新测试推送
- 确保发送通知时使用的是APK对应的生产令牌,而非开发阶段的Expo Go令牌
确认通知权限状态
APK首次启动可能需要手动授权通知权限:- 检查代码中是否调用
Notifications.requestPermissionsAsync()主动请求权限 - 进入手机设置,确认该APK的通知权限已开启,若禁用则手动开启后重试
- 检查代码中是否调用
检查APK构建参数
验证构建命令和配置的正确性:- 使用
eas build -p android --profile preview(或对应生产profile)构建APK,避免用开发模式构建 - 查看
eas.json中的profile配置,确保android.buildType设为apk,且未禁用推送相关选项
- 使用
排查FCM服务状态
- 登录Firebase控制台,确认对应项目的云消息服务已正常启用
- 查看控制台的消息发送记录,确认通知是否成功送达设备,若有失败记录,根据错误提示定位问题
测试后台/离线接收场景
确保应用在后台或关闭状态下能接收通知:- 将应用退到后台或完全关闭后发送通知,验证接收情况
- 确认代码中已配置
Notifications.addNotificationReceivedListener和Notifications.addNotificationResponseReceivedListener监听器,处理通知接收与响应逻辑
内容的提问来源于stack exchange,提问作者Orchi
相关产品推荐
相关产品推荐

