microsoft / appcenter-sdk-react-native

Development repository for the App Center SDK for React Native

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Source map cannot fully obfuscate JS stack trace on IOS

puzpuz opened this issue · comments

Device: iPhone 11pro
appcenter sdk version: 4.0.2

I am currently integrating App Center into my IOS React native application.
I have done the steps that mentioned in the documentation here for ios symbolication issue, and already generate and put source map in one zip with the dSym generated.

The crash report is readable, but not entirely.
Here is some comparison between the debug stack trace, and App Center stack trace
I intentionally generating TypeError in my code to simulate this

Simulator Screen Shot - iPhone 8 - 2021-03-23 at 09 39 51
Screen Shot 2021-03-23 at 9 50 32 AM

Simulator Screen Shot - iPhone 8 - 2021-03-23 at 09 33 25
Screen Shot 2021-03-23 at 9 35 02 AM

Hi, @puzpuz ! Thanks for getting in touch with us!
Could you please share a code snippet of how you crash the app?

const onJSCrash = () => { const test = {}; test.should.crash; };

Hi thank you for your response, sorry I forget to put the snippet,
This is the snippet to generate the first error, I make a button that trigger this function on click.

The second error basically same, I just put it elsewhere to test out errors in different files and positions.

Thanks for the details. I need some time to check it.

@puzpuz Could you please share the output of react-native info and the package.json dependencies and devDependencies file?
Are you creating the bundle with

react-native bundle --entry-file index.ios.js --platform ios --dev false --reset-cache --bundle-output unused.jsbundle --sourcemap-output index.ios.map

?

RN Info:

System:
OS: macOS 11.2.1
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 59.79 MB / 16.00 GB
Shell: 5.8 - /bin/zsh
Binaries:
Node: 14.15.5 - /usr/local/bin/node
Yarn: 1.22.10 - /usr/local/bin/yarn
npm: 6.14.11 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.10.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 14.4, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
Android SDK: Not Found
IDEs:
Android Studio: 4.1 AI-201.8743.12.41.7042882
Xcode: 12.4/12D4e - /usr/bin/xcodebuild
Languages:
Java: Not Found
Python: 2.7.16 - /usr/bin/python
npmPackages:
@react-native-community/cli: Not Found
react: 16.11.0 => 16.11.0
react-native: 0.62.2 => 0.62.2
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found

NPM Packages:

"dependencies": {
    "@react-native-community/async-storage": "^1.11.0",
    "@react-native-community/blur": "^3.6.0",
    "@react-native-community/cameraroll": "^4.0.0",
    "@react-native-community/datetimepicker": "^3.0.8",
    "@react-native-community/hooks": "^2.5.1",
    "@react-native-community/masked-view": "^0.1.10",
    "@react-native-community/netinfo": "^6.0.0",
    "@react-native-community/picker": "^1.6.5",
    "@react-native-community/push-notification-ios": "^1.8.0",
    "@react-navigation/bottom-tabs": "^5.5.2",
    "@react-navigation/native": "^5.5.0",
    "@react-navigation/stack": "^5.4.1",
    "add": "^2.0.6",
    "appcenter": "4.0.2",
    "appcenter-analytics": "4.0.2",
    "appcenter-crashes": "4.0.2",
    "axios": "^0.19.2",
    "immutability-helper": "^3.1.1",
    "install": "^0.13.0",
    "js-sha1": "^0.6.0",
    "lodash": "^4.17.15",
    "lottie-ios": "3.1.8",
    "lottie-react-native": "^3.5.0",
    "moment": "^2.26.0",
    "moment-lunar": "0.0.4",
    "npm": "^6.14.10",
    "numeral": "^2.0.6",
    "qs": "^6.9.4",
    "react": "16.11.0",
    "react-hook-form": "6.14.1",
    "react-native": "0.62.2",
    "react-native-24h-timepicker": "^1.1.0",
    "react-native-animatable": "^1.3.3",
    "react-native-camera": "^3.41.0",
    "react-native-charts-wrapper": "^0.5.7",
    "react-native-cli": "^2.0.1",
    "react-native-config": "^1.3.3",
    "react-native-device-info": "^7.3.1",
    "react-native-draggable": "^3.3.0",
    "react-native-event-listeners": "^1.0.7",
    "react-native-fast-image": "^8.1.5",
    "react-native-fix-image": "^2.0.1",
    "react-native-fs": "^2.16.6",
    "react-native-gesture-handler": "1.6.1",
    "react-native-image-picker": "2.3.4",
    "react-native-inappbrowser-reborn": "^3.4.0",
    "react-native-keep-awake": "^4.0.0",
    "react-native-keyboard-aware-scroll-view": "^0.9.1",
    "react-native-keyboard-manager": "^4.0.13-17",
    "react-native-linear-gradient": "^2.5.6",
    "react-native-localize": "^2.0.1",
    "react-native-marquee-ab": "^1.2.6",
    "react-native-modal": "^11.5.6",
    "react-native-orientation-locker": "1.1.8",
    "react-native-picker-select": "^7.0.0",
    "react-native-push-notification": "5.1.0",
    "react-native-qrcode-svg": "^6.0.6",
    "react-native-radial-gradient": "^1.0.7",
    "react-native-reanimated": "^1.9.0",
    "react-native-safe-area-context": "^3.0.2",
    "react-native-screens": "^2.8.0",
    "react-native-search-bar": "^3.5.1",
    "react-native-share": "^3.3.3",
    "react-native-simple-toast": "^1.1.2",
    "react-native-static-server": "^0.5.0",
    "react-native-svg": "^12.1.0",
    "react-native-svg-transformer": "^0.14.3",
    "react-native-swipe-modal-up-down": "^1.0.9",
    "react-native-swiper": "^1.6.0",
    "react-native-tab-view": "2.14.4",
    "react-native-table-component": "^1.2.1",
    "react-native-view-shot": "^3.1.2",
    "react-native-webview": "^10.3.2",
    "react-native-wechat-lib": "^1.1.23",
    "react-native-zip-archive": "^5.0.6",
    "reactotron-react-native": "^5.0.0",
    "recyclerlistview": "^3.0.0",
    "rn-fetch-blob": "~0.11.2",
    "style-component": "^0.0.1",
    "tslint": "^6.1.2",
    "typescript": "^3.9.7",
    "yarn": "^1.22.10"
},
"devDependencies": {
    "@babel/core": "^7.6.2",
    "@babel/runtime": "^7.6.2",
    "@react-native-community/eslint-config": "^2.0.0",
    "babel-jest": "^24.9.0",
    "eslint": "^7.5.0",
    "eslint-plugin-prettier": "^3.1.4",
    "gulp": "^4.0.2",
    "gulp-help-four": "^0.2.3",
    "gulp-template": "^5.0.0",
    "jest": "^24.9.0",
    "metro-react-native-babel-preset": "^0.58.0",
    "pre-commit": "^1.2.2",
    "react-test-renderer": "16.11.0",
    "string-format": "^2.0.0",
    "yargs": "^16.1.1"
},

So sorry for not replying for a long time. Here is the data you ask. Hope it helps

This was in my debug release mode on my test device. I was generating sourcemap with that code, but JS bundle is automatically uploaded to my test device on run.

As far as I know, the JSBundle and the source map will not change, as long as we didn't change a single line in the code?

@russelarms Hi could you help me?

Hey @puzpuz, sorry for such a delay. We confirmed the bug, filed the Work Item on the board and that is going to be addressed.
Folks who'll work on this issue will update you upon progress.

commented

Is there something new with this? Not sure if it is related, but I cannot get any idea where the bug is, because there is not reporting on the line/column of the obfuscated JS (I would then be able to understand where the problem is):

image

Is this normal?

Hello @afilp and thank you for getting in touch with us!
Symbolication of the stack trace is going on the backend side.
Please, open support ticket with your question on the App Center portal.

Hello @afilp.
I am from App Center Diagnostics team.
Could you please let us know if you have filled a support ticket?
We would need more details to investigate this issue.

This issue doesn't related to App Center SDK so I'm going to close it but feel free to reopen it if you will have additional questions.