[core] reference folly build flags from folly-flags.cmake (#21009)# Why follow up https://github.com/expo/expo/pull/20470#discussion_r1048789381 close ENG-7083 # How reference folly build
[core] reference folly build flags from folly-flags.cmake (#21009)# Why follow up https://github.com/expo/expo/pull/20470#discussion_r1048789381 close ENG-7083 # How reference folly build flags from `folly-flags.cmake` shipped in react-native 0.71 # Test Plan ci passed
show more ...
[1/3] upgrade react-native 0.71 (#20799)# Why upgrade react-native 0.71 for sdk 48 close ENG-7192 # How - update package versions - `react: 18.1.0 -> 18.2.0` - `react-native 0.70.5
[1/3] upgrade react-native 0.71 (#20799)# Why upgrade react-native 0.71 for sdk 48 close ENG-7192 # How - update package versions - `react: 18.1.0 -> 18.2.0` - `react-native 0.70.5 -> 0.71.0` - `react-dom: 18.1.0 -> 18.2.0` - `react-test-renderer: 18.1.0 -> 18.2.0` - `react-native-web: 0.18.9 -> 0.18.10` - `babel-plugin-react-native-web: 0.18.9 -> 0.18.10` - `metro-react-native-babel-preset: 0.72.3 -> 0.73.5` - upgrade three project templates based on [upgrade-helper](https://react-native-community.github.io/upgrade-helper/?from=0.70.6&to=0.71.0) - bare-expo - expo-template-bare-minimum - fabric-tester (this is based on `npx expo prebuild --clean --no-install --template /path/to/expo-template-bare-minimum.tgz`) so it includes some inconsistent changes - [@expo/config-plugins]: support 0.71 template transform. the `namespace` in build.gradle and the files in `release` build variants - [fbjni] upgrade 0.3.0 to align 0.71 (also ndk version) - [expo-updates] move the `EX_UPDATES_NATIVE_DEBUG` `bundleInDebug` setup to templates. unfortunately, because RNGP setups the task dependencies pretty early. the original setup in expo-updates build.gradle is too late. note that the change doesn't reference any files from templates to expo-updates package. somehow it's not tightly coupled. - [native-tests / expo-modules-test-core / expo-modules-autolinking] fix ios unit test build error because jsc now in a dedicated podspec. in theory, the ios native unit test could now run on hermes as well. - for other details, please check commit histories one by one. # Test Plan - bare-expo ios / android - fabric ios / android - ci passed (except ios) - test-suite ios is broken for unknown reasons. it breaks only on github actions and hermes. for nightlies testing, i also [changed it to jsc](https://github.com/expo/expo/blob/1e029c89c4247802cc4880e27e116a6b4c71c502/tools/src/commands/SetupReactNativeNightly.ts#L287-L293) to make ci green. i'll try to follow up and investigate the root cause.
[modules] Fix incompatible issue for react-native 0.71 (#20470)# Why sdk 48 may come next year and react-native 0.71 may be released this year. it's good to have react-native 0.71 support for ou
[modules] Fix incompatible issue for react-native 0.71 (#20470)# Why sdk 48 may come next year and react-native 0.71 may be released this year. it's good to have react-native 0.71 support for our modules. if users want to upgrade 0.71, they could change their project to be a bare project for the early preview. # How - [core][av][gl] because 0.71 doesn't serve android aar along with npm package, the aar extraction from `node_modules/react-native/android/**/*.aar` will break on 0.71. 0.71 also ships modules with prefab support. it's good to rewrite the gradle/cmake files to link with prefab modules. that would reduce much complexity. however, to be backward compatible with 0.70, i moved most logic to `ExpoModulesCorePlugin.applyLegacyReactNativeLibsExtractionPlugin` and `legacy/CMakeLists.txt`. so that we could be backward compatible and easily remove the isolated code after we drop sdk 47 support. - [dev-launcher] add 0.71 sources because new parameter to `DevSupportManagerBase` - [core][dev-menu] fix ios build errors for jsc because 0.71 moved the header to `<React-jsc/JSCRuntime.h>` - [core][autolinking] integrate the `RCTAppDelegate` with our `EXAppDelegateWrapper`. that would simply the install-expo-modules migration where we only need the change `RCTAppDelegate -> EXAppDelegateWrapper` in AppDelegate.h. however, integrate RCTAppDelegate comes with some issues from expo-modules-core. [this commit](https://github.com/expo/expo/pull/20470/commits/2959477c5782f5d3ef770fbe72b04c1770bc566b) changes many code and i'll try to explain here: - RCTAppDelegate is in `React-RCTAppDelegate` pod, which does not define module. we define module for it in our patch system in autolinking. - defines `RCT_NEW_ARCH_ENABLED` as RCTAppDelegate - in new architecture mode, RCTAppDelegate comes with [more cxx dependencies](https://github.com/facebook/react-native/blob/03b17d9af7e4e3ad3f9ec078b76d0ffa33a3290e/Libraries/AppDelegate/RCTAppDelegate.h#L12-L18) for fabric. that's why we should add more header search paths and also move to EXAppDelegateWrapper.mm. # Test Plan - [x] ci passed - [x] bare-expo build and launch - [x] bare-expo nightlies build and launch - [x] fabric-tester build and launch - [x] fabric-tester nighties build and launch (should apply [the patch to fabric-tester](https://gist.github.com/Kudo/417a5159cb01a400ecee22ad4985d287)) - [x] rn 0.71-rc4 project build and launch (could apply [the patches](https://gist.github.com/Kudo/7448c733f12e700c7fbed76251fa3553) for testing) - [x] rn 0.71-rc4 project (new architecture) build and launch ([this pr](https://github.com/facebook/react-native/pull/35661) for react-native is required) - [x] rn 0.71-rc4 project (use_frameworks!) build and launch
[core] Add Fabric support for expo view managers on Android (#18541)