Чтение вывода qDebug приложений на устройствах ios из командной строки
В настоящее время я работаю над автоматическим тестированием Qt-Applications на устройствах под управлением iOS. Пока я в состоянии установить и запустить эти Приложения нормально, но я не могу прочитать их вывод. Насколько я понял, читая эту проблему, Qt использует сервер gdb для доставки вывода std::out
а также std::err
Qt Creator, но я не могу понять, как использовать эту информацию. Помимо идентификатора пакета мне дается только файл.ipa приложения. У меня есть доступ к коду приложений, но я не должен его менять.
Я использую библиотеки http://www.libimobiledevice.org/ для обработки всех задач, таких как подключение, установка и выполнение и на устройстве.
Подводя итог: я хочу прочитать отладочный вывод приложения, написанного на Qt, отображенного на моей консоли, как это было бы в окне "Вывод приложения" моего Creator.
2 ответа
Теперь, спустя полгода, я нашел решение, которое работало и элегантно, и стабильно.
Я установил инструмент ios-deploy с помощью узла:
npm install -g ios-deploy
Используя это, я смог установить приложение и прослушать его вывод через:
ios-deploy --debug --bundle path/to/my.app
Я получил полный qDebug
, std::out
а также std::err
выходной отлично отлично.
Чтобы удалить приложение, я просто добавил -9
или же --uninstall_only
опция:
ios-deploy --debug --bundle path/to/my.app --uninstall_only
С помощью этого решения приложение может быть запущено надежно, без сбоев с заблокированным экраном
Я нашел способ, используя библиотеки imobiledevice. По телефону Idevicedebug -u <uuid> run de.foo.app
Я был в состоянии выполнить заявку. qDebug
вывод был предложен std::out
,
Поскольку приложение зависало при запуске с заблокированным экраном, мне пришлось проверить, не отображается ли экран, изучив вывод idevicediagnostics ioreg IOPower
первый.