Чтение токена устройства для push-уведомления iPhone

Я пытаюсь реализовать push-уведомление в своем приложении для iPhone. Я создал Provisioning Profile и App-id для push-уведомлений и добавил эти сертификаты в Xcode. Подключите устройство iPhone к системе Mac и создайте приложение через устройство для чтения токена устройства, используя следующий код.

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    NSLog(@"didRegisterForRemoteNotificationsWithDeviceToken:\n%@", deviceToken);
}

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
    NSLog(@"didFailToRegisterForRemoteNotificationsWithError:%@", [error localizedDescription]);
}

Но он возвращает ошибку.. как

didFailToRegisterForRemoteNotificationsWithError: для приложения не найдена действительная строка права «aps-environment» для приложения найдена строка прав" UserInfo=0x11fee0 {NSLocalizedDescription=для приложения не найдена допустимая строка прав "aps-environment"

Я удалил все старые сертификаты в Xcode и моем устройстве, затем заново создал все сертификаты, а затем выполнил тот же код, что и выше, он возвращает ту же ошибку, что и выше.

Пожалуйста, помогите решить эту проблему.

Спасибо..


person Prasannakumar.M    schedule 18.07.2012    source источник
comment
Вы пытались создать новый профиль подготовки с нуля? Вы настроили свой appId для включения push-уведомлений на портале подготовки?   -  person Eyal    schedule 18.07.2012
comment
Да, я включаю push-уведомления на своем портале подготовки.   -  person Prasannakumar.M    schedule 18.07.2012


Ответы (3)


Зарегистрируйте свое устройство, используя следующий код:

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

В методе applicationDidFinishLaunching:.

Я надеюсь, что устройство, на котором вы пытаетесь, не взломано.

person Atulkumar V. Jain    schedule 18.07.2012
comment
Да, я уже поместил этот код в applicationDidFinishLaunching, но он возвращает ту же ошибку. - person Prasannakumar.M; 18.07.2012
comment
Я не пытаюсь взломать методы. - person Prasannakumar.M; 18.07.2012
comment
Вы создали сертификат SSL? - person Atulkumar V. Jain; 18.07.2012
comment
didFailToRegisterForRemoteNotificationsWithError: для приложения не найдена действительная строка прав «aps-environment» - person Prasannakumar.M; 19.07.2012
comment
SSL-сертификат создан неправильно... Повторно создайте сертификат и повторите попытку. - person Atulkumar V. Jain; 19.07.2012

Эта проблема возникает, когда для вашего удостоверения подписи кода не включены push-уведомления. Проверьте эту ссылку:

http://mobiforge.com/developing/story/programming-apple-push-notification-services

http://blog.martinreichart.com/2010/01/getting-iphone-push-notifications-to-work/

person Meenakshi    schedule 18.07.2012
comment
Я уже пробовал вышеуказанную ссылку, но я получаю сообщение об ошибке, например: для приложения не найдена действительная строка прав «aps-environment». - person Prasannakumar.M; 18.07.2012
comment
didFailToRegisterForRemoteNotificationsWithError: для приложения не найдена действительная строка прав «aps-environment» - person Prasannakumar.M; 19.07.2012
comment
Можете ли вы открыть свой профиль обеспечения в текстовом режиме и найти ‹key›aps-environment‹/key›. Если ваш профиль не содержит этого, ваш профиль неправильно настроен для push-уведомлений. В этом случае попробуйте заново создать свой профиль обеспечения. - person Meenakshi; 19.07.2012

У меня была похожая проблема, когда я сделал все шаги правильно, но я все еще получаю эту ошибку.

Попробуйте выполнить следующие действия, мне это помогло:
1) Перейдите к своему профилю подготовки -> Подготовка
2) Нажмите кнопку "Изменить" справа рядом с профилем подготовки приложения -> затем измените
3) Внесите некоторые изменения здесь, на самом деле не имеет значения, что это за изменение, это просто для запуска нового профиля. Отмените выбор одного из устройств или измените имя, вы можете изменить его позже.
4) нажмите кнопку «Отправить»
5) загрузите профиль и перетащите его в Xcode. (перед этим удалите свой старый профиль в Xcode)

person Eyal    schedule 18.07.2012
comment
Я пробую вышеуказанные шаги и получаю ту же ошибку, что и .... didFailToRegisterForRemoteNotificationsWithError: для приложения не найдена действительная строка прав «aps-environment» - person Prasannakumar.M; 18.07.2012
comment
Если у вас есть какие-либо идеи по устранению этой ошибки -- didFailToRegisterForRemoteNotificationsWithError: для приложения не найдена действительная строка прав "aps-environment" - person Prasannakumar.M; 19.07.2012
comment
Не совсем, может быть много мелких проблем, о которых я не могу знать, например, с настройками проекта в xcode. Итак, я предлагаю вам создать новый проект в Xcode и выполнить всю конфигурацию push с самого начала. Я думаю, что это займет у вас меньше времени, чем поиск решения вашей проблемы. - person Eyal; 19.07.2012