2015-10-15 4 views
1

Я перекомпиляция моего приложения iPhone для iOS9 и я получаю сообщение об ошибке при попытке зарегистрировать GCM, как показано ниже:GCM не удалось зарегистрировать с ошибкой 1003.

Регистрация на ГКЙ произошла ошибка: Операция не может быть завершено. (com.google.iid error 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) 
    } 
} 
+0

Можем ли мы увидеть код? Может помочь диагностировать проблему. –

+0

Я добавил код – Luben

ответ

0

Это была глупая ошибка с моей стороны. «GoogleService-Info.plist» был неправильно указан и помещен не в том месте, и он не был в моей фазе сборки -> копировать ресурсы пакета.

+0

Я поместил его в корневую папку проекта и добавил в свою цель. Он был назван GoogleService-Info.plist. Однако я все равно получаю ту же ошибку; Есть идеи? – danielemm

2
1003 error talks "Token request has invalid authorizedEntity." 

В моем случае gcmSenderID был ноль.

Возможно, вы не использовали gcmSenderID от GoogleService-Info.plist. Чтобы импортировать настройки из 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 { ... } 
1

Google ошибка 1003

Я имел GoogleService-info.plist в корневой папке. В моем случае gcmSenderID не был даже нулевым, но я все еще получал эту ошибку.

Но мне не хватало этот код в файле AppDelegate.m в файле didFinishLaunchingOptions.

NSError* configureError; [[GGLContext sharedInstance] configureWithError:&configureError]; NSAssert(!configureError, @"Error configuring Google services: %@", configureError); _gcmSenderID = [[[GGLContext sharedInstance] configuration] gcmSenderID];

Смежные вопросы