2016-04-27 12 views
-1

私は非常に奇妙な問題に直面しています。私はiPadのGCM 501 in IPhone

GCMService.sharedInstance().connectWithHandler 
({ 
      (error) -> Void in 
      if error != nil { 
       loggingPrint("Could not connect to GCM: \(error.localizedDescription)") 
      } else { 
       self.connectedToGCM = true 
       loggingPrint("Connected to GCM") 
       // [START_EXCLUDE] 
       self.subscribeToTopic() 
       // [END_EXCLUDE] 
      } 
}) 

にこのコードを実行するとき、それは完璧に動作しますが、iPhoneにそれは私がGCMに接続できませんでした与える:操作を完了できませんでした。 (com.google.gcmエラー501) P.S.両方の端末で同じiOSが使用されていますが、このコードは過去3〜4か月でうまく機能していました。今の状況はわかりません

答えて

0

documentationから、エラー501は、GCM接続サーバーで要求の処理中に内部エラーが発生したか、タイムアウトによりサーバーが一時的に使用できないことを示します。

登録トークンを受け取る前にGCMService.sharedInstance().connectWithHandler() { error in if(error != nil) { print(error) } }を呼び出すか、トークンを更新できなかったためにエラーが発生した可能性があります。

登録トークンを更新してみてください。​​プロトコルは、トークンをリフレッシュする必要があるとシステムが判断したときに呼び出されるonTokenRefreshメソッドを宣言します。

- (void)onTokenRefresh { 
    // A rotation of the registration tokens is happening, so the app needs to request a new token. 
    NSLog(@"The GCM registration token needs to be changed."); 
    [[GGLInstanceID sharedInstance] tokenWithAuthorizedEntity:_gcmSenderID 
                 scope:kGGLInstanceIDScopeGCM 
                options:_registrationOptions 
                handler:_registrationHandler]; 
} 

このdocumentationにチェックを入れて、クライアントアプリケーションがリフレッシュされたトークンをどのように処理するかを確認します。

+0

答えは非常に面白いです。その仕事は自​​動的に今日:) –

-1

私の研究では、501の理由が考えられました。これが私が他の「エラー501」の質問の重複として投稿に投票しない理由です。

しかし、私がまだ見ていない1つの答えは間違ったデバイスクロックです。間違った時間を持つことにつながる「com.google.gcmエラー501」

参照:https://stackoverflow.com/a/37341132/6359940

+0

Funnilyそれは自動的に一日後に正常に動作します –