如何使用cordova-plugin-firebasex为iOS应用集成推送通知?
排查解决步骤
1. 处理entitlements文件缺失疑问
Cordova iOS 6.x版本开始,entitlements文件默认不会放在Resources目录下,会拆分为Entitlements-Debug.plist和Entitlements-Release.plist两个文件,存放在platforms/ios/[你的应用名称]/路径下。
你可以直接在Xcode中点击项目根目录,选择Signing & Capabilities标签页确认配置:
- 确认Push Notifications能力已正确添加
- 确认Background Modes下的Remote notifications选项已勾选
如果缺少上述配置,手动添加后Xcode会自动生成对应entitlements配置。
2. 校验Firebase相关配置
- 确认Firebase控制台上传的.p8密钥对应的Team ID、Bundle ID和Xcode中的项目配置完全一致,无拼写错误
- 确认项目中引入的
GoogleService-Info.plist是从对应Firebase项目下载的,未混用其他项目的配置文件
3. 单独测试推送链路
你已经可以正常获取APNS token,优先跳过证书类问题,直接用Firebase控制台的发送测试消息功能,填入你拿到的FCM token或APNS token发送测试通知,暂不经过后端调用,先排除后端参数配置问题。
如果测试通知可以正常送达,说明后端调用FCM API时缺少iOS专属的payload配置,需要补充apns相关字段。
4. BoringSSL报错说明
你看到的[BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C6.1:2][__a_hex_address__] get output frames failed, state 8196报错属于网络层临时波动问题,和推送无法送达没有直接关联,无需优先排查。
5. Cordova版本适配检查
你使用的Cordova 10 + cordova-ios 6.2.0组合,需要确认所用的FCM推送插件版本已适配cordova-ios 6.x,旧版本插件可能存在权限配置不兼容的问题。如果插件版本过旧,升级到适配版本后重新构建项目即可。
内容的提问来源于stack exchange,提问作者TheWhiteFang
相关产品推荐
相关产品推荐

