-
Notifications
You must be signed in to change notification settings - Fork 24.4k
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
How to symbolicate Hermes crash stack symbol? #38176
Comments
|
For context, those artifacts are only for Android debug symbols. They've been removed from 0.71 as they're distributed on Maven Central alongside the React Native artifacts. As for iOS, I'm unsure where the |
hum... I don't think we are generating dSYM anymore, unfortunately. Probably due to some bug or unwanted changes. |
@cipolleschi nope, looks like a bug to me. |
Hi @cortinico @cipolleschi @dmytrorykun Thanks for your reply. |
I understand that it's difficult to debug the issue without being able to reproduce it. However, at least I would like to ask if there are any ideas regarding the crash triggered by +[RCTCxxBridge runRunLoop]. For example, should I fork a copy of the code and add some logs in this area? (But I think this may impact performance, so it may not be a good idea.) |
Can you reproduce the crash locally in a Debug version of the app? Or are these crashes happening only in production? Some logs would help: for example, the app is calling something in Javascript that is then forwarded to native, as shown by lines 25 and 27 ( |
Hi @cipolleschi Thanks for your reply. It's an issue that occurs in the production environment and cannot be reproduced locally. Before enabling Hermes, there was another issue in the production environment, but the quantity was only half of this one. After enabling Hermes, the previous issue disappeared, but this new issue appeared, with a quantity twice as much as before. I would like to know if React Native has any commonly used or general solutions for this type of crash. Although the crash appears in the React Native stack trace, it may not indicate the specific cause, and it is possible that the issue is not related to React Native itself, but rather to the caller's code. |
Yeah, I understand. If a crash is happening with both engines, it makes me think that it is either something in the app or in React Native. But then, here those symbols are stripped. So, one thing you can do while we work to restore them is to:
This should build the framework in the I really hope this helps. |
Hi @cipolleschi Thanks for your help. I encountered some issues when using the command.
|
I think you are running the command from the wrong folder:
So... if you run Warning: it will take some time to build hermes, unfortunately... 😓 |
@iCodeWoods I make a test today and I can confirm that running
Creates also the dSYMs: I'll be on holiday the next week, and back the week after. Once back, I'll have a look at how to create the archive and ship the symbols! |
Hey there, starting from 0.73, we are publishing the dSYMs for both Hermes in Release and Hermes in Debug. In any case, they follow the format (replace the
We don't have dSYMs for versions lower than 0.72, unfortunately. |
@cipolleschi are the hermes dsyms for 0.73.1 missing or not intended to be published? |
Yes they have been published here: https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.73.1 Probably we forgot to update the release notes |
@cipolleschi thats really weird. if you go to https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/ it doesn't show that folder... |
Yeah.. that's weird. Perhaps sonatype is having issues in synching the indexes. That per of the infra is a bit out of our control... 🤷 |
I believe things were down over the NYE. Everything should be back to normal now 👍 |
Hey @iCodeWoods , were you able to resolve or find the root cause of this issue ? We have a similar crash that got reported on our Instabug.
cc: @cipolleschi |
@dgrover-spotnana unfortunately, we don't have dSYMs for React Native 0.70 and that version is not supported anymore, so it's not possible to symbolicate Hermes symbols for that version. |
@cipolleschi Hi there. I've tried following the initial instructions to create the dSYMs, but then I got the same result where the script was unable to find The thing with the next instruction is that The way it looks to me: the What am I doing wrong here? React Native 0.71.6 (brownfield project) |
@KajiTetsushi 0.71 is not supported anymore. I strongly advise for you to migrate to a supported one, but skip 0.72 as it will go out of support tomorrow. For newer versions, we add the dSYM links in the github Release, so you don't have to build it yourself. The scripts are not creating any CMakeLists file, actually.
|
Is step 1 something |
step 1 and 2 are done by this script. Just comment out these lines: async function main(isInCI) {
+ // if (!shouldBuildHermesFromSource(isInCI)) {
+ // copyPodSpec();
+ // return;
+ // }
downloadHermesSourceTarball();
expandHermesSourceTarball();
copyPodSpec();
copyBuildScripts();
if (shouldUsePrebuiltHermesC('macos')) {
console.log('[Hermes] Using pre-built HermesC');
configureMakeForPrebuiltHermesC();
}
}
then you can run it as And it will download hermes in the right folder and it will also copy all the required files from |
@cipolleschi That did something! Awesome! I ran However, it still errors out at the end looking for Is there still a step missing? Here's the build log from running
I noticed there are several EDIT: I tried running the same command again. No dice.
|
Yeah, I'm seeing the same error. That library is needed to build hermes and to build the dsyms. Can I ask what's blocking you from migrating to a supported version? |
@cipolleschi I'm working with a large monolithic mobile app project with dependencies that would have compatibility issues with React Native 0.73+ if we don't upgrade them together (i.e. React Native Reanimated 2.14, React Navigation 4). My colleagues and I did start work on migration to keep up with the times. But a quarter prior, we were pulled into firefighting mode, so the migration was stalled. I just so happened to stumble upon this issue because it seems to offer pointers to help us look more closely at the problems we are currently trying to fix. I was under the impression that the instructions would have helped move the needle closer. Specifically, we're looking at a recent app launch performance issue, which was detected since earlier this year (we don't know what caused it, we're wild guessing here). One of the final places to look into for bottlenecks is in native code as the app launches. We found dSYMs for most of our 3rd-party SDKs — that helped us identify slow functions while profiling the app, but not for Hermes — without the dSYM for it, it's effectively a black box. |
I understand. Unfortunately, I don't believe that, even if we find something slow in Hermes, we can actually do something about it in this specific case, especially for a version as old as 0.71. If that's the last thing on your plates, than upgrading will likely mitigate your issues as the team has landed several perf improvements in Hermes in newer versions. |
When I upload the app to appstoreconnect, I faced this error. Also when I run the app in debug mode, I encountered "App empty dSYM file detected, dSYM was created with an executable with no debug info." I understand that these issues are related with hermes.framework. But I have no idea to fix this issue. |
@soft7store version 0.71 is deprecated. Please move to a newer version: we already solved these problem for all the versions starting from 0.72 as we build the dSYM there. |
Are you talking about react native version? |
I used react-native 0.73.6 |
You can download the dSYMs from here: https://github.com/facebook/react-native/releases/tag/v0.73.6 |
Can you explain a bit why I need to download this file and use? I can install npm with version on terminal. |
Description
As the document states, there are Hermes symbols in the assets, but only certain versions have them (e.g., 0.70.7), while others don't (e.g., 0.71.7).
How can I obtain the Hermes dSYM for version 0.71.7?
Below is the crash report.
React Native Version
0.71.7
Output of
npx react-native info
Steps to reproduce
Check https://github.com/facebook/react-native/releases?page=2 and there is no hermes artifacts in v0.71.7
Snack, code example, screenshot, or link to a repository
The text was updated successfully, but these errors were encountered: