2016-02-15 2 views
0

Я применил Google Cloud Messaging в своем приложении. Приложение регистрируется без проблем. Но через день или два он больше не может подключиться к MSC Google. Приложение использует сертификат Prov Provisioning Certificate и работает с kGGLInstanceIDAPNSServerTypeSandboxOption:true.iOS GCM Не удается подключиться через некоторое время

Я добавил флагом отладки -GMRDebugEnabled. В нем говорится, что в моей цепочке ключей отсутствуют учетные данные auth.

GCM | No cached checkin auth credentials in Keychain. 
GCM | Cannot find checkin plist contents. 
GCM | No cached checkin auth credentials in Keychain. 
GCM | Cannot find checkin plist contents. 
GCM | GCM registration is not ready with auth credentials 
GCM | No cached checkin auth credentials in Keychain. 
GCM | Cannot find checkin plist contents. 
GCM | Failed to connect to MCS. No deviceID and secret found. 
GCM | Did start network rechability notifications 

Объект ошибки, который поставляется с обработчиком соединения, пуст.

Domain=com.google.gcm Code=501 "(null)" 

Также, это не должно быть сетевой проблемой, так как я пытаюсь подключиться через мобильную сеть. Кто-нибудь знает, почему это происходит?

ответ

0

Это внутренняя ошибка, основанная на документации Google.

Ошибки в 500-599 диапазоне (например, 500 или 503) показывают, что произошла внутренняя ошибка сервера соединения GCM при попытке обработать запрос, или о том, что сервер временно недоступен (например, из-за тайм-аутов). Отправитель должен повторить попытку позже, соблюдая заголовок Retry-After, включенный в ответ. Серверы приложений должны обеспечивать экспоненциальное отключение.

Попробуйте обновить регистрационный токен и посмотреть, не работает ли он.

+0

Что вы имеете в виду под «обновить свой токен»? Обновляющий токен запускается сервером GCM, а не приложением iOS. Когда я пытаюсь перерегистрировать, он работает - но это ли это желаемое поведение? – user753654

+0

Кажется, что ошибка произошла из-за того, что вы вызывали 'GCMService.sharedInstance(). ConnectWithHandler() {error in if (error! = Nil) {print (error)}}' перед тем, как вы получили регистрационный токен. – abielita

+0

Я уже получил регистрационный токен - при первом запуске приложения. Как я описал выше - как-то он становится недействительным. В документации есть отдельный обработчик для обновления токена, инициированного сервером GCM, но он не вызван. – user753654

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