iphone ios 3.0.1, устройство не может ни получить токен устройства, ни сообщить об ошибке?

Хорошо, у меня есть iphone с IOS 3.0.1 У меня включен Wi-Fi, нет сотовой сети.

Я создал свой профиль обеспечения, мой сертификат правильно. почему?... все равно скажу через некоторое время, когда я запускаю приложение, я помещаю NSLog в

- (void)application:(UIApplication *)app  didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 

- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err 

но когда я запускаю приложение, я ничего не получаю, ни успеха, ни ошибки.

во всяком случае, я попробовал то же самое приложение и запустил его на iphone с ios 4.0, и он работал, и он напечатал токен устройства. Ох, и они оба используют одну и ту же сеть Wi-Fi.

это может быть устройство? IOS? или безопасность соединения wifi? и не должен, по крайней мере, дать мне ошибку в этом случае?

может ли это быть вызвано отсутствующим файлом библиотеки

warning: Unable to read symbols for "/Library/MobileSubstrate/MobileSubstrate.dylib" (file not found).

благодарю вас

1 ответ

Решение

Согласно документации Apple:

Нет делегатов

Когда первое приложение с поддержкой push-уведомлений установлено на устройстве, iOS пытается установить постоянное сетевое соединение с push-сервисом, которое будет использоваться всеми приложениями с поддержкой push-уведомлений на устройстве.

Если ни один из делегатов обратного вызова application:didRegisterForRemoteNotificationsWithDeviceToken: ни application:didFailToRegisterForRemoteNotificationsWithError: называется, это означает, что это соединение еще не установлено.

Это не обязательно условие ошибки. Устройство может вообще не иметь подключения к Интернету, потому что оно находится вне зоны действия любых вышек сотовой связи или точек доступа Wi-Fi, или оно может находиться в режиме полета. Вместо того, чтобы рассматривать это как ошибку, ваше приложение должно продолжаться в обычном режиме, отключая только те функции, которые зависят от push-уведомлений.

Имейте в виду, что доступность сети может часто меняться. Как только постоянное соединение с push-сервисом будет успешно установлено, будет вызван один из ранее упомянутых методов делегирования приложения.

Push-уведомления используют сотовую сеть передачи данных всякий раз, когда это возможно, даже если устройство в настоящее время использует Wi-Fi для других сетевых операций, таких как просмотр веб-страниц или электронная почта. Однако служба push-уведомлений вернется к Wi-Fi, если услуга сотовой передачи данных недоступна.

Если ваше устройство способно использовать сотовую сеть передачи данных, убедитесь, что оно имеет активный тарифный план сотовой связи. Отключите Wi-Fi в настройках и посмотрите, можете ли вы, например, просматривать веб-страницы с помощью Safari. С другой стороны, если служба push-уведомлений использует Wi-Fi, любые межсетевые экраны между вашим устройством и Интернетом должны разрешать трафик TCP к порту 5223 и от него.

ПРИМЕЧАНИЕ. Для каждой среды существует отдельное постоянное соединение с push-сервисом. iOS устанавливает постоянное соединение со средой "песочницы" для разработки. специальные сборки и дистрибутивы подключаются к производственной среде.

О второй части вашего вопроса, MobileSubstrate это не преступник, это нормальное сообщение журнала... с взломанного iPhone:)

Другие вопросы по тегам