Expo React Native应用TestFlight版本推送通知无法接收问题
解决Expo React Native TestFlight推送通知DeviceNotRegistered问题
- 核对推送证书环境:TestFlight属于生产环境,必须确保Apple开发者平台里的推送证书是**生产环境(Production)**类型,开发环境证书在TestFlight包中无效。
- 检查项目配置一致性:确认
app.json/app.config.js里的bundleIdentifier和Apple开发者平台的App ID完全一致(大小写、字符都不能差),同时ios.usesNonExpoPushNotifications要设为false(使用Expo推送服务的前提下)。 - 重新生成Expo推送密钥:登录Expo项目控制台,进入Credentials页面,删除现有iOS推送密钥后重新生成,生成时要绑定正确的生产环境App ID配置。
- 确保权限授予后获取令牌:在TestFlight版本的代码里,必须等用户明确授予通知权限(权限状态为
granted)后,再调用获取ExponentPushToken的方法,未授权时获取的令牌会无效。 - 指定推送环境:用Expo推送服务发送通知时,必须指定环境为
production。比如用官网推送工具时,切换到Production标签页再测试;用API的话,请求体里要加"environment": "production"参数。 - 重置应用缓存:删除设备上的TestFlight应用,重启设备后重新安装,再重新获取令牌测试,旧缓存可能导致令牌注册失败。
内容的提问来源于stack exchange,提问作者Mickey
相关产品推荐
相关产品推荐

