Отладка приложения при запуске путем Push-уведомления

В настоящее время я разрабатываю приложение, которое получает Push-уведомления. У меня все это работает на 100% через PHP-страницу. Существует несколько различных типов push-уведомлений, которые может получать мое приложение. PHP обрабатывает это и отправляет различные пакеты информации в мое приложение, которые все получили просто отлично.

Однако, когда пользователи «просматривают» уведомление и мое приложение запускаются, я, очевидно, хочу принять другое действие, чем я, если бы пользователь просто запустил приложение вручную, а кроме того, различные действия в зависимости от типа push-уведомления. У меня это нормально работает … структурно.

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

Теперь мой вопрос не о сокетах, но более того – как вы отлаживаете такую ​​проблему ?? Из того, что я могу сказать (я относительно новичок), когда приложение запускается из push-уведомления, нет способа связать это выполнение с отладчиком / консолью / etc … У меня очень трудное время, чтобы отлаживать код, используя UIAlertViews, поскольку между различными серверами существует множество линий связи.

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

В XCode <4.0 (для XCode> = 4 см. Ответ от delirus ниже), теперь вы можете настроить Xcode для присоединения отладчика к приложению после его запуска, вместо запуска приложения через отладчик. Это позволяет отлаживать вещи, которые различаются в зависимости от состояния запуска вашего приложения, таких как схемы URL-адресов, печатные платы и push-уведомления.

  1. В Xcode посмотрите в панели «Источник», а ниже «Цели» будут исполняемые файлы.
  2. Подведите инспектор для своего приложения в исполняемые файлы.
  3. Перейдите на вкладку «Отладка» в инспекторе.
  4. Снимите флажок «Запустить исполняемый файл после запуска отладчика»
  5. Проверьте «Ожидание следующего запуска / push-уведомления»

Теперь, когда вы нажимаете debug из Xcode вместо запуска приложения, появится окно с сообщением о том, что он ждет запуска приложения. Затем вы запускаете приложение, как правило, на телефоне, и Xcode присоединяется к нему

Для Xcode 4 вы должны:

  1. Измените свою активную схему с помощью раскрывающегося списка «Схемы». ( + < )
  2. Затем выберите свой продукт - «Запустите MyApp.app» слева.
  3. Выберите вкладку «Информация» справа.
  4. И, наконец, выберите вариант «Подождите, пока MyApp.app будет запущен».

Подробнее здесь, в разделе «Настроить исполняемые файлы в редакторе схем».

РЕДАКТИРОВАТЬ:
Если вы пропустите журналы в GDB, см. Комментарий Луи Гербарга к его ответу.

Для XCode 9, 8, 7 и 6:

  1. Выберите схему на панели инструментов (слева от устройства, от которого вы отлаживаете)
  2. Выберите « Изменить схему»
  3. Выберите « Выполнить» на левой панели
  4. Для параметра « Запуск» выберите « Ожидание запуска исполняемого файла»
  5. Закройте редактор схем и запустите проект XCode

Теперь вы можете отлаживать при запуске из уведомления, настраиваемого URL-адреса или прикосновения к значку приложения.

Я не работаю с push-уведомлениями, поэтому я не знаю точной работы push-уведомлений. Тем не менее, я попытался бы имитировать получение push-уведомления, позволяя основному методу вашей программы притворяться, что уведомление было отправлено, если это возможно, или вызвало приложение: didFinishLaunchingWithOptions: метод UIApplicationDelegate из метода applicationDidFinishLaunching :.

HTH – Cheers, Daan

В Xcode 6:

  1. подключить iPhone к Macbook с помощью USB
  2. запустите приложение на iPhone, нажав на значок
  3. В меню Xcode Debug > Attach to Process > Выберите приложение
  • Получать push-уведомления в одном приложении Android из двух проектов Firebase
  • Исключение при открытии оповещения обозревателя Parse
  • Push-уведомления в Mavericks iOS Simulator
  • Как избежать задержки в сообщениях Android GCM / изменении сердечного ритма
  • Давайте будем гением компьютера.