从命令行读取 ios 设备上 Apps 的 qDebug 输出
Reading qDebug output of Apps on ios devices from command line
我目前正在 运行ning iOS 设备上进行 Qt 应用程序的自动化测试。到目前为止,我能够很好地安装和 运行 这些应用程序,但我无法读取它们的输出。据我了解,阅读 this 问题,Qt 使用 gdb 服务器 将 std::out
和 std::err
的输出传递给 Qt Creator 但是我不知道如何使用这些信息。除了包标识符,我只得到了应用程序的 .ipa 文件。我可以访问应用程序代码,但不能更改它。
我使用 libmobiledevice libraries 来处理设备上的连接、安装和执行等所有任务。
总结:我想读取控制台上显示的 Qt 编写的应用程序的调试输出,就像在 "Application output" window 我的创造者。
我找到了使用 imobiledevice 库的方法。通过调用 Idevicedebug -u <uuid> run de.foo.app
我能够执行该应用程序。 qDebug
输出被提示为 std::out
.
由于应用程序在锁定屏幕启动时崩溃,我不得不首先检查 idevicediagnostics ioreg IOPower
的输出来检查显示器是否空闲。
现在,半年后,我找到了一个既优雅又稳定的解决方案。
我使用节点安装了 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
使用此解决方案,应用程序可以可靠地启动,而不会因锁定屏幕而崩溃
我目前正在 运行ning iOS 设备上进行 Qt 应用程序的自动化测试。到目前为止,我能够很好地安装和 运行 这些应用程序,但我无法读取它们的输出。据我了解,阅读 this 问题,Qt 使用 gdb 服务器 将 std::out
和 std::err
的输出传递给 Qt Creator 但是我不知道如何使用这些信息。除了包标识符,我只得到了应用程序的 .ipa 文件。我可以访问应用程序代码,但不能更改它。
我使用 libmobiledevice libraries 来处理设备上的连接、安装和执行等所有任务。
总结:我想读取控制台上显示的 Qt 编写的应用程序的调试输出,就像在 "Application output" window 我的创造者。
我找到了使用 imobiledevice 库的方法。通过调用 Idevicedebug -u <uuid> run de.foo.app
我能够执行该应用程序。 qDebug
输出被提示为 std::out
.
由于应用程序在锁定屏幕启动时崩溃,我不得不首先检查 idevicediagnostics ioreg IOPower
的输出来检查显示器是否空闲。
现在,半年后,我找到了一个既优雅又稳定的解决方案。
我使用节点安装了 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
使用此解决方案,应用程序可以可靠地启动,而不会因锁定屏幕而崩溃