[MOD-2254] iOS: Upload crash reports to crash server

GitHub Issuen/a
TypeNew Feature
Resolution Date2016-05-19T08:58:17.000+0000
Affected Version/sn/a
Fix Version/sACA 1.0.0
ReporterChee Kiat Ng


Using KSCrash lib, we should replace our crittercism module and upload crash reports as analytic events to our own PEM crash server. here's a quick idea of what the JSON should look like:
id          - random event id
sid         - session of the app (if you can get it, otherwise no worries)
event       - "crash.native"
ts          - timestamp of the event
data.stack  - this seems better than just "value"
mid         - the device id, if you can get it
aguid       - the app guid
platform    - the platform of the app
app_version - the version of the app
and some references: https://github.com/appcelerator/nodeable/blob/master/common-test/src/main/resources/crash_event.json https://github.com/appcelerator/crash-analytics-server/blob/master/lib/consumer.js#L39-L55 This is .crash that is uploaded, and not the dSYM file. A separate ticket will be created on how to symbolicate the crash file. But for this case, we can deal with allowing the developer to download the relevant crash file from our dashboard, and symbolicate on their local machine.




  1. Srikanth Sombhatla 2016-02-22 -[~iwhitfield] Attached a sample crash report json [^test_crash_report_ios.json]. Note that the crash stack is unformatted. -
  2. Isaac Whitfield 2016-02-22 [~ssombhatla] Am I correct that this stack trace does need decrypting with dSYM?
  3. Srikanth Sombhatla 2016-02-23 [~iwhitfield] The sample stack trace I supplied is from debug build. So the symbols are not stripped. But the final stack trace requires symbolicating with dSYM file on the developer end. cc [~cng]
  4. Chee Kiat Ng 2016-02-23 Yes let me explain this. This is what I envision as a developer standpoint. 1. I log into appcelerator dashboard 2. I check out the crash analytics page (replace crittercism) 3. I can see the stats (number of crashes per month on android, on ios etc) 4. I can choose to see a specific crash. If it's ios, it allows me to download the file as well (.crash file) 5. I take that file and drag into my Xcode in my local machine, it will de-symbolicate automatically and show me the stack trace. (this can be done via command line too) So ya. all the crash server gets is a .crash file coupled with some json parameters if there's a native crash. [~ssombhatla] you should really consider giving [~iwhitfield] the stack trace from release build since that's what we are using when this is deployed. [~pkclark] ^
  5. Srikanth Sombhatla 2016-02-23 [~iwhitfield] attached [^ios-unsymbolicated-sample-json.json]. This is without symbols from a release build running on device. Also note that the iOS report sizes will be on average of ~40KB.
  6. Patrick Clark 2016-02-23 [~cng] is this still for version 6.0.0 or will this be pulled in for 5.4.0? CC [~iwhitfield]
  7. Chee Kiat Ng 2016-02-24 [~pkclark] 5.4.0. and 5.4.0 is scheduled to release on 13 June 2016.
  8. Srikanth Sombhatla 2016-02-29 Changed event to crash.native
  9. Srikanth Sombhatla 2016-04-27 iOS PR: https://github.com/appcelerator/aps_sdk/pull/291 This is merged to a temporary working branch 3_0_X_sriks. Once finalised this branch can be merged to master.
  10. Eric Merriman 2018-08-06 Cleaning up older fixed issues. If this issue should not have been closed as fixed, please reopen.

JSON Source