react-собственная исходная карта пакета hermes с firebase crashlytics

# #android #firebase #react-native #source-maps #react-native-hermes

Вопрос:

Я хочу прочитать отчеты crashlytics из приложения react-native, но оно вообще не читается в консоли firebase. Пример сбоя с Android выглядит так:

 Non-fatal Exception: io.invertase.firebase.crashlytics.UnhandledPromiseRejection
Invalid RegExp pattern: Parenthesized expression not closed
.RegExp ((native):0:0)
.anonymous (address at index.android.bundle:1:2065589)
.ue (address at index.android.bundle:1:2070284)
.ce (address at index.android.bundle:1:2069288)
.Be (address at index.android.bundle:1:2080135)
 

У меня включен hermes, и мой подписанный apk-файл сборки генерируется index.android.bundle в предварительно скомпилированном формате ( build/generated/assets/react/appName/release/index.android.bundle ) с исходным файлом карты build/sourcemaps/react/appName/release/index.android.bundle.map . Я пытался прочитать эти файлы с помощью пакета npm source-map-explorer , но, к сожалению, это всегда приводит к ошибке ниже:

 source-map-explorer index.android.bundle index.android.bundle.map 
index.android.bundle
  Your source map refers to generated column 165922 on line 1, but the source only contains 165920 column(s) on that line.
  Check that you are using the correct source map.
 
  1. Могу ли я загрузить исходную карту в firebase, чтобы сделать ошибки читаемыми в консоли firebase?
  2. Как я могу прочитать файл пакета hermes с помощью карты источников?

Комментарии:

1. Как отлаживать на ios??

Ответ №1:

Вам просто нужно использовать

 npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map < stacktrace.txt
 

поместите свою дорожку стека в stacktrack.txt. (уберите 0:0, чтобы это сработало)

для получения дополнительной информации, пожалуйста, перейдите по адресу https://reactnative.dev/docs/next/symbolication

Комментарии:

1. Я думаю, что нет никакого способа заставить это автоматически работать в консоли Firebase, хотя?