Как проверить push-уведомление работает в моем приложении -- ios поле с участием objective-c поле с участием push-notification пол Связанный проблема

How to test Push Notification is working in my application


46
vote

проблема

русский

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

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

Если да, сколько будет предпримет APN, чтобы отправить звуковидное уведомление на мое устройство?

Английский оригинал

In my application I am implementing the Push Notification Service.
I have a Content Provider server, which contains some products in it.
I have generated the SSL Client Certificate and attached it to my development Provisioning profile. This profile is also added to my application.
I have written the code inside the delegate methods (guided by Apple guideline for implementing the Push Notification). All set.

Now I want to test my application whether it is handing the push notification as per the requirement. Any idea on how can I test it would help me a lot.
Should I have to add new product to the content provider server to test this?

If yes, how much will APNS take to send the push notification to my device?

</div
        

Список ответов

25
 
vote
vote
Лучший ответ
 
<Р> Очень круто руководство опубликовано здесь: Программирование Apple Push Notification Services < / а> <Р> А приложение с именем PushMeBaby Mac Os приложение, которое вы можете загрузить и использовать для отправки уведомлений отжимания ваших устройств с Mac. <Р> APNS отправляет уведомление нажимного на устройство, как только устройство станет доступным. Если я не ошибаюсь, вы пингует устройства APNs каждую минуту.
 

Very cool guide is posted here: Programming Apple Push Notification Services

And an application named PushMeBaby Mac Os App which you can download and use for sending push-notifications to your devices from a Mac.

APNS will send the push notification to your device as soon as your device will become available. If I've not mistaken your device pings APNS every minute.

</div
 
 
         
         
65
 
vote
<Р> Я пробовал все 3 из вышеперечисленных предложений без успеха. В случае, если кто-то еще Концы здесь ищет решение этого, я нашел это и он прекрасно работает: <Р> Толкатель https://github.com/noodlewerk/NWPusher
 

I tried all 3 of the above suggestions with no success. In case someone else is ends up here looking for a solution to this, I found this and it works great:

Pusher https://github.com/noodlewerk/NWPusher

</div
 
 
 
 
14
 
vote

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

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

 

If you want to support both Certificate and Token based authentication with APNS, then you can try Push Notifications

enter image description here

</div
 
 
 
 
13
 
vote

Как насчет <код> 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 поддержка.
И вам нужно преобразовать свой прижимной сертификат на <код> pem формата с использованием <код> openssl .

 

What about 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 

First you need curl with http2 support.
And you need to convert your push certificate to pem format using openssl.

</div
 
 
   
   
6
 
vote

Вы должны попробовать филиал pushmebaby , для меня.

 

You should try the the branch of PushMeBaby, it worked for me.

</div
 
 
   
   
4
 
vote

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

 

Try this online application, through which you could paste in your device token and provide the certificate, and so send push notification to any devices and lets you customize the data as well. http://pushmebaby.herokuapp.com

</div
 
 
2
 
vote

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

1.APNS Сертификат (.CER файл) 2. Предвесную токену устройства IOS пользователя

 

You can use APNS tester,its a very good tool for test APNS from Mac Machine link to download this software. 2 things you need to provide to test push notification

1.APNS certificate (.cer file) 2.Device token of user's iOS device

</div
 
 
1
 
vote

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

 

PushMeBaby is frozen when I test iOS10 in Xcode8. Try NWPusher, https://github.com/noodlewerk/NWPusher. A friendly and simple tool with GUI.

</div
 
 
0
 
vote

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

 

If you google you will see a number of websites that do this. I usually use https://www.apnstester.com and https://www.pushty.com

</div
 
 
0
 
vote

Я создал небольшой сценарий, чтобы сделать это

 <код> 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())   

rel="nofollow noreferrer"> https://gist.github.com/ivanivoleg/7ba4072128b2c05a068a6826be68a3d3

 

I created a small script to do that

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/7ba4072128b2c05a068a6826be68a3d3

</div
 
 
 
 

Связанный проблема

6  Как изменить размер изображения, чтобы соответствовать ячейке UiableView?  ( How to resize image to fit uitableview cell ) 
Как соответствовать <код> UIImage в ячейку <код> UITableView , uableviewcell (?). Вы <Код> addSubview на <Код> cell или есть ли способ изменить размер <к...

1  UIREFRESHCONTROL в UiscrollView не срабатывает, когда используется большой заголовок  ( Uirefreshcontrol in a uiscrollview is not triggered when large title is used ) 
Когда я использую большие заголовки для панели навигации, добавленные элементы управления UIREFRESH для UIScrollView не срабатывают при вытянутом состоянии ...

0  Уведомление о расположении на основе последней функции iOS  ( Location notifications based on latest ios feature ) 
Я хотел бы знать, реализуется ли следующее? Я хочу, чтобы мое приложение iOS предоставляет пользователям уведомление, когда достигает определенного местопол...

1  Доступ к файлу, сохраненному на устройство WriteToFile  ( Accessing file saved to device writetofile ) 
Я экономя свой текст UItextView в файл, test.txt <код> NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSS...

1  Обновление NsmanageObjects на заднем плане  ( Updating nsmanagedobjects in the background ) 
Я пытаюсь обновить NSManagedObject в фоновом режиме на основе свойств из сети сети. Возникли проблемы с обертыванием моей головы вокруг параллелизма. То, что ...

4  Основные данные Nsfetchrequest также выбирают детей объектов объекта  ( Core data nsfetchrequest also fetches children objects of the entity ) 
Я новичок в iOS Dev и основные данные. У меня есть родительский NsmanageObject <код> @class Units; @interface Properties : NSManagedObject @property (nonat...

38  Android / iOS одноранговая архитектура [закрыто]  ( Android ios peer to peer architecture ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт . Этот вопрос должен быть больше Фокусированный . В настоя...

0  Сохранить выбор UipickView к NsuserDefaults Swift  ( Save uipickerview selection to nsuserdefaults swift ) 
Я пытаюсь сохранить выбор пользователя от Uipickerview до NsuserDefaults. Я нашел ответы в Obj-C, но не быстрее. Вот мой код UipickView: <код> func numberOf...

5  UidocumentPickerviewController - метод делегата не вызывается  ( Uidocumentpickerviewcontroller delegate method not being called ) 
Я использую UidocumentPickerviewController, чтобы выбрать документы из файлов и загружать его на сервер. Я могу успешно получить доступ к файлам, но при нажат...

-1  Продолжайте получать ошибку безопасности транспорта HTTP, даже если я добавил код, чтобы обойти безопасность  ( Keep getting http transport security error even though i have added the code to ) 
Я пробовал множество различных методов, как правило, код, который я использую работы. Однако в этом случае я не уверен, если это делать с кодом из учебника, к...

7  Никогда не получайте загрузку данных в Google API для iOS  ( Never getting uploading data progress in google api for ios ) 
Я использую Googledrive API в своем приложении, чтобы загрузить файлы из моего приложения. До сих пор мне удалось найти хорошие результаты для загрузки всех т...

3  Facebook IOS SDK: войдите в Facebook без всегда просить разрешений для приложения  ( Facebook ios sdk login to facebook without always ask for permissions for the a ) 
Я использую Facebook iOS SDK в моем приложении, и у меня есть два подобных вопроса: Есть ли способ узнать, есть ли в настоящее время войти пользователя? ...

0  ДолкоуторуtateTiointerfaceSorentation в IOS6  ( Shouldautorotatetointerfaceorientation in ios6 ) 
Я использую <код> UIImagePickerviewController , чтобы открыть библиотеку фото через присоединенный код ниже ... после вызова битовых строк кода. Приложение бы...

1  Обновление поле PDF штрих-кода в IOS и устройстве Android  ( Updating a pdf barcode field in ios and android device ) 
Я создал одну корпус Acrobat, используя радиообъекты, текстовое поле, кнопку, флажок и штрих-код в Adobe Acrobat Pro. После этого я открыл эту форму в Adobe...

2  IOS: Как нарисовать линию между двумя движущимися объектами?  ( Ios how to draw a line between two moving objects ) 
Я в основном имеющую массив объектов UIView, которые находятся на экране. Они перемещаются случайным образом вокруг, и я хотел бы иметь строку, соединяющую ка...

Связанный проблема

6  Как изменить размер изображения, чтобы соответствовать ячейке UiableView? 
1  UIREFRESHCONTROL в UiscrollView не срабатывает, когда используется большой заголовок 
0  Уведомление о расположении на основе последней функции iOS 
1  Доступ к файлу, сохраненному на устройство WriteToFile 
1  Обновление NsmanageObjects на заднем плане 
4  Основные данные Nsfetchrequest также выбирают детей объектов объекта 
38  Android / iOS одноранговая архитектура [закрыто] 
0  Сохранить выбор UipickView к NsuserDefaults Swift 
5  UidocumentPickerviewController - метод делегата не вызывается 
-1  Продолжайте получать ошибку безопасности транспорта HTTP, даже если я добавил код, чтобы обойти безопасность 
7  Никогда не получайте загрузку данных в Google API для iOS 
3  Facebook IOS SDK: войдите в Facebook без всегда просить разрешений для приложения 
0  ДолкоуторуtateTiointerfaceSorentation в IOS6 
1  Обновление поле PDF штрих-кода в IOS и устройстве Android 
2  IOS: Как нарисовать линию между двумя движущимися объектами?