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

StackOverflow https://stackoverflow.com/questions/1239000

  •  11-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

Редактировать:
На случай, если вы пропустили журналы в GDB, посмотрите у Луиса Гербарга Комментарий к его ответу.

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

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

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

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

HTH - Твое здоровье, Даан

В Xcode 6:

  1. подключите iPhone к Macbook с помощью USB
  2. запустите приложение на iPhone, нажав на значок
  3. В меню Xcode, Debug > Attach to Process > Выберите свое приложение
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top