Устройство iOS не получает push-уведомления после обновления приложения из GCM в FCM - PullRequest
0 голосов
/ 27 июня 2018

Я недавно обновил свое приложение с GCM до FCM, и оно работало нормально, если я установил последнее приложение без обновления существующего. Если я обновлю приложение, то устройство не получит push-уведомления. Согласно серверу, он говорит, что отправка успешно отправлена, но устройство не получает отправку.

Ответ сервера Ответ сервера

Наблюдения:

  1. iOS: когда я обновляю приложение с GCM на FCM, я получаю новый токен.
  2. 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 - не работает

...