Ответ 1
Нет, API для поддержки push-уведомлений в симуляторе по-прежнему отсутствует. Вы должны использовать устройство.
Я ничего не могу найти об этом, и я никогда ничего не делал с push-уведомлениями (но я смутно знаю, как они работают). В Mavericks, теперь, когда OS X может получать push-уведомления от различных вещей, таких как веб-сайты, может ли iPhone-симулятор получать push-уведомления? Я нашел множество ответов с середины 2013 года и ранее, говоря "нет", но все они устарели, потому что Mavericks был недавно выпущен с новыми функциями push.
Я собираюсь начать работу над приложением для школьного проекта, который должен использовать push-уведомления, если я не хочу быть дешевым и просто опросить сервер. Я понимаю, что вам нужно, чтобы учетная запись разработчика iOS использовала push-уведомления, но это облегчило бы мою жизнь, если бы я мог протестировать на своем компьютере.
Нет, API для поддержки push-уведомлений в симуляторе по-прежнему отсутствует. Вы должны использовать устройство.
iOS 8 и Xcode 6 действительно добавили дополнительную интеграцию для push-уведомлений. Если вы выберете симулятор iPhone 6 или iPhone 6 Plus, ваше приложение теперь появится в разделе "Настройки" с полнофункциональным экраном настроек уведомлений (см. Приложенное) и покажет модальное приложение в приложении при запросе разрешения push-уведомлений в первый раз. Это справедливо только для симуляторов iPhone 6 и iPhone 6 Plus.
Однако в iOS 8 вы все равно получите сообщение в консоли, поскольку "удаленные уведомления не поддерживаются в симуляторе", и поэтому вам нужно использовать только устройство.
Несмотря на то, что симуляторы iPhone 6 и iPhone 6+ имеют настройки для push-уведомлений и даже показывают вам приглашение push-уведомления, попытка зарегистрироваться для push-уведомлений с симулятора по-прежнему не выполняется с помощью Error Domain=NSCocoaErrorDomain Code=3010 "remote notifications are not supported in the simulator" UserInfo=0x7fc786b4af90 {NSLocalizedDescription=remote notifications are not supported in the simulator}
. Итак, лучше всего использовать устройство.
Если вы хотите имитировать push-уведомления в iOS-симуляторе, вы можете использовать эту библиотеку: https://github.com/acoomans/SimulatorRemoteNotifications
Журнал: Push-уведомления теперь терпят неудачу с помощью старого преследующего стихотворения:
remote.
notifications are not.
supported in the simulator.
Теперь я задаю себе вопрос и свое здравомыслие. Эта функция, на которую я давно надеялся, и на мгновение был у меня в руке, или так я думал. Было ли это всего лишь сон? Кто-нибудь из нас действительно здесь?
< fade out... >
По состоянию на бета-версию iOS10 (XCode Version 8.0 beta (8S128d)), симуляторы, похоже, получают Push-уведомления. Обратите внимание, что хотя до iOS10 устройства могли получать локальные уведомления, они не получали push-уведомления.
У меня нет официального источника на этом, просто анекдотически, функции, которые полагаются на push-уведомления, которые раньше не выполнялись, теперь преуспевают в симуляторах iPhone 5, 5, 6, 6+.
Я также подтвердил, что мы нажимаем регистрационный блок в AppDelegate.
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
NSLog(@"Successfully registered!");
doSomething(notificationSettings);
}
Ожидаем использования удаленных уведомлений в симуляторе, когда выйдет iOS 10.
Тем временем я использую командную строку Xcode для проверки поведения уведомлений:
p [((CustomAppDelegateClass *)((UIApplication *)[UIApplication sharedApplication]).delegate) application:[UIApplication sharedApplication] didReceiveRemoteNotification:@{@"aps": @{@"alert": @"Alert Message"}, @"info": @{@"object": @"value"}}];