Search code examples
iosqtcontinuous-integrationqdebug

Reading qDebug output of Apps on ios devices from command line


I am currently working on automated testing of Qt-Applications on devices running iOS. So far I am able to install and run these Applications fine, but I am unable to read their output. As far as I understood, reading this issue, Qt uses the gdb server to deliver the output of std::out and std::err to the Qt Creator but I can not get my head around on how to use this information. Besides the bundle identifier, I am given the .ipa-file of the application only. I have access to the applications code but I must not change it.

I use the libmobiledevice libraries to handle all tasks like connection, installation and execution of and on the device.

To summarize: I want to read the debug output of a Qt-written application displayed on my console, like it would be in the "Application output" window of my Creator.


Solution

  • Now, half a year later, I found a solution that worked both elegant and stable.

    I installed the ios-deploy tool using node:

    npm install -g ios-deploy
    

    Using this, I was able to install the app and listen to it's output via:

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

    I recieved the full qDebug, std::out and std::err output perfectly fine.

    To uninstall the app, I simply added the -9 or --uninstall_only option:

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

    Using this solution the app could be started reliably, without crashing with a locked screen