切换Apple开发者账号后FCM通知无法推送到iPhone,报401错误
原本使用个人Apple开发者账号开发,切换为企业开发者账号后,已在Firebase更新密钥等相关信息,但FCM通知无法推送到iPhone,出现以下错误:
com.google.api.client.http.HttpResponseException: 401 Unauthorized POST https://fcm.googleapis.com/v1/projects/realservicesolutions/messages:send { "error": { "code": 401, "message": "Auth error from APNS or Web Push Service", "status": "UNAUTHENTICATED", "details": [ { "@type": "type.googleapis.com/google.firebase.fcm.v1.FcmError", "errorCode": "THIRD_PARTY_AUTH_ERROR" } ] } }
已执行操作
- 从企业开发者账号创建新的通知密钥并更新至Firebase
- 重新下载Firebase Admin SDK的serviceAccountKey文件
- 在Firebase应用设置中更新Team ID和App Store ID
排查与解决步骤
确认APNs认证密钥有效性
- 确保从企业开发者账号生成的是APNs认证密钥(而非推送证书),且密钥已启用Apple Push Notification service (APNs)权限
- 核对密钥关联的Team ID与Firebase中配置的Team ID完全一致,无空格、大小写或拼写错误
校验Firebase的APNs配置
- 进入Firebase控制台→项目设置→云消息传递→APNs认证密钥,确认上传的密钥来自企业开发者账号,且Bundle ID与应用的Bundle ID完全匹配
- 确认推送环境设置正确:企业账号对应的是APNs生产环境,需确保Firebase推送请求的目标环境为生产环境,避免误选开发环境
检查serviceAccountKey权限
- 确认下载的serviceAccountKey对应的Firebase服务账号已分配
Firebase Cloud Messaging Admin角色权限 - 替换密钥后,重启推送服务进程,确保新密钥完全生效
- 确认下载的serviceAccountKey对应的Firebase服务账号已分配
重新生成并上传APNs密钥
- 若以上步骤无效,删除Firebase中当前的APNs密钥,重新从企业开发者中心生成新的APNs认证密钥(注意选择正确的Team),再次上传至Firebase并保存配置
验证设备Token有效性
- 切换企业账号后,设备重新注册的Token属于生产环境,需确保推送请求使用的是最新的生产环境Token,不要混用旧的个人账号环境下生成的Token
内容的提问来源于stack exchange,提问作者NACHIKETA CHAKRABORTY
相关产品推荐
相关产品推荐

