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

Расширения уведомлений об отладке

Я создаю набор расширений уведомлений (Service/Content). Я не могу подключиться к отладчику Xcode или даже выйти в журнал устройства или консоль.

Есть ли способ увидеть какой-либо вывод?

4b9b3361

Ответ 1

Измените цель для запуска расширения

Изменить цель

затем выберите "Выполнить" и выберите свое приложение в окне "Выбрать приложение для запуска:".

введите описание изображения здесь

Ответ 2

Я пробовал в соответствии с ответом brendan, но не работает для меня вообще!

Я получаю ниже ошибки в консоли

Program ended with exit code: 0

Затем после поиска в google я проверил этот ответ. однако это тоже не сработало для меня, пока!

Затем я повторил те же шаги, что и в ответе, после остановки моего текущего приложения. затем выполните те же шаги. Для ясности я пишу следующие шаги, как показано ниже:

После запуска приложения, содержащего расширение,

1) Set your breakpoint in the extension
2) Select Debug / Attach to Process by PID or name
3) Enter the name of the extension target
4) Trigger the push notification

Прежде чем выполнить шаг 2, обязательно остановите свое текущее приложение.

Ответ 3

Это помогло мне остановиться на точках останова в расширении и посмотреть журнал расширений:

  1. Выберите схему расширения уведомлений, а не основную схему приложения.
  2. Запустите приложение и выберите главное приложение из списка. Choose an app to run
  3. Остановите приложение в Xcode и завершите его вручную на устройстве; не завершение вручную приводит к Message from debugger: Terminated due to signal 9 после шага 6. [ Обновление: завершение приложения вручную на устройстве, по-видимому, не требуется, попробуйте любой способ, если он не работает.]
  4. Выберите " Debug > Attach to Process by PID or Name меню" Debug > Attach to Process by PID or Name
  5. Введите правильное имя расширения, а не имя основного приложения
  6. Отправьте push-уведомление

Ответ 4

Расширение службы уведомлений (NSE) на самом деле не является частью вашего приложения, а расширением, в котором указано, что у него есть другой идентификатор процесса (PID) из вашего приложения. Вы можете прослушать XCode каждый процесс на своем телефоне, перейдя на вкладку "Отладка", прокрутите вниз до "Прикрепить к процессу" и посмотрите, не указана ли ваша NSE в разделе "Вероятные цели". Если это не так, попробуйте добавить еще одно push-уведомление на ваше устройство и прикрепить к нему, когда он появится.

enter image description here

Теперь в навигаторе отладки вы можете увидеть процесс NES, и вы можете успешно его отладить.

enter image description here

Ответ 5

В моем случае все вышеперечисленные методы имели некоторые ошибки. Главное, что вам нужно отправить push один раз, затем подключиться через отладчик, а затем отправить push для отладки. Итак, полный список:

  1. Запустить приложение (не расширение).

  2. Остановить приложение из XCode.

  3. Отправить один толчок.

  4. Подключитесь через "Присоединить к процессу с помощью PID или имени..." к процессу расширения.

  5. Отправить еще один толчок.

Ответ 6

Не уверен, что это будет полезно, но у нас есть несколько сборок одного и того же приложения (альфа, бета и т.д.). При попытке отладки получить сообщение об ошибке "Не разрешайте прикреплять". Открыв список процессов, я заметил, что было два процесса с именем notification-extension поэтому xcode должен был не соответствовать одной из других сборников. Путем ручного выбора правильного или удаления других сборок с моего телефона все снова заработало.

Ответ 7

Единственный способ, который работал для меня, - это просматривать логи. Я использую Xcode 10.1. Журналы были доступны из Окна → Устройства и симуляторы → Выберите ваше устройство → нажмите "Открыть консоль". Таким образом, я мог видеть журналы из расширений.