[MOD-2254] iOS: Upload crash reports to crash server
GitHub Issue | n/a |
---|---|
Type | New Feature |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2016-05-19T08:58:17.000+0000 |
Affected Version/s | n/a |
Fix Version/s | ACA 1.0.0 |
Components | ACA |
Labels | n/a |
Reporter | Chee Kiat Ng |
Assignee | Unknown |
Created | 2016-02-03T05:20:31.000+0000 |
Updated | 2018-08-06T17:49:19.000+0000 |
Description
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.
Attachments
File | Date | Size |
---|---|---|
ios-unsymbolicated-sample-json.json | 2016-02-23T06:45:56.000+0000 | 38952 |
nodeServer.js | 2016-05-19T08:58:04.000+0000 | 776 |
-[~iwhitfield] Attached a sample crash report json [^test_crash_report_ios.json]. Note that the crash stack is unformatted. -
[~ssombhatla] Am I correct that this stack trace does need decrypting with dSYM?
[~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]
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] ^
[~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.
[~cng] is this still for version 6.0.0 or will this be pulled in for 5.4.0? CC [~iwhitfield]
[~pkclark] 5.4.0. and 5.4.0 is scheduled to release on 13 June 2016.
Changed event to
crash.native
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.
Cleaning up older fixed issues. If this issue should not have been closed as fixed, please reopen.