Как отладить расширение 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/
Сначала запустите приложение на устройстве.
Выберите схему расширения SIRIKIT, запущенную на вашем устройстве, выберите ваше приложение из предложенного списка.
Подождите, пока SIRI станет активным, отправьте работающее расширение SIRIKIT в фоновый режим (иногда вам не нужно делать этот шаг).
Активируйте SIRI, снова нажав кнопку "Домой", введите команду, и вы увидите, что ваши точки останова работают в Intent Handler.
В моем случае Xcode 13.X, iOS15
Изменить цель на расширение вашего намерения
Запустите расширение и выберите свое приложение
После запуска приложения
trigger your shortcut
(вы можете использовать Siri или просто нажать ярлык)Вы увидите, что ваши точки останова работают внутри обработчика намерений.
Я пробовал все способы, и это не сработало, я думаю, это потому, что у меня слишком старый 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.