mobile icon indicating copy to clipboard operation
mobile copied to clipboard

Start uploading debug symbols from build to GPC for better native crash support

Open tomasMizera opened this issue 3 years ago • 1 comments

It seems that if we would start uploading debug symbols with AABs, we could get much better stacktraces for crashes than we have right now.

Our stats now just points to a library where we got the crash, example:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> uk.co.lutraconsulting <<<

backtrace:
  #00  pc 0000000000207a60  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libQt5Core_arm64-v8a.so (QObject::thread() const)
  #00  pc 0000000001074f44  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 00000000021ae724  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 000000000209c41c  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 000000000209fd04  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 00000000017327c4  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 000000000177e1b4  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 00000000017638a8  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 0000000001764e34  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 000000000177cba8  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 00000000017617f0  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 0000000001c00050  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 000000000176ac3c  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 00000000017578d0  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 000000000166fac4  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 0000000001670a94  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 0000000001670ae8  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 0000000001670c58  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libInput_arm64-v8a.so
  #00  pc 0000000000002c04  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libQt5Concurrent_arm64-v8a.so (QtConcurrent::ThreadEngineBase::run()+228)
  #00  pc 00000000000c8b54  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libQt5Core_arm64-v8a.so
  #00  pc 00000000000c66f0  /data/app/~~69zxlEVXJ1jS9GmIMsbqrA==/uk.co.lutraconsulting-DYHU10LUUmMTTugw-HmIIQ==/lib/arm64/libQt5Core_arm64-v8a.so
  #00  pc 00000000000da278  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
  #00  pc 000000000007a448  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

Android doc's states that we could even get function names, files, and line numbers

See how-to: https://developer.android.com/studio/build/shrink-code#strip-native-libraries

See https://github.com/realm/realm-java/issues/6773 (someone saying their debug symbols are not uploaded and they ended up with similar stacktraces to what we have right now).

If we do this, we could upload the debug symbols automatically when uploading AAB build to GPC (once we do #1791 ) via https://developers.google.com/android-publisher/api-ref/rest/v3/edits.deobfuscationfiles/upload

tomasMizera avatar Jun 30 '22 11:06 tomasMizera

https://developernote.com/2021/12/uploading-debug-symbols-to-google-play-store/

tomasMizera avatar Jul 26 '22 11:07 tomasMizera

related to https://github.com/MerginMaps/input/issues/1074

PeterPetrik avatar Mar 14 '23 13:03 PeterPetrik

image

tomasMizera avatar Mar 31 '23 07:03 tomasMizera

Native debug symbols are not uploaded, based on Google Play

tomasMizera avatar Mar 31 '23 07:03 tomasMizera