GCM 注册失败,出现 1003 错误
Posted
技术标签:
【中文标题】GCM 注册失败,出现 1003 错误【英文标题】:GCM failing to register with 1003 error 【发布时间】:2015-10-15 09:38:30 【问题描述】:我正在为 ios9 重新编译我的 iPhone 应用程序,但在尝试注册 GCM 时遇到错误,如下所示:
向 GCM 注册失败并出现错误:操作无法完成。 (com.google.iid 错误 1003。)
我已经找了一段时间了,在 Google 上找不到任何东西。 谁能帮我解决这个问题?
提前致谢
来自 appdelegate.swift 的代码如下:
var connectedToGCM = false
var subscribedToTopic = false
var gcmSenderID: String?
var registrationToken: String?
var registrationOptions = [String: AnyObject]()
let registrationKey = "onRegistrationCompleted"
let messageKey = "onMessageReceived"
let subscriptionTopic = "/topics/global"
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
GCMService.sharedInstance().startWithConfig(GCMConfig.defaultConfig())
return true
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData)
//Process the deviceToken and send it to your server
let tokenChars = UnsafePointer<CChar>(deviceToken.bytes)
var tokenString = ""
for var i = 0; i < deviceToken.length; i++
tokenString += String(format: "%02.2hhx", arguments: [tokenChars[i]])
GGLInstanceID.sharedInstance().startWithConfig(GGLInstanceIDConfig.defaultConfig())
registrationOptions = [kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:true]
GGLInstanceID.sharedInstance().tokenWithAuthorizedEntity(gcmSenderID, scope: kGGLInstanceIDScopeGCM, options: registrationOptions, handler: registrationHandler)
func registrationHandler(registrationToken: String!, error: NSError!)
if (registrationToken != nil)
self.registrationToken = registrationToken
print("Registration Token: \(registrationToken)")
APIManager.sharedInstance.setDeviceToken(registrationToken)
self.subscribeToTopic()
let userInfo = ["registrationToken": registrationToken]
NSNotificationCenter.defaultCenter().postNotificationName(
self.registrationKey, object: nil, userInfo: userInfo)
else
print("Registration to GCM failed with error: \(error.localizedDescription)")
let userInfo = ["error": error.localizedDescription]
NSNotificationCenter.defaultCenter().postNotificationName(
self.registrationKey, object: nil, userInfo: userInfo)
【问题讨论】:
我们能看到一些代码吗?可能有助于诊断问题。 【参考方案1】:1003 error talks "Token request has invalid authorizedEntity."
在我的情况下,gcmSenderID
为零。
也许您没有使用来自GoogleService-Info.plist
的gcmSenderID
。要从GoogleService-Info.plist
导入设置,请插入此代码
var configureError:NSError?
GGLContext.sharedInstance().configureWithError(&configureError)
assert(configureError == nil, "Error configuring Google services: \(configureError)")
gcmSenderID = GGLContext.sharedInstance().configuration.gcmSenderID
进入
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool ...
【讨论】:
【参考方案2】:谷歌错误 1003
我在根文件夹中有 GoogleService-info.plist。 在我的情况下,gcmSenderID 甚至不为空,但我仍然收到此错误。
但我在 didFinishLaunchingOptions 下的 AppDelegate.m 文件中缺少此代码。
NSError* 配置错误; [[GGLContext sharedInstance] configureWithError:&configureError]; NSAssert(!configureError, @"配置谷歌服务时出错:%@", configureError); _gcmSenderID = [[[GGLContext sharedInstance] 配置] gcmSenderID];
【讨论】:
【参考方案3】:对我来说这是一个愚蠢的错误。 'GoogleService-Info.plist' 命名错误并放置在错误的位置,并且不在我的构建阶段 -> 复制捆绑资源。
【讨论】:
我已将其放入项目的根文件夹并添加到我的目标中。它被命名为 GoogleService-Info.plist。但是我仍然收到同样的错误;有什么想法吗?以上是关于GCM 注册失败,出现 1003 错误的主要内容,如果未能解决你的问题,请参考以下文章
Google 推送通知 - DOMException:注册失败 - 推送服务错误
如何使用 Java GCM API 在 android 设备上获取失败推送通知的注册 ID
eyeBeam1.5网络电话注册码激活后 注册SIP账号设定失败:出现注册错误403-Forbidden 怎么解决知道的告诉谢