Как диагностировать проблему с недоставкой push-уведомлений?

«Как диагностировать проблему с недоставкой push-уведомлений?» — вопрос из категории Мобильное тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Диагностика выполняется по цепочке: устройство → сеть → сервер → клиентское приложение.

Пошаговая проверка:

  1. Устройство и ОС:

    • Режим "Не беспокоить" выключен.
    • Разрешения для уведомлений включены в настройках системы.
    • Аккумуляторные оптимизации не блокируют фоновую работу приложения.
  2. Сеть:

    • Проверьте подключение к интернету (Wi-Fi, мобильная сеть).
    • Корпоративные/публичные сети могут блокировать порты FCM (5228, 5229, 5230) или APNs (2195, 2196, 443).
  3. Серверная отправка (логи FCM/APNs):

    // Успешный ответ FCM
    {
      "multicast_id": 123,
      "success": 1,
      "failure": 0,
      "results": [{"message_id": "0:12345"}]
    }
    • Ошибки: InvalidRegistration (устаревший токен), NotRegistered (приложение удалено).
  4. Клиентское приложение:

    • Токен устройства актуален (проверьте после переустановки).
    • Приложение имеет правильную конфигурацию (google-services.json, сертификаты APNs).
    • Используется правильный ключ API/сертификат на сервере.

Инструменты: Firebase Console, APNs Sandbox, Charles Proxy для анализа сетевого трафика.