[RN][iOS] Fix symbol not found _jump_fcontext with use_frameworks!#42229
Merged
hurali97 merged 1 commit into0.71-stablefrom Jan 15, 2024
Merged
[RN][iOS] Fix symbol not found _jump_fcontext with use_frameworks!#42229hurali97 merged 1 commit into0.71-stablefrom
hurali97 merged 1 commit into0.71-stablefrom
Conversation
hurali97
approved these changes
Jan 15, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary:
While developing Xcode 15, Apple reimplemented the linker.
In Xcode 15.0, the linker was making old iOS (< 15) crash when they were built using Xcode 15.
To fix that, we make Apple create new compiler flags (
-ld_classic) to have a backward compatible linker.In Xcode 15.1, Apple fixed that behavior, so the flags should not be required anymore.
But now, if we pass
-ld_classicto the linker and we have an app that is usinguse_framworks!, that app crashes at startup.This change remove the flags if the Xcode that is used is 15.1 or greater.
Note: The previous change added the flags to Hermes as well. I tested this fix in a configuration where Hermes has the flags and React Native does not, and it works. So we are removing the flags only from React Native.
Changelog:
[Internal] - Do not add the
-ld_classicflag if the app is built with Xcode 15.1 or greater.Test Plan:
Tested locally that a new app with
use_frameworks!is not crashing.Tested on Firebase Testlab that a new app built with Xcode 15.2 and running on iOS <15 is not crashing at startup.