EXPO iOS生产环境推送通知失效,证书配置显示0
iOS独立Expo App推送通知失效的排查与解决方案
我来帮你梳理这个问题的排查方向和解决方案,毕竟开发环境正常、生产环境失效的推送问题确实挺磨人的:
1. 先确认Expo凭据的实际状态
别只盯着Apple开发者门户,先通过Expo命令行工具排查本地凭据情况:
- 运行
expo credentials:manager,选择iOS平台,查看Push Notifications Certificate的状态,要区分开发(Development)和生产(Production)环境。 - 如果这里显示生产环境的推送证书缺失,那说明Expo自动生成凭据时确实没成功,这就是问题的核心根源。
2. 检查Apple开发者门户的基础配置
你看到的“configure certificates (0)”肯定是异常的,先把基础配置补全:
- 找到你的App Identifier,确认Push Notifications选项已经被勾选开启(这是生成推送证书的前提,如果没开,先勾选保存)。
- 顺便检查Apple账号的证书配额:每个账号的推送证书有数量限制,要是之前生成过不少废弃证书,可以先删掉腾出名额。
3. 重新生成凭据的正确操作
之前的expo build:ios --clear-credentials可能不够彻底,试试这个更完整的流程:
- 先运行
expo credentials:manager,进入iOS选项后,手动删除现有的Push Notifications Certificate和Provisioning Profile(不管有没有,都删干净)。 - 再运行
expo build:ios --clear-credentials,全程选择让Expo自动处理。这时候要确保:- 你的Apple账号有管理员权限,能生成证书和配置文件;
- 两步验证的验证码输入正确,Expo能顺利访问你的开发者账号。
- 如果自动生成还是失败,那就手动生成推送证书:
- 去Apple开发者门户,为你的App ID生成生产环境推送证书,下载后双击导入Keychain Access;
- 在Keychain里找到这个证书,右键导出为
.p12文件(记得设置密码,后面要用到); - 回到
expo credentials:manager,选择“Add Push Notifications Certificate”,上传.p12文件并输入密码; - 最后重新build iOS应用。
4. 排除后端和设备端的问题
- 后端测试:用Expo官方的推送测试工具,输入独立App的Push Token发送测试通知,如果能收到,说明后端的推送逻辑可能有问题(比如误用了开发环境配置,或者请求格式错误);
- 设备权限:确认用户设备的设置里,你的App的推送通知权限已经被允许(别忽略用户第一次打开时拒绝授权的情况)。
5. 最后检查SDK版本
如果以上操作都没解决问题,试试升级Expo SDK到最新稳定版——有些旧版本的SDK在自动生成推送证书时存在bug,升级后可能就能修复。
内容的提问来源于stack exchange,提问作者Matteo Bolognesi
相关产品推荐
相关产品推荐

