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

Expo推送通知经eas build构建后在iPhone上无法显示问题排查

可能导致EAS构建后推送通知失效的原因及排查方案
  • 推送证书与APNs环境不匹配
    Expo Go使用Expo官方的共享推送证书,而自定义EAS构建需要你自己配置对应环境的APNs证书:

    • 若构建的是生产版本(Ad Hoc/App Store),必须使用生产环境APNs证书,开发环境证书无法在生产构建中生效;
    • 检查eas.json中对应构建profile的ios.buildConfiguration字段:设置为Release对应生产环境,Debug对应开发环境,确保证书与构建环境一致。
  • 推送Token的环境不兼容
    Expo Go获取的是开发环境Token,EAS生产构建获取的是生产环境Token,两者不能跨环境混用:

    • 使用Expo测试通知服务时,要针对Token环境选择对应的推送入口:开发Token选开发环境测试,生产Token选生产环境测试。
  • 通知权限未正确授予
    尽管Expo Go中权限正常,但自定义构建的应用需要重新申请权限:

    • 确认代码中调用了Notifications.requestPermissionsAsync()请求通知权限,且用户已授予;
    • 可以在应用中添加调试逻辑,打印Notifications.getPermissionsAsync()的返回结果,确认权限状态为granted。
  • EAS构建的推送配置缺失
    检查项目配置文件的关键项:

    • app.json/app.config.js中ios.bundleIdentifier必须与推送证书的Bundle ID完全一致;
    • 确认expo.notifications配置正确,比如ios.useNativePlatformBridge未被错误设置为false;
    • 登录Expo控制台,查看项目的iOS推送证书状态,确保证书有效且与构建环境匹配。
  • APNs静默拒绝推送
    生产环境APNs不会返回详细错误信息,可能出现请求成功但推送被静默拒绝的情况:

    • 使用Expo的sendPushNotificationsAsync方法发送测试通知时,打印返回的响应结果,查看是否存在错误码;
    • 检查Expo项目的推送记录,确认通知的送达状态。
  • iOS系统后台限制
    iOS生产环境对通知的限制更严格:

    • 确保应用未被强制关闭(从后台划掉),强制关闭后应用无法接收推送;
    • 检查设备是否开启了低功耗模式,该模式会延迟或阻止通知送达;
    • 生产环境通知可能存在延迟,测试时可等待1-2分钟再确认结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:22:22