You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未在didRegisterForRemoteNotificationsWithDeviceToken中获取到设备令牌

解决APNS设备令牌回调不触发的问题

1. 先处理Firebase的影响

你之前用过Firebase GCM,现在虽不再使用,但FirebaseApp.configure()会初始化Firebase推送模块,它会接管didRegisterForRemoteNotificationsWithDeviceToken的回调逻辑,导致你的自定义代码无法执行:

  • 先注释掉FirebaseApp.configure()这一行,重新编译运行测试
  • 如果回调正常触发,再彻底移除Firebase相关依赖:删除Podfile中的Firebase库、移除项目里的GoogleService-Info.plist文件,执行pod install更新依赖

2. 添加注册失败回调排查错误

你目前只实现了成功回调,没有处理注册失败的场景,添加以下方法可获取具体错误信息,帮你定位问题:

func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
    print("APNS注册失败:\(error.localizedDescription)")
}

3. 检查项目推送配置

  • 打开项目的Capabilities面板,确认Push Notifications已开启
  • 检查Entitlements文件,确保包含aps-environment字段,调试环境值为development,发布环境值为production
  • 确认推送证书有效,且与当前项目的Bundle ID匹配,调试时用开发证书,发布时用生产证书

4. 确认AppDelegate的关联

检查Info.plist中的UIApplicationDelegateClassName字段,确保其值为你的AppDelegate类的完整路径,避免其他自定义Delegate接管应用生命周期回调

5. 排查网络环境问题

苹果APNS服务器的连接可能被部分内网防火墙屏蔽,切换到手机蜂窝网络测试,看是否能正常触发回调

内容的提问来源于stack exchange,提问作者HarryMoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 15:20:25