获取Sender ID为'xxxxxxxxxx'的FCM Token前未设置APNS device token求助
问题解决方案
错误信息:获取Sender ID为'xxxxxxxxxx'的FCM Token前未设置APNS device token。通过该FCM Token发送的通知无法通过APNS送达。请在APNS device token设置完成后重新获取FCM Token。
已在Firebase中添加了APNS的密钥和认证文件,但仍出现该错误。
以下是针对性解决步骤:
确保客户端APNS Token优先获取
iOS端必须先成功获取APNS device token,再触发FCM Token的获取流程。正确的代码逻辑示例(Swift):func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { // 先将APNS Token传给Firebase Messaging.messaging().apnsToken = deviceToken // 再获取FCM Token Task { do { let token = try await Messaging.messaging().token() print("成功获取FCM Token: \(token)") } catch { print("FCM Token获取失败: \(error.localizedDescription)") } } }注意:不要在APP启动时直接调用FCM的getToken,必须等APNS Token获取完成后再执行。
匹配APNS配置与运行环境
确认Firebase控制台的APNS配置(密钥/证书)和当前APP的运行环境一致:- 开发环境(Debug):使用开发APNS证书,或确保APNS密钥已关联开发环境
- 生产环境(Release):使用生产APNS证书,或APNS密钥关联生产环境
同时检查GoogleService-Info.plist中的APNS_ENVIRONMENT字段,开发环境设为development,生产环境设为production。
清理缓存并重装APP
卸载当前APP,清除设备上的推送缓存,重新安装后测试Token获取流程,避免旧Token缓存导致的冲突。验证推送权限状态
检查APP是否已获得用户的推送授权:- 打开iOS设置 → 找到对应APP
- 确认“通知”权限已开启
没有授权的话,无法获取APNS Token,自然会触发该错误。
内容的提问来源于stack exchange,提问作者Ameer Safdar
相关产品推荐
相关产品推荐

