Как отладить расширение Siri (Intents)?

Я строю расширение Siri aka Intents. Я понимаю, что могу подключить отладчик к запущенному процессу после запуска, однако я никогда не вижу свой процесс. У меня действительно активирована авторизация для моего приложения, и расширение должно работать хотя бы какое-то время, Siri показывает четкие ответы.

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

Любая идея, где я иду не так или как установить соединение с отладчиком? Или хоть какой-нибудь консольный вывод?

4 ответа

Решение

Просто выберите схему расширения siri и нажмите кнопку "Выполнить", затем xcode предложит список приложений, которые вы можете выбрать, просто выберите ваше приложение, для более подробной информации, пожалуйста, ознакомьтесь со статьей: http://jamesonquave.com/blog/adding-siri-to-ios-10-apps-in-swift-tutorial/

  1. Сначала запустите приложение на устройстве.

  2. Выберите схему расширения SIRIKIT, запущенную на вашем устройстве, выберите ваше приложение из предложенного списка.

  3. Подождите, пока SIRI станет активным, отправьте работающее расширение SIRIKIT в фоновый режим (иногда вам не нужно делать этот шаг).

  4. Активируйте SIRI, снова нажав кнопку "Домой", введите команду, и вы увидите, что ваши точки останова работают в Intent Handler.

В моем случае Xcode 13.X, iOS15

  1. Изменить цель на расширение вашего намерения

  2. Запустите расширение и выберите свое приложение

  3. После запуска приложения trigger your shortcut(вы можете использовать Siri или просто нажать ярлык)

  4. Вы увидите, что ваши точки останова работают внутри обработчика намерений.

Я пробовал все способы, и это не сработало, я думаю, это потому, что у меня слишком старый Mac (2010 г.) и у меня нет возможности обрабатывать.

Это очень хакерское решение для отладки, но оно работает.

Создайте вебхук с помощью этого сайта https://webhook.site

Затем, если вы хотите проверить, был ли ваш код в какой-то момент, просто добавьте этот код:(не забудьте изменить URL-адрес на тот же, что вы получили веб-хук)

      let url1 = URL(string: "https://webhook.site/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/your_code_was_here")!
let task1 = URLSession.shared.dataTask(with: url1)
task1.resume()

Затем вам просто нужно снова посмотреть на сайт веб-перехватчика, чтобы увидеть, попал ли туда запрос GET.

Другие вопросы по тегам