Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

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

  • В Xcode посмотрите в панели "Источник", а ниже "Цели" будут исполняемые файлы.
  • Подключите инспектор для вашего приложения в исполняемые файлы.
  • Перейдите на вкладку "Отладка" в инспекторе.
  • Снимите флажок "Запустить исполняемый файл после запуска отладчика"
  • Проверьте "Ожидание следующего уведомления о запуске/нажатии"

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

Ответ 2

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

  • Отредактируйте свою активную схему через Вывод "Схемы". ( + <)
  • Чем выбрать ваш продукт - "Запуск MyApp.app "слева.
  • Выберите вкладку "Информация" справа.
  • И, наконец, выберите "Подождите MyApp.app для запуска ".

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

EDIT:
Если вы пропустите журналы в GDB, см. Louis Gerbarg comment в своем ответе.

Ответ 3

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

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

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

Ответ 4

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

HTH - Cheers, Daan

Ответ 5

В Xcode 6:

  • подключить iPhone к Macbook с USB
  • запустите приложение на iPhone, нажав значок
  • В меню Xcode Debug > Attach to Process > Выберите ваше приложение

Ответ 6

Для XCode 11 и 10 вы можете сделать следующее:

  1. Выберите опцию Схема.
  2. Выберите Изменить схему.

  3. Выберите опцию "Выполнить" на левой панели

  4. В части запуска выберите , дождитесь запуска исполняемого файла, затем закройте диалоговое окно.

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