【发布时间】:2023-04-03 04:18:01
【问题描述】:
我正在设置推送通知,一切都很顺利,直到我尝试获取 FCM 令牌,以便我可以向实际设备发送测试消息。使用 Pod Firebase 5.8.0、FirebaseCore (5.1.3)、FirebaseInstanceID (3.2.1) 和 FirebaseMessaging (3.1.2),我可以很好地获取 APNS 令牌,但每次我尝试获取 FCM 令牌时,它都会出现输出为 nil 或当我使用 InstanceID.instanceID().instanceID(handler:) 时,它会导致一些超时错误代码 1003 和 nil 的结果。 didReceiveRegistrationToken 也不会被调用。我尝试了许多 2017 年的解决方案,但它们要么已被弃用,要么不起作用。设置了 MessageDelegate 和 UNUserNotificationCenterDelegate,在功能中启用了推送通知和钥匙串共享,方法 swizzling 通过 p-list 关闭,这是我的 didRegisterForRemoteNotificationsWithDeviceToken 函数,我在其中正确获取了 apns 令牌。有任何想法吗?谢谢。
`public func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
print("Registration Successful: Device token \(deviceToken)")
Messaging.messaging().apnsToken = deviceToken
print("Messaging APNS Token:\(Messaging.messaging().apnsToken)")
print("Instance Id: \(InstanceID.instanceID().token())") //deprecated & returns nil
print("Messaging APNS Token:\(Messaging.messaging().apnsToken)")
print("Token:\(Messaging.messaging().fcmToken)") // return nil
InstanceID.instanceID().instanceID { (result, error) in
if let result = result {
print("Result:\(String(describing: result?.token))")
} else {
print("Error:\(error))")
} //returns after about 2 mins with an firebase iid error of 1003
}
【问题讨论】:
-
你解决了吗?
标签: ios swift firebase firebase-cloud-messaging