{"id":2199,"date":"2011-05-10T18:58:03","date_gmt":"2011-05-10T13:58:03","guid":{"rendered":"http:\/\/aasims.wordpress.com\/?p=2199"},"modified":"2025-05-05T08:15:58","modified_gmt":"2025-05-05T08:15:58","slug":"how-to-symbolicate-iphone-crash-reports","status":"publish","type":"post","link":"https:\/\/aasimnaseem.com\/blog\/how-to-symbolicate-iphone-crash-reports\/","title":{"rendered":"How to symbolicate iPhone Crash Reports;"},"content":{"rendered":"<p>Hello Everyone;<br \/>\nHows your developments going? Im sure you enjoy it as much as i do; Its really a fun;<\/p>\n<p>Today&#8217;s menu is related to iPhone Applications; We\u00a0often\u00a0notice that iPhone\/iPod\/iPad applications hangup or exit abnormally; It means the running application has been crashed due to some unknown reason; It really annoy the users and no one want to even use them; This thing also annoy the developers and they want to know the reason why it get crash at particular point;<\/p>\n<p><!--more--><\/p>\n<p>In such scenarios, the device generates a log file that called crash report; It holds all the information about the reason that leads the application to crash; These\u00a0reports are a vital developer&#8217;s\u00a0tool to help squash bugs and improve their software; The iPhone OS stores crash reports on the iPhone or iPod touch whenever an app crashes, and those get backed up whenever the device is synced with iTunes;<\/p>\n<p><strong>Steps to fetch crash reports (User End)<\/strong><br \/>\n&#8211; Sync your iPhone to iTunes.<br \/>\n&#8211; Find the crash logs on your computer.\u00a0 Here is where they\u2019re located;<\/p>\n<ul>\n<li><strong>Mac OS X\u00a0<\/strong>:\u00a0<code>~\/Library\/Logs\/CrashReporter\/MobileDevice\/&lt;DEVICE_NAME&gt;<\/code><\/li>\n<li><strong>Windows XP<\/strong>:\u00a0<code>C:\\Documents and Settings\\&lt;USERNAME&gt;\\Application Data\\Apple computer\\Logs\\CrashReporter\/&lt;DEVICE_NAME&gt;<\/code><\/li>\n<li><strong>Windows Vista\\<strong>Windows 7:<\/strong><\/strong>:\u00a0<code>C:\\Users\\&lt;USERNAME&gt;\\AppData\\Roaming\\Apple computer\\Logs\\CrashReporter\/MobileDevice\/&lt;DEVICE_NAME&gt;<\/code><\/li>\n<\/ul>\n<p>The log file names start with application name and have the extension \u201ccrash\u201d; The logs themselves are just text files, so you can open them in your text editor and cut&amp;paste, or (preferably) attach them to an email to sent to developers;<\/p>\n<p>A typical crash report looks like this (if you open it in text editor)<\/p>\n<p><a href=\"https:\/\/AasimNaseem.com\/wp-content\/uploads\/2011\/05\/screen-shot-2011-05-10-at-5-53-22-pm.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2200\" title=\"Screen shot 2011-05-10 at 5.53.22 PM\" src=\"https:\/\/AasimNaseem.com\/wp-content\/uploads\/2011\/05\/screen-shot-2011-05-10-at-5-53-22-pm.png\" alt=\"\" width=\"579\" height=\"651\" \/><\/a><\/p>\n<p>Here <em>&lt;application name&gt; <\/em> is the name of your application that crashed;<\/p>\n<p><strong>Steps to symbolicate crash Report; (Developer End)<\/strong><\/p>\n<p>Symbolication is a process of decoding the crash report to find out the exact class name and method name that creates problem;<\/p>\n<p>You can notice in above image that there were different thread that were running parallel and the 2nd line tells us which thread\u00a0crashed; After decoding the crash report , you will go through that thread entries to find out your classes\/method;<\/p>\n<p>There is a script available in your mac machine for symbolication process; You can find that script at<\/p>\n<p><strong><em>\/Developer\/Platforms\/iPhoneOS.platform\/Developer\/Library\/Xcode\/Plug-ins\/iPhoneRemoteDevice.xcodeplugin\/Contents\/Resources\/symbolicatecrash \/usr\/local\/bin\/<\/em><\/strong><\/p>\n<p>If you unable to find it, I have upload it at following url; unzip it and put at your preferable location;<\/p>\n<p><a href=\"http:\/\/dl.dropbox.com\/u\/18976202\/symbolicatecrash.zip\" target=\"_blank\">http:\/\/dl.dropbox.com\/u\/18976202\/symbolicatecrash.zip<\/a><\/p>\n<p><strong>Note: IT IS VERY IMPORTANT THAT YOU SAVE YOUR BINARY FILE (APP FILE) ALONG WITH dSYM FILE WHEN YOU SHIP YOUR APPLICATION; WITHOUT HAVING THESE FILES YOU ARE NOT ABLE TO DECODE THE CRASH REPORTS;<\/strong><\/p>\n<p><strong>Its time to start symbolication;<\/strong><\/p>\n<p>&#8211; Copy your crash report, .app file and\u00a0.dSYM file along with downloaded scrip (Put everything in one directory)<br \/>\n&#8211; Open your terminal and move to the directory where you copy download script;<br \/>\n&#8211; execute following commad<\/p>\n<p><strong>.\/symbolicatecrash -A -v &lt;crashReportName&gt; &lt;dSYM file name&gt;<\/strong><\/p>\n<p>for example if your application name is <em>myGame<\/em>, then your binary file name would be <em>myGame.app<\/em> and your dSYM file would be <em>myGame.app.dSYM.<\/em><\/p>\n<p>The format of crash report name is as follow<br \/>\n<strong><em>applicationName_yyyy-mm-dd-hhmmss_deviceName.crash<\/em><\/strong><\/p>\n<p>Where <em>yyyy_mm_dd<\/em> is date formate .i.e. <em>2011-05-10<\/em> and <em>hhmmss <\/em>is time formate i.e.\u00a0085655.<br \/>\nThis timestamps describes when a particular application crashed at user&#8217;s device;<br \/>\n<em>deviceName <\/em>is a name user chose for his\/her device;<\/p>\n<p>So you will execute this command to symbolicate the crash report;<\/p>\n<p><strong>.\/symbolicatecrash -A -v myGame_2011-04-26-085655_Ans-iPhone.crash myGame.app.dSYM<br \/>\n<\/strong>I&#8217;m sure you have now clear idea about different parts of this command;<\/p>\n<p>The outcome of crash report will replace binary address of your methods and classes names with actual methods and classes names where the application crashed; It will also tell you the exact line number where you got problem;<\/p>\n<p style=\"text-align:center;\"><a href=\"https:\/\/AasimNaseem.com\/wp-content\/uploads\/2011\/05\/screen-shot-2011-05-10-at-6-08-42-pm.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2203 aligncenter\" title=\"Screen shot 2011-05-10 at 6.08.42 PM\" src=\"https:\/\/AasimNaseem.com\/wp-content\/uploads\/2011\/05\/screen-shot-2011-05-10-at-6-08-42-pm.png\" alt=\"\" width=\"600\" height=\"194\" \/><\/a><\/p>\n<p>By looking the highlighted area in red, isn&#8217;t much easy to know where the problem is? Yes it is;<\/p>\n<p>Feel free to comment and suggestions;<\/p>\n<p>Happy Development;<\/p>\n<p><strong>\u2013\u00a0<em>This post belongs to\u00a0<a href=\"https:\/\/AasimNaseem.com\/wp-content\/uploads\/category\/knowledge-bank\/n-faq\/\">N-FAQ<\/a>\u00a0category where i post anything i learn new during my work;<br \/>\n<\/em><\/strong><strong><em>\u00a0 \u00a0 N-FAQ = Not-FAQ;<br \/>\nYou can find my other tutorials in <a href=\"https:\/\/AasimNaseem.com\/wp-content\/uploads\/category\/my-tutorials\/\">My Tutorial<\/a> section or in its sub menu;\u00a0<\/em><\/strong><\/p>\n<p><img decoding=\"async\" src=\"http:\/\/s03.flagcounter.com\/count\/aw3\/bg=FFFFFF\/txt=000000\/border=FFFFFF\/columns=6\/maxflags=248\/viewers=0\/labels=1\/pageviews=1\/\" alt=\"free counters\" border=\"0\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello Everyone; Hows your developments going? Im sure you enjoy it as much as i do; Its really a fun; Today&#8217;s menu is related to iPhone Applications; We\u00a0often\u00a0notice that iPhone\/iPod\/iPad applications hangup or exit abnormally; It means the running application has been crashed due to some unknown reason; It really&#8230;<\/p>\n","protected":false},"author":1,"featured_media":4958,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[27,356,494,503,551,552,556,557,558,559,970,971],"class_list":["post-2199","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","tag-symbolicatecrash-a-v","tag-dsym-file","tag-how-to-decode-iphone-crash-report","tag-how-to-get-with-crash-reports","tag-iphoe","tag-iphon","tag-iphone-app-crash-report","tag-iphone-app-crash-reports","tag-iphone-crash-logs","tag-iphone-crash-report","tag-symbolicate","tag-symbolicatecrash"],"_links":{"self":[{"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/posts\/2199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/comments?post=2199"}],"version-history":[{"count":1,"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/posts\/2199\/revisions"}],"predecessor-version":[{"id":4267,"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/posts\/2199\/revisions\/4267"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/media\/4958"}],"wp:attachment":[{"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/media?parent=2199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/categories?post=2199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aasimnaseem.com\/blog\/wp-json\/wp\/v2\/tags?post=2199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}