{"id":1146,"date":"2019-08-22T09:19:06","date_gmt":"2019-08-22T09:19:06","guid":{"rendered":"http:\/\/www.netexl.com\/blog\/?p=1146"},"modified":"2026-04-02T09:32:22","modified_gmt":"2026-04-02T09:32:22","slug":"symbolicate-ios-app-analytics-data","status":"publish","type":"post","link":"https:\/\/www.netexl.com\/blog\/symbolicate-ios-app-analytics-data\/","title":{"rendered":"Symbolicate iOS App Analytics Data"},"content":{"rendered":"<p>When a crash happens in an app, and we get un-symbolicated logs from a remote user, we need to first symbolicate it in order to find out exact reason of the crash.<\/p>\n<p>We need following items in in order to symbolicate a crash log<\/p>\n<ol>\n<li>Log file &#8211; This file can be taken from the real device on which app crashed.<\/li>\n<li>.app file &#8211; Download archive file (.ipa) to a folder and rename it to .zip. Unzip content and copy .app file.<\/li>\n<li>dSYM File &#8211; This file can be retreived from the app ipa file. Open XCode -&gt; Window -&gt; Organizer -&gt; Find the Archive file, right click on the Archive file and click &#8220;Show in Finder&#8221; which will open .xcarchive file in finder. Right click on .xcarchive and click &#8220;Show Package Contents&#8221;. Go to dSYMs folder\u00a0and copy dSYM file for the archive.<\/li>\n<\/ol>\n<p>Create a new folder on your mac and copy all three above files to this folder. We also need to copy\u00a0&#8220;symbolicatecrash&#8221; tool to this folder. In order to find\u00a0&#8220;symbolicatecrash&#8221; tool go to Finder -&gt; Applications -&gt; Right Click XCode and click &#8220;Show Package Contents&#8221; -&gt; Go to &#8220;Contents&#8221; folder then go to SharedFrameworks -&gt;\u00a0DVTFoundation.framework -&gt;\u00a0 Versions\u00a0-&gt; A\u00a0-&gt; Resources -&gt; Copy\u00a0&#8220;symbolicatecrash&#8221; tool and paste in your folder. Once we have all four files in the folder opne Terminal console and go to this folder in the console. Run following command<\/p>\n<pre class=\"lang:default decode:true\">export DEVELOPER_DIR=\"\/Applications\/Xcode.app\/Contents\/Developer\"\r\n\r\n.\/symbolicatecrash -v MyAppLog.crash MyApp.app.dSYM<\/pre>\n<p>MyAppLog.crash is our app\u00a0crash log file, MyApp.app.dSYM is the dSYM file.<\/p>\n<p><a href=\"https:\/\/developer.apple.com\/library\/archive\/technotes\/tn2151\/_index.html#\/\/apple_ref\/doc\/uid\/DTS40008184-CH1-INTRODUCTION\" target=\"_blank\">Read further for more details<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When a crash happens in an app, and we get un-symbolicated logs from a remote user, we need to first symbolicate it in order to find out exact reason of the crash. We need following items in in order to symbolicate a crash log Log file &#8211; This file can be taken from the real device on which app crashed. .app file &#8211; Download archive file (.ipa) to a folder and rename it to .zip. Unzip content and copy .app file. dSYM File &#8211; This file can be retreived from the app ipa file. Open XCode -&gt; Window -&gt; Organizer -&gt; Find the Archive file, right click on the Archive file and click &#8220;Show in Finder&#8221; which will open .xcarchive file in finder. Right click on .xcarchive and click &#8220;Show Package Contents&#8221;. Go to dSYMs folder\u00a0and copy dSYM file for the archive. Create a new folder on your mac and[&#8230;]<\/p>\n","protected":false},"author":5,"featured_media":1540,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,27],"tags":[],"class_list":["post-1146","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to","category-ios"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/posts\/1146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/comments?post=1146"}],"version-history":[{"count":5,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/posts\/1146\/revisions"}],"predecessor-version":[{"id":1161,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/posts\/1146\/revisions\/1161"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/media\/1540"}],"wp:attachment":[{"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/media?parent=1146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/categories?post=1146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.netexl.com\/blog\/wp-json\/wp\/v2\/tags?post=1146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}