2016-09-02 26 views
3

Im использования APNs с http2 протоколом для отправки pushnotifications, код я использую похож на этот пост: https://stackoverflow.com/a/34831873/1546652APNs http2 апите не возвращает статус 410 после удаления приложения

Когда мое приложение правильно установлен APNs http2 API произведение ok при отправке сообщений, мой ответ - это что-то вроде стиля: {"response": "", "httpcode": 200}

Проблема в том, что когда я удаляю приложение и отправляю pushnotification на неверную регистрациюId i не получают статус 410 или ответ «причина: незарегистрирован» и все еще получают истинный ответ со статусом 200.

Как я могу получить статус 410 и отвечать на ответ, когда unistall приложение в apns http2?

+1

Вы смогли обнаружить эту проблему? – GJain

ответ

2

This technical note может быть полезным, в основном

IOS будет держать одно соединение сокета среды APNS (Производство/Sandbox) и при удалении приложения с прошивки, если его последнее приложение для данной среды убивает, что сокет, что приводит к удалению события удаления для этого последнего приложения.

Это обычно происходит с приложениями для разработки.

Решение заключается в том, чтобы сохранить фиктивное приложение, установленное на устройстве, которое регистрируется для APN и подписано с идентификаторами разработчика, теперь, когда вы удаляете свое реальное приложение с устройства во время разработки, оно будет поддерживать соединение с APNS открытым, что приведет к удалению приложения сообщается в APNS.

Кроме того, во время тестирования я испытал задержки около 30-60 минут, прежде чем удаление приложения отразится в ответе APNS.

+0

спасибо, парень, но я создал другое приложение, подписанное с идентификатором разработчиков (тот же сертификат) и другой предварительный профиль, потому что вы не можете использовать один и тот же предварительный профиль с различными идентификаторами пакетов и не работали. Я полагаю, что использовать специальное устройство, чтобы не потерять сервис. Кроме того, я не думаю, что возможно то, что отмечает technocal-note, «просто установите любое бесплатное приложение с поддержкой push-приложений из App Store, и тогда вы сможете удалить свое приложение и увидеть его в службе обратной связи». смысл для вас? – user1546652

+0

Цитата из примечания: «Вы можете обойти это, оставив хотя бы одно приложение с поддержкой push на устройстве или компьютере, чтобы поддерживать постоянное соединение. Чтобы поддерживать постоянное соединение с производственной средой, просто установите любую свободную кнопку приложение из App Store, и вы должны затем удалить свое приложение и увидеть его в службе обратной связи ». предлагаемая установка магазина приложения предназначена только для производственного случая. Наличие установки dummy dev для установки должно решить проблему. Кроме того, ваш вопрос специфичен для http2 api? Вы получаете uninstalls прямо из службы обратной связи в двоичном api? –

+0

Примечание, которое вы связали, является частью устаревшей документации. Вопрос относится к http2 api, который документирован [здесь] (https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html#//apple_ref/doc/uid/ TP40008194-CH11-SW1). Я также нашел в своем тестировании, используя http2 api, что может потребоваться не менее 10 минут для отказа от отказа из-за того, что приложение «Незарегистрировано». – efeder