React Native Expo应用推送通知失效排查与配置咨询
iOS推送通知失效排查与修复步骤
可能存在的操作遗漏点
推送证书未与项目签名体系关联
你生成的.p12文件需要导入到Xcode的「证书管理器」(Xcode → Settings → Accounts → 你的Apple ID → Manage Certificates),或者通过Fastlane的match工具同步到构建环境。同时要确保:- Xcode项目的「Signing & Capabilities」中已开启
Push Notifications能力; - 你选择的Provisioning Profile是包含Push Notifications权限的(在Apple Developer后台生成Profile时,需关联已开启推送的App ID)。
- Xcode项目的「Signing & Capabilities」中已开启
Expo推送配置未同步到原生项目
expo build会自动读取app.json/app.config.js中的推送配置并注入原生项目,但prebuild需要你手动配置后再生成:- 在
app.json中添加推送相关配置:"expo": { "notifications": { "ios": { "bundleIdentifier": "你的应用Bundle ID" } } } - 重新执行
npx expo prebuild,覆盖原生iOS文件夹,再导入Xcode确认配置是否生效。
- 在
Fastlane Gymfile缺少推送相关签名配置
检查Gymfile中的export_options或关联的ExportOptions.plist,确保指定的签名配置包含推送权限。例如,ExportOptions.plist中需包含:<key>pushNotification</key> <true/>同时确保
gym命令使用的Provisioning Profile是已关联推送证书的版本。
后续验证步骤
- 确认Apple Developer后台的App ID(Identifiers)中已开启
Push Notifications,且对应的Provisioning Profile已更新并下载到本地; - 在Xcode中选择正确的签名证书和Profile,重新构建测试包;
- 上传TestFlight后,在测试设备上开启通知权限,使用APNs测试工具(对应开发/生产环境)发送测试推送验证功能。
内容的提问来源于stack exchange,提问作者TreyCollier
相关产品推荐
相关产品推荐

