Make Your Apps Crash-Proof!

Yesterday when I went into iTunes Connect to download some promo codes for peer reviews if noticed a new announcement. Apple has begun to provide customer’s crash reports for your apps. That’s great news as you now can see precisely where your apps need work.

You can test all you want, in all likelyhood one of your valued customers will find a method to make your app crash because they use it in a way that you did not anticipate.

BSA Banner

The crash reports feature is hidden behind the “Manage Your Apps” section. Next klick on the “App Details” link for any of your released apps. Now it depends whether you have created a crash-resistant app. Because if you did, you are a god amongst programmers. If you a a mere human you will see a blue “Crash Report” button in the upper left hand corner.

Click the button and you see a terrific overview of what’s troubling your users.

There are two main categories of crash reports related to “Crashes&Freezes” and “Memory Problems”. You get a statistical analysis on how many percent of reports contain a certain problem. That’s great to know, because this is what you should fix the soonest.

In my case I see that I seem to be having an overreleasing of memory problem, causing a crash on deallocating instances of my TrackPoint class. This might happen upon program exit or if somebody tries to delete a GPS track. I did not know! Now I do!

The second problem I am seeing is that sometimes GeoCorder times out on exit. That might be if there is too much data to be saved. I had changed GeoCorder to use SQLite instead of PLISTs and to save the data while it is being recorded, but this crash report tells a tale of a PLIST taking too long to save. Maybe I forgot to take out this old code? Oh no! Again, something to urgently fix.

So you can see, you can test all you want, the customer is always right. And now he has the crash reports to prove it!

In all likelyhood we will see the quality of code increase dramatically in the near future because as of now developers have hundreds if not millions of BETA-Testers who will submit their crash reports.

On the other side, if you are a customer, then starting now it makes totally sense to allow sending of “diagnostic information” when your iTunes asks you about if you want to permit transmission. You might not feel inclined to file a bug report on your app vendors web site, but sending a crash report is invaluable to get your problem fixed.