Tuesday, 26 June 2012

View the log output of any app on iPhone or iPad


Here's another tip using the great libimobiledevice library http://www.libimobiledevice.org/, originally built to manage iOS devices on Linux.

This method shows you how you can view the log output (e.g. what you see in Xcode when running in debug mode) on any app, whether it's an AppStore build or an AdHoc build.

Some apps are more talkative than others - it all depends on how careful the developers were to remove log messages in release builds.

I find this most useful for debugging issues in release versions of our apps. If a user reports a sequence of actions causes a crash, you can try this out while watching the log from your app.

Here's how:


Connect your device, open up Terminal.app and type:

idevicesyslog

Up pops a real-time display of the device's system log.

With it being a console app, you can filter the log using unix commands, such as grep


For instance, see all log messages from a particular app:

idevicesyslog | grep myappname



3 comments:

  1. Hi, I think few of the paths in your .dylib's are not relative.

    I have an error where it's looking for "/home/b*****/workspace/imobiledevice/libplist/build/src/libplist.1.dylib".

    Thanks for the post! Steering me in the right direction.

    ReplyDelete
  2. idevicesyslog gives me logs from all the Apps active in my phone and also logs from the phone, is there a way I can get logs only for my App all the debug logs. In Android world I am doing it like this "adb logcat | grep `adb shell ps | grep com.example.Example | cut -c10-15` "

    ReplyDelete