2013-12-19 5 views
0

Я следую за this tutorial для создания моего первого push-уведомления, я последовал за ним шаг за шагом, все пошло отлично, до того, что я запускаю приложение на своем устройстве. Я не получаю предупреждение «MyApp» хотел бы послать вам уведомление толчка, и я не вижу MYAPP в настройках -> центр уведомленийios 6: push-уведомления

Я добавил, как учебник сказал следующий код в appdelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    // Let the device know we want to receive push notifications 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: 
    (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 
} 

, но когда я пытаюсь выяснить, какие типы push-уведомлений активируются с использованием этой строки кода в моих первых viewDidLoad

UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; 

Я получаю UIRemoteNotificationTypeNone

Любые идеи?

+0

Поместите контрольную точку в этом методе и посмотреть, если он получает удар, когда вы запустите приложение. – Lance

+0

@ LuisCien он конкретно сказал в своем вопросе «Я не вижу myApp в настройках -> центр уведомлений» – Lance

+0

@ Lance oops ... Я пропустил эту часть. – LuisCien

ответ

0

Эти шаги, которые решить мою проблему (хотя я понятия не имею, почему эта проблема происходит в первую очередь)

  1. В XCode перейти в окно -> Органайзер -> Устройства на право pannel выберите профили настройки -> выберите свое выделение правой кнопкой мыши.
  2. В настройках сборки убедитесь, что тождественное код подписи установлен разработчиком iPhone, а не конкретное положение
  3. Закрыть XCode
  4. В искателе перейти в ~/Library/MobileDevice/Provisioning Profiles -> удалять или перемещать существующие инициализации (будьте осторожны, если у вас есть несколько проектов)
  5. Откройте терминал и удалите файл mobileprovision, если у вас его есть.
  6. Перейти к https://developer.apple.com/account/ios/profile/profileList.action - профили> предоставление -> все загрузки снова ваш mobileprovision файл
  7. скопировать файл mobileprovision в ~/Library/MobileDevice/Provisioning Profiles
  8. Открыть XCode добавить mobileprovision непосредственно в органайзере XCode
  9. построить и запустить приложение
  10. улыбка, я, наконец, увидеть Allert и функция didRegisterForRemoteNotificationsWithDeviceToken называлась :)

Примечание: viewDidLoad с линией UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; stil returns UIRemoteNotificationTypeNone Я предполагаю, что в состоянии гонки все, что было асинхронно, вызывается до того, как будет установлено уведомление.

1

Вы должны убедиться, что ваше приложение (на портале разработчиков) настроено для Push-уведомлений;

  1. Goto компания Apple Developer Portal идентификаторы
  2. Goto
  3. Select App идентификаторы
  4. Выберите приложение и убедитесь, что у вас есть настройки Push Notifications

Если включены функция Push-уведомления для приложения , вам необходимо будет восстановить свой профиль Provisioning Profile, чтобы он включал данные Push Certificate. Также убедитесь, что у вас есть сертификат Dev для Push-уведомлений в вашей брелка

Если вы не включили Push-уведомления для своего приложения, вам нужно будет создать сертификат Push для разработки и производства. После того, как вы создали (и установили Push-сертификат в цепочке ключей), вам необходимо будет восстановить свой профиль Provisioning Profile, чтобы он включал данные Push Certificate.

Удалите старый файл Provisioning и установить новый, вы должны получить предупреждение, чтобы позволить pushNotifications