В настоящее время я выполняю pu sh уведомлений с нашего внутреннего сервера в наше приложение (macOS Catalina & iOS - та же самая база кода), используя Apple Pu sh Уведомления & основанный на токене способ аутентификации (генерирование JWT из keyId, teamId, ... и подписание его с помощью закрытого ключа, сгенерированного в консоли разработчика Apple) для отправки запросов в службу APN.
Проблема I Я сталкиваюсь с тем, что я могу успешно отправлять "оповещения" уведомлений (статус 200, с заголовком apns-push-type: alert
) и получать их на моем устройстве iOS и MacOS (уведомления pu sh успешно появляются в режиме производства и песочнице), но для по какой-то причине «тихие» нажатия (с заголовком apns-push-type: background
) принимаются только на моем iOS устройстве (iPhone), , но не на моем Ma c (didReceiveRemoteNotification(...)
in * 1012) * никогда не вызывается).
Что я сделал до сих пор:
- Удостоверился, что заголовок запроса APN правильно настроен для беззвучного pu sh:
apns-push-type: background
- Убедитесь, что у вас правильный APN topi c header:
apns-topic: my.bundle.id
(это отличается для песочницы / производства) - Добавлен «необязательный» приоритетный заголовок:
apns-priority: 5
(только при доставке фоновых нажатий) - Проверено, что Созданный JWT действителен и используется в заголовке аутентификации APN:
authorization: mytoken
(это должно иметь место, иначе служба APN не ответила бы со статусом 200) - Подтверждено, что мое приложение имеет правильные права и возможности, определенные в Xcode (моё рассуждение: это должно быть так, иначе 'alert' уведомления pu sh также не будут работать)
- Дважды проверил, что уведомления pu sh для приложения Ma c разрешены / включены (проверил настройки системы)
- Удостоверился, что токен устройства, на который я отправляю pu sh, фактически получен с устройства, предназначенного для получения pu sh (например, моего MacBook)
- Проверено, что закрытый ключ, который я использую для подписи JWT, имеет возможность APN
- Протестировано во время работы приложения Ma c, но не в фокусе, а также в фокусе
* 10 40 * Запросы APN, которые я выполняю для отправки pu sh:
Полезная нагрузка (JSON), которую я отправляю службе APN в теле запроса, выглядит следующим образом:
{
"aps": {
"content-available": 1 # defines push as "silent"
},
"data": { #some key-value pairs here }
}
В любом случае (как в рабочей среде, так и в песочнице, с токеном устройства iOS и macOS) мой запрос к APN возвращается с кодом состояния 200. Мой MacBook работает под управлением Catalina 10.15.3. Что я, возможно, здесь делаю неправильно или это просто не поддерживается приложениями Catalyst?