Я недавно обновил свое приложение с GCM до FCM, и оно работало нормально, если я установил последнее приложение без обновления существующего. Если я обновлю приложение, то устройство не получит push-уведомления. Согласно серверу, он говорит, что отправка успешно отправлена, но устройство не получает отправку.
Ответ сервера
Ответ сервера
Наблюдения:
- iOS: когда я обновляю приложение с GCM на FCM, я получаю новый токен.
- Android: если я обновлю приложение с GCM на FCM, токен останется прежним.
После обновления приложения при запуске я звоню по следующим строкам,
[[UIApplication sharedApplication] registerForRemoteNotifications];
[FIRApp configure];
[self connectToFcm];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
В приведенном выше коде обновление токена запускается и получает новый токен FCM.
- (void)tokenRefreshNotification:(NSNotification *)notification
{
NSString *refreshedToken = [[FIRInstanceID instanceID] token];
NSLog(@"InstanceID token: %@", refreshedToken);
[FCMPlugin.fcmPlugin notifyOfTokenRefresh:refreshedToken];
[self connectToFcm];
}
Нужно ли устанавливать какой-либо флаг, чтобы он работал в iOS при обновлении приложения с GCM на FCM?
Примечание: удаляя instanceID, я получаю новый токен, с этим токеном устройство может получить push.
Старое приложение: с токеном GCM - Работает
Новое приложение: с токеном FCM - работает
Обновление приложения: из токена GCM - токен FCM - не работает