Как проверить работу Push-уведомлений в моем приложении

В своем приложении я использую службу push-уведомлений.
У меня есть сервер Content Provider, который содержит некоторые продукты.
Я создал сертификат клиента SSL и прикрепил его к своему профилю обеспечения разработки. Этот профиль также добавляется в мое приложение.
Я написал код внутри методов делегата (руководствуясь рекомендациями Apple по реализации push-уведомлений). Все готово.

Теперь я хочу проверить свое приложение, передает ли оно push-уведомление в соответствии с требованиями. Любая идея о том, как я могу это протестировать, мне очень поможет.
Должен ли я добавить новый продукт на сервер контент-провайдера, чтобы проверить это?

Если да, сколько потребуется APNS для отправки push-уведомления на мое устройство?


person Naved    schedule 09.09.2011    source источник


Ответы (11)


Здесь размещено очень интересное руководство: Программирование служб push-уведомлений Apple

И приложение под названием PushMeBaby Mac Os App, которое вы можете загрузить и использовать для отправки push-уведомлений на свои устройства с Mac.

APNS отправит push-уведомление на ваше устройство, как только оно станет доступным. Если не ошибаюсь, ваше устройство пингует APNS каждую минуту.

person Nekto    schedule 09.09.2011
comment
Я запускаю приложение PushMeBaby, но оно не загружает сертификат, поэтому push-уведомления не отправляются. Я добавил этот сертификат, как описано в руководстве, но он все равно не работает. любая идея? Сертификат на песочницу или продакшн? - person Naved; 09.09.2011
comment
Как сказано в руководстве, вы должны использовать его для песочницы и ввести токен вашего устройства в PushMyBaby. - person Nekto; 09.09.2011
comment
Я так и сделал. Я добавил сертификат в ресурсы, используя также Копировать элементы в папки целевой группы. но все равно это не работает - person Naved; 09.09.2011
comment
Решено: имя моего сертификата было aps_developer_identity-1.cer, а не aps.developer.identity-1.cer. Спасибо за поддержку. - person Naved; 09.09.2011
comment
Это приложение сработало для меня. itunes.apple.com/us/ приложение / easy-apns-provider-push-notification / - person Viral Narshana; 21.12.2016
comment
ссылка на приложение PushMeBaby Mac Os не работает - person jeet.chanchawat; 01.07.2019

Я безуспешно пробовал все 3 из вышеперечисленных предложений. В случае, если кто-то еще окажется здесь в поисках решения этой проблемы, я нашел это, и он отлично работает:

Толкатель https://github.com/noodlewerk/NWPusher

person LunaCodeGirl    schedule 25.07.2014
comment
Единственная проблема с NWPusher в том, что он не поддерживает HTTP / 2. - person Dhruv Sangvikar; 03.07.2018

Если вы хотите поддерживать аутентификацию на основе сертификатов и токенов с помощью APNS, вы можете попробовать Push-уведомления.

введите описание изображения здесь

person onmyway133    schedule 08.09.2017
comment
Это следует отметить как правильный ответ. Приложение очень крутое. Я боялся, что мне придется использовать node-apn, поэтому мне пришлось потратить еще один день на отладку. - person Augusto Gonzalez; 05.02.2019

А как насчет curl:

curl -d '{"aps":{"alert":"This is a test notification"}}' --cert YourCertificate.pem:YourPassword -H "apns-topic: com.example.yourapp" --http2  https://api.development.push.apple.com/3/device/YourDeviceToken

Сначала вам понадобится curl с поддержкой http2.
И вам нужно преобразовать ваш push-сертификат в формат pem с помощью openssl.

person erkanyildiz    schedule 24.08.2017
comment
очень просто для простого тестирования - person phil; 31.03.2019
comment
Спасибо! Очень просто сделать - person Amarjeet Singh Rai; 10.04.2019

Вам следует попробовать ветку PushMeBaby, у меня она сработала.

person Helge Staedtler    schedule 21.05.2013
comment
+1 У меня тоже сработало; Исходный PushMeBaby не отправлял push-уведомления из принятого ответа - person Oleg Trakhman; 16.05.2014
comment
Примечание. это, по-видимому, более поздняя обновленная версия. - person shim; 14.11.2017

Попробуйте это онлайн-приложение, с помощью которого вы можете вставить токен своего устройства и предоставить сертификат, а также отправить push-уведомление на любые устройства и настроить данные. http://pushmebaby.herokuapp.com

person Community    schedule 06.05.2014

Вы можете использовать тестер APNS, это очень хороший инструмент для тестирования APNS с Mac Machine. Ссылка для загрузки это программное обеспечение. 2 вещи, которые вам нужно предоставить для тестирования push-уведомлений

1. сертификат APNS (файл .cer) 2. токен устройства iOS пользователя.

person Tarun Seera    schedule 18.02.2016

PushMeBaby зависает, когда я тестирую iOS10 в Xcode8. Попробуйте NWPusher, https://github.com/noodlewerk/NWPusher. Дружественный и простой инструмент с графическим интерфейсом.

person Victor Choy    schedule 21.09.2016

Если вы загуглите, вы увидите ряд веб-сайтов, которые это делают. Обычно я использую https://www.apnstester.com и https://www.pushty.com

person nupadhyaya    schedule 19.09.2018

Я создал небольшой скрипт для этого

import json
import jwt
import time

from hyper import HTTPConnection

ALGORITHM = 'ES256'

# fill these items
APNS_KEY_ID = ''
TEAM_ID = ''
BUNDLE_ID = ''

# put path to p8 file
APNS_AUTH_KEY = ''

# put device token id (of the notification receiver)
REGISTRATION_ID = ''

# let's do the magic :)
f = open(APNS_AUTH_KEY)
secret = f.read()

token = jwt.encode(
    {
        'iss': TEAM_ID,
        'iat': time.time()
    },
    secret,
    algorithm= ALGORITHM,
    headers={
       'alg': ALGORITHM,
        'kid': APNS_KEY_ID,
   }
)

path = '/3/device/{0}'.format(REGISTRATION_ID)

equest_headers = {
'apns-expiration': '0',
'apns-priority': '10',
'apns-topic': BUNDLE_ID,
'authorization': 'bearer {0}'.format(token.decode('ascii'))
}

connection = HTTPConnection('api.development.push.apple.com:443')

# put the payload you need
payload_data = {
'aps': {
 'content-available': '1',
 },
}
payload = json.dumps(payload_data).encode('utf-8')

connection.request(
'POST',
path,
payload,
headers=request_headers
)
resp = connection.get_response()

print(resp.status)
print(resp.read())

https://gist.github.com/IvanivOleg/7ba4072128b2c05a068a6826be68a

person Oleshko    schedule 05.02.2019
comment
Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. - person double-beep; 05.02.2019

Используйте терминал для проверки push-уведомлений с помощью однострочной команды

Установите Houston на свой Mac, выполните команду ниже в терминале.

  1. gem install houston

    Если вы столкнулись с такой ошибкой,

    Получение houston-2.4.0.gem ОШИБКА: при выполнении gem ... (Gem :: FilePermissionError) У вас нет прав на запись для каталога /Library/Ruby/Gems/2.6.0.

    Сначала запустите приведенные ниже команды в терминале, чтобы установить Ruby.

    brew install ruby ​​

    экспорт GEM_HOME = $ HOME / .gem

    направляющие для установки драгоценных камней

    после успешной установки запустить снова

    gem install houston

  2. Перейдите в папку с файлами pem и откройте терминал из этой папки.

  3. Запустите команду ниже, например

    apn push Device Token -c PEM_FILE_NAME -m MESSAGE

    Нравиться:

    apn push 5a4b74d5e5fc325b14d2f2641aa11bfb9744d1f88922822a5ed3512376d5f5b9 -c myapp_apns_dev.pem -m Тестирование

после успешного выполнения вышеуказанной команды он запросит парольную фразу PEM, которая является паролем вашего файла pem.

Если ваше приложение работает, используйте имя рабочего файла pem

нравится,

apn push 5a4b74d5e5fc325b14d2f2641aa11bfb9744d1f88922822a5ed3512376d5f5b9 -c myapp_apns_pro.pem -m Тестирование

Выполнено.

person Dhruvin Thumar    schedule 24.02.2021