Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[iOS] Can't produce sourcemap with Hermes #151

Open
taltrui opened this issue Oct 28, 2021 · 3 comments
Open

[iOS] Can't produce sourcemap with Hermes #151

taltrui opened this issue Oct 28, 2021 · 3 comments

Comments

@taltrui
Copy link

taltrui commented Oct 28, 2021

Hi! I can't produce a working sourcemap when building in iOS with Hermes activated.

I've created an issue in react native: facebook/react-native#32497 but I would like to know if someone from Rollbar has some insight in this or a workaround (or something I'm missing).

Thank you!

@waltjones
Copy link
Contributor

Can you post what steps you're following to build your source map? Also, what is the error or problem you're seeing with the source map?

@taltrui
Copy link
Author

taltrui commented Oct 28, 2021

Hi @waltjones ! Of course:

The sourcemap is generated in an XCode build phase, I've tried a few things:

Without Hermes:

export NODE_BINARY=node
export PROJECT_ROOT="${PROJECT_DIR}/../"
export EXTRA_PACKAGER_ARGS="--sourcemap-output sourcemap.ios.js --entry-file index.js --sourcemap-sources-root ./"

../../../node_modules/react-native/scripts/react-native-xcode.sh index.js

And then making the app crash yields this in Rollbar
image

If I activate Hermes and use the same method as above:
image

If I change the script to this:

export NODE_BINARY=node
export PROJECT_ROOT="${PROJECT_DIR}/../"
export SOURCEMAP_FILE="${PROJECT_DIR}/../sourcemap.ios.js"
export EXTRA_PACKAGER_ARGS="--entry-file index.js --sourcemap-sources-root ./"

../../../node_modules/react-native/scripts/react-native-xcode.sh index.js

Then the issue I created in react-native repo happens and no sourcemap is created.

@taltrui
Copy link
Author

taltrui commented Oct 29, 2021

Hi @waltjones, I've tried creating the sourcemap manually for Hermes, like this:

yarn react-native bundle --platform ios --dev false --entry-file index.js --bundle-output main.jsbundle --sourcemap-output main.jsbundle.map --sourcemap-sources-root ./

ios/Pods/hermes-engine/destroot/bin/hermesc -O --emit-binary -output-source-map -out=main.jsbundle.hbc main.jsbundle

node ../../node_modules/react-native/scripts/compose-source-maps.js main.jsbundle.map main.jsbundle.hbc.map -o sourcemap.ios.js

Sourcemap is successfully created, and it seems that Rollbar can make "real" paths, but they are wrong:

image

As you can see in the image, the function name that makes the crash is indeed "crash", but the path "...src/app/screens/Accounts/components/SOSRecharge/index.js" is not the correct one. The correct one would be "...src/app/screens/Auth/flavours/common/index.js".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants