-
Notifications
You must be signed in to change notification settings - Fork 24.5k
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
Unresolved dSYMs
path for hermes.xcframework on React Native 0.71.0
#35863
Comments
You're right, we don't ship dSYM for Hermes.
Can you clarify your setup? What's the requirement you're talking about. |
@cortinico I'm also facing the same problem while upgrading. I guess, what @gvarandas (Correct me if I'm wrong) means, that they cannot disable hermes in order to proceed. |
@cortinico we have a brownfield app that's being progressively ported over to React Native. Our iOS setup has multiple frameworks within the same workspace and our React Native configurations are all embedded into one of these frameworks (that isn't the main target), including the pods. graph LR;;
A[Main Target]-->B[React Native Framework];
A-->F
B-->C[libPods.a];
C-->F[hermes.xcframework]
A-->D[Framework #1];
A-->E[Framework #2];
Since enabling
We haven't been able to solve this issue and the workaround was to reference the framework in the main target, effectively duplicating it. It's not great but it works. 🤷♂️ |
For the record, this is what we've setup in our post_install do |installer|
PLIST_BUDDY_PATH = '/usr/libexec/PlistBuddy'
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if target.name == "hermes-engine"
installer.pods_project.files.each do |fileref|
if fileref.path.end_with? "hermes.xcframework"
hermes_plist_file = "#{fileref.real_path}/Info.plist"
# Patch Hermes to remove the debug symbols entry from the Info.plist (as it's not shipped with it)
# This might be removed once Hermes starts to ship with Debug symbols or we remove our
# direct dependency from the Main iOS target on "hermes.xcframework"
Open3.capture3(PLIST_BUDDY_PATH, '-c', 'Delete :AvailableLibraries:0:DebugSymbolsPath', hermes_plist_file)
Open3.capture3(PLIST_BUDDY_PATH, '-c', 'Delete :AvailableLibraries:1:DebugSymbolsPath', hermes_plist_file)
Open3.capture3(PLIST_BUDDY_PATH, '-c', 'Delete :AvailableLibraries:2:DebugSymbolsPath', hermes_plist_file)
end
end
end
end
end
end |
mmh... I wonder what would happen if we just remove that entry from the For the time being, could you try to use the hermes-engine framework from here: https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.71.0/react-native-artifacts-0.71.0-hermes-ios-debug.tar.gz This should download the debug version which may have the dSYMs. |
It seems to work fine, as that's what we're effectively doing in our |
Can you help with the post_install hook, that you’re using.
On Wed, 18 Jan 2023 at 11:27 PM, Guilherme Varandas < ***@***.***> wrote:
mmh... I wonder what would happen if we just remove that entry from the
hermes-engine.xcframework plist
It seems to work fine, as that's what we're effectively doing in our
Podfile post_install hook.
—
Reply to this email directly, view it on GitHub
<#35863 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACD4FMQ2JOOKAFHGDWZDF3TWTAVJRANCNFSM6AAAAAAT6GGTRE>
.
You are receiving this because you commented.Message ID:
***@***.***>
--
Thanks,
Ankit Choraria
|
Hey @gvarandas, thanks for posting this. I tried to integrating, but always get the outcome Did you also encounter this error? |
@zallanx did you declare the PLIST_BUDDY_PATH = '/usr/libexec/PlistBuddy' It seems like it's either missing or not being properly populate on your end. |
Having the same issue RN 0.71.3 but above solution did not work. |
I had to remove Hermes from BuildPhases -> Link Binary With Libraries |
Can I ask if some of you have some time to set up a small repro for us? We would like to have this fixed, but so far we are not encountering the problem, so it's a little hard to verify if we are solving it properly. 😅 |
https://github.com/adbs1/35863 This is the result of manually upgrading from 0.70.6 to 0.71.5 Let me know if anyone else needs access to it. |
An update, the problem in my case was old references to hermes.xcframework in the project.pbx.proj file. There are no references to hermes in the project.pbx.proj file with any new build, nor in the upgrade diff I removed these lines and it now builds fine: 4909123929060FDB00E97F47 /* hermes.xcframework in Frameworks / = {isa = PBXBuildFile; fileRef = 4909123829060FDB00E97F47 / hermes.xcframework */; }; 4909123829060FDB00E97F47 /* hermes.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = hermes.xcframework; path = "Pods/hermes-engine/destroot/Library/Frameworks/universal/hermes.xcframework"; sourceTree = ""; }; 4909123929060FDB00E97F47 /* hermes.xcframework in Frameworks */, 4909123829060FDB00E97F47 /* hermes.xcframework */, |
😮 Well spotted @adbs1! Thank you for the update! |
I remove dsym from my infoplist and it worked but I don't know what would be future considerations to fix this problem :) |
Hermes is the new JavaScript engine in React Native which comes enabled in the version we upgraded to, 0.71. See https://reactnative.dev/docs/hermes Notice the hack in the `Podfile` from facebook/react-native#35863
Hermes is the new JavaScript engine in React Native which comes enabled in the version we upgraded to, 0.71. See https://reactnative.dev/docs/hermes Notice the hack in the `Podfile` from facebook/react-native#35863
This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 7 days. |
Any chance of getting ahold of this? |
Sorry for this issue. I'll try to have a look at it. |
Remove the hermes.xcframework from the XCode project file in an effort to address the following error during the archival process. ``` ❌ error: Missing path (/Users/davidcalhoun/Sites/a8c/gutenberg-mobile/ios-xcframework/Pods/hermes-engine/destroot/Library/Frameworks/universal/hermes.xcframework/ios-arm64_x86_64-simulator/dSYMs) from XCFramework 'hermes.xcframework' as defined by 'DebugSymbolsPath' in its `Info.plist` file (in target 'Gutenberg' from project 'XCFrameworkScaffold') ``` This approach was sourced from a related GitHub issue on the React Native repository. facebook/react-native#35863 (comment)
Hey,I am also facing the same issue. Any idea on how you solved it? |
@adbs1 which file has these lines? i cant find. |
Hi @react-native-bot I am facing same issue since a month and not a finite solution yet Can you please look into it ???? Mine has below set ups `➜ SampleRNApp git:(main) ✗ npx react-native info WARNING: You should run npx react-native@latest to ensure you're always using the most current version of the CLI. NPX has cached version (0.73.2) != current release (0.73.6) info Fetching system and libraries information... info React Native v0.73.6 is now available (your project is running on v0.73.2). |
@arunsa-hrbl I'm sorry that you feel that way. I asked for reproducer in several messages as we are not able to reproduce the issue internally and even by using the OSS pipelines, so there is something specific to the local setup. I tried several times to spin up applications with React Native 0.71, but they works well, and they builds. It's hard to help if I can't find the line that looks for the 'DebugSymbolsPath'. |
I too am facing the same issues as yourself, firstly with the @cipolleschi If I can help at all, I can bring my laptop to Meta's London offices. I been having these issues for a while now. |
@losh11 can you create a reproducer starting from this template? I appreciate your willingness to come to the office, but it is unfortunately not an option. I'd be more than happy to help you out if you can provide a way for me to reproduce the issue. |
@cipolleschi after doing a bunch of testing, I managed to find a fix. It's to do with cocoapods versioning being too old or cocoapods being installed with 2 or more different tools. On my end, completely uninstalling cocoapods (rubygem + homebrew), and installing the latest version with gem fixed the issue. |
Summary: Pull Request resolved: facebook#46472 Currently, we are building the Debug symbols (dSYM) for hermes dSYM but we are not shipping them with the xcframework. This is correct, because Debug symbols can increase the size of Hermes thus enalrging the iOS IPA and increasing the download time when installing pods. We distribute the dSYM separatedly, in case users needs to symbolicate Hermes stack traces. However the path to the dSYM still appears in the Info.plist of the universal XCFramework and this can cause issues when submitting an app to apple. This change should remove those lines from the universal framework. It fixes facebook#35863 ## Changelog [Internal] - Remove dSYM path from Info.plist Differential Revision: D62603425
Summary: Pull Request resolved: #46472 Currently, we are building the Debug symbols (dSYM) for hermes dSYM but we are not shipping them with the xcframework. This is correct, because Debug symbols can increase the size of Hermes thus enalrging the iOS IPA and increasing the download time when installing pods. We distribute the dSYM separatedly, in case users needs to symbolicate Hermes stack traces. However the path to the dSYM still appears in the Info.plist of the universal XCFramework and this can cause issues when submitting an app to apple. This change should remove those lines from the universal framework. It fixes #35863 ## Changelog [Internal] - Remove dSYM path from Info.plist Reviewed By: cortinico Differential Revision: D62603425 fbshipit-source-id: 038ec3d6b056a3d6f5585c8125d0430f56f11bb9
Summary: Pull Request resolved: #46472 Currently, we are building the Debug symbols (dSYM) for hermes dSYM but we are not shipping them with the xcframework. This is correct, because Debug symbols can increase the size of Hermes thus enalrging the iOS IPA and increasing the download time when installing pods. We distribute the dSYM separatedly, in case users needs to symbolicate Hermes stack traces. However the path to the dSYM still appears in the Info.plist of the universal XCFramework and this can cause issues when submitting an app to apple. This change should remove those lines from the universal framework. It fixes #35863 [Internal] - Remove dSYM path from Info.plist Reviewed By: cortinico Differential Revision: D62603425 fbshipit-source-id: 038ec3d6b056a3d6f5585c8125d0430f56f11bb9
So do i just need to upgrade RN to fix this now? I tried removing cocoapods from brew and started using gem. No luck. |
@janst44 yes, please. Update and this should be solved. |
Summary: Pull Request resolved: #46472 Currently, we are building the Debug symbols (dSYM) for hermes dSYM but we are not shipping them with the xcframework. This is correct, because Debug symbols can increase the size of Hermes thus enalrging the iOS IPA and increasing the download time when installing pods. We distribute the dSYM separatedly, in case users needs to symbolicate Hermes stack traces. However the path to the dSYM still appears in the Info.plist of the universal XCFramework and this can cause issues when submitting an app to apple. This change should remove those lines from the universal framework. It fixes #35863 [Internal] - Remove dSYM path from Info.plist Reviewed By: cortinico Differential Revision: D62603425 fbshipit-source-id: 038ec3d6b056a3d6f5585c8125d0430f56f11bb9
My solution for RN 0.76.3 is here. |
I'm running into this issue with a fresh install of RN 0.76.5, and the podfile updates suggested here #35863 (comment) have not resolved it. I'm getting this error when I distribute to App Store Connect
|
Apparently, there is an issue with this and Xcode 16: https://forums.developer.apple.com/forums/thread/763731?page=4 |
For what it's worth, using Xcode 16.2 and a fresh install of RN 0.76.5, it hasn't stopped me getting the iOS app into Test Flight even with the warning. |
Summary: Pull Request resolved: #46472 Currently, we are building the Debug symbols (dSYM) for hermes dSYM but we are not shipping them with the xcframework. This is correct, because Debug symbols can increase the size of Hermes thus enalrging the iOS IPA and increasing the download time when installing pods. We distribute the dSYM separatedly, in case users needs to symbolicate Hermes stack traces. However the path to the dSYM still appears in the Info.plist of the universal XCFramework and this can cause issues when submitting an app to apple. This change should remove those lines from the universal framework. It fixes #35863 [Internal] - Remove dSYM path from Info.plist Reviewed By: cortinico Differential Revision: D62603425 fbshipit-source-id: 038ec3d6b056a3d6f5585c8125d0430f56f11bb9
Yeah, that's just a warning. Apple will not block the app and will not reject the submission for this issue. |
Locking this as we are tracking the issue in #49059 |
Summary: Pull Request resolved: #46472 Currently, we are building the Debug symbols (dSYM) for hermes dSYM but we are not shipping them with the xcframework. This is correct, because Debug symbols can increase the size of Hermes thus enalrging the iOS IPA and increasing the download time when installing pods. We distribute the dSYM separatedly, in case users needs to symbolicate Hermes stack traces. However the path to the dSYM still appears in the Info.plist of the universal XCFramework and this can cause issues when submitting an app to apple. This change should remove those lines from the universal framework. It fixes #35863 [Internal] - Remove dSYM path from Info.plist Reviewed By: cortinico Differential Revision: D62603425 fbshipit-source-id: 038ec3d6b056a3d6f5585c8125d0430f56f11bb9
New Version
0.71.0
Old Version
0.70.6
Build Target(s)
iOS simulator in debug flavor (but the issue will likely happen on any iOS build flavor).
Output of
react-native info
Issue and Reproduction Steps
Due to a specific requirement, our brownfield project needs to depend on
hermes.xcframework
directly in order to resolve the Hermes runtime path when building the app for an iOS target.After upgrading to
0.71.0
, we've noticed that builds started to fail with a unresolved path error:The path reference seems to be generated by the following Plist file:
The folder, however, doesn't exist, as debug symbols don't seem to be shipped with the prebundled version of Hermes.
I'm wondering if the
DebugSymbolsPath
plist entry should be suppressed if debug symbols aren't being generated, as the path doesn't actually exists and just providing an empty folder seems to suffice, signalling that the reference isn't used beyond validating it's existence.The text was updated successfully, but these errors were encountered: