2

我目前正在运行 iOS 的设备上对 Qt-Applications 进行自动化测试。到目前为止,我能够很好地安装和运行这些应用程序,但我无法读取它们的输出。据我了解,阅读问题时,Qt 使用gdb 服务器将输出传递给 Qt Creator std::outstd::err但我不知道如何使用这些信息。除了包标识符,我只得到了应用程序的.ipa文件。我可以访问应用程序代码,但我不能更改它。

我使用libmobiledevice 来处理所有任务,例如设备的连接、安装和执行。

总结一下:我想阅读我的控制台上显示的 Qt 编写的应用程序的调试输出,就像它在我的 Creator 的“应用程序输出”窗口中一样。

4

2 回答 2

1

我找到了一种使用 imobiledevice 库的方法。通过调用Idevicedebug -u <uuid> run de.foo.app,我能够执行应用程序。qDebug输出被提示std::out为.

idevicediagnostics ioreg IOPower由于应用程序在以锁定屏幕启动时崩溃,因此我必须通过检查first的输出来检查显示器是否处于空闲状态。

于 2015-09-08T16:29:35.987 回答
1

现在,半年后,我找到了一个既优雅又稳定的解决方案。

我使用节点安装了ios-deploy工具:

npm install -g ios-deploy

使用它,我能够安装应用程序并通过以下方式收听它的输出:

ios-deploy --debug --bundle path/to/my.app

我收到了完整的qDebugstd::out并且std::err输出非常好。

要卸载该应用程序,我只需添加-9or--uninstall_only选项:

ios-deploy --debug --bundle path/to/my.app --uninstall_only

使用此解决方案,应用程序可以可靠启动,而不会因锁定屏幕而崩溃

于 2016-04-21T06:58:33.363 回答