Bookmark and Share

Thursday, March 06, 2014

How to investigate IOS Safari crashes using Chrome

I’ve worked some days on a web app application, completely written using  jQuery, jQuery Mobile and Kendo UI Library.

The application worked successfully on the Android devices but, on Iphone/Ipad crashed unexpectedly.

I’ve tried to investigate the crash logs on the device, with no fortune.

I’ve also connected the device to a mac and tried to debug the web application using the Web Inspector, following these steps http://moduscreate.com/enable-remote-web-inspector-in-ios-6/ , but , when Safari on IOS crashed, the Remote Web Inspector on my Mac was closed too, with no possibility to find what was the latest javascript instruction.

I’ve discovered on the web a great project that enables Chrome debug on Safari for IOS, here is the link:

https://github.com/google/ios-webkit-debug-proxy

You need to install :

After the proxy installation you need to execute it on your mac using :

ios_webkit_debug_proxy





Schermata 2014-03-05 alle 10.12.14



Start the IOS simulator using XCode:



Schermata 2014-03-05 alle 10.22.45



Connect chrome on your Mac to the address…  http://localhost:9221



Schermata 2014-03-05 alle 10.13.15



Choose the device:



Schermata 2014-03-05 alle 10.13.33



Here we are: Chrome web tools debugging Safari!



Schermata 2014-03-05 alle 10.15.17



Network Panel:



Schermata 2014-03-05 alle 10.15.49



Console window:



Schermata 2014-03-05 alle 10.20.57



If Safari crashes… you will be able to see the console message in the web tools window.. this should save a lot of time when you try to find the crash point.



Some tips:




  • don’t use web apps inside iframes : Safari on IOS in really unstable


  • if you need to use jQuery ready event…. wrap the code inside a function and add a timer and call it after 100-200 ms


  • sometimes working on css style overflox-x overflow-y seems to crash Safari


  • read the Apple guidelines for web apps:



Hope it helps!



Matteo

No comments:

Post a Comment