我使用FirebaseInstanceID框架来获取令牌。
当前实现如下:
InstanceID.instanceID().token(withAuthorizedEntity: <GCM_SENDER_ID>, scope: "GCM", options: nil) { (token, error) in
}
我唯一的要求是从Firebase获取令牌仅用于身份验证。
上述实现不需要添加GoogleService-Info.plist
和任何其他框架。
问题是Google已弃用GCM。
如果我将范围从"GCM"
更改为"FCM"
,则会返回错误1001。
另外,如果我将withAuthorizedEntity从<GCM_SENDER_ID>
更改为<PROJECT_ID>
,则会出现错误1001。
那么,有什么方法可以仅使用FCM来获取令牌?另外,我对发送推送通知没有其他要求。 TIA
答案 0 :(得分:2)
我认为您可以尝试使用docs以正确的方式进行迁移,但是在这种情况下,您应该添加GoogleService-Info.plist
和必需的框架。
根据错误代码,问题是导致Firebase在获取APNS令牌时失败,这意味着您应在收到FCS令牌后设置APNS令牌。 您有两种方法可以做到:
Messaging.messaging().apnsToken = deviceToken
在func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {}
内Swizzling method
此答案无法帮助您以所需的方式进行修复,但是如果您想快速修复它,可以尝试使用类似的选项。
希望它以正确的方式指导您。
其他:
除非需要启用多个发件人,否则请避免调用.getToken(authorizedEntity,scope)。改用instanceIDWithHandler:。