[core] fix missing fabric startup property (#24004)# Why fixes #23994 close ENG-9778 close ENG-9792 # How the `RCTAppSetupUtils.h` was moved to `React-RCTAppDelegate` pod since react-nat
[core] fix missing fabric startup property (#24004)# Why fixes #23994 close ENG-9778 close ENG-9792 # How the `RCTAppSetupUtils.h` was moved to `React-RCTAppDelegate` pod since react-native 0.72 but i didn't update the import path to the EXReactCompatibleHelper. we ultimately go to the `[RCTRootView alloc] initWithBridge:` call path which was for react-native 0.67. this pr also drops the react-native 0.67 support. in case we cannot find `RCTAppSetupDefaultRootView` in the future, we will be noticed by build errors. # Test Plan test #23994 repro
show more ...
[iOS] Specify Obj-C names for React delegate handlers for versioning (#23229)
Fix react-native nightly test (#19805)# Why Fix broken react-native nightly test # How - meta ships nightly build binaries on maven central now, we could just use the binaries than buildin
Fix react-native nightly test (#19805)# Why Fix broken react-native nightly test # How - meta ships nightly build binaries on maven central now, we could just use the binaries than building from source. the ci job time reduces dramatically. previously it takes almost four hours, now it takes 51m for android and 60m for ios. - use env `REACT_NATIVE_OVERRIDE_VERSION` to override the version rather than hardcoded 9999.9999.9999 in packages. - expo-modules-core / expo-av / expo-gl - support to download snapshot react-native from maven central - fix some breaking changes from react-native nightly - expo-dev-launcher: `RCTAsyncLocalStorage` is removed - expo-modules-core: remove deprecated `<hermes/hermes.h>` import - expo-modules-core: `RCTAppSetupDefaultRootView` has new parameter - expo: `com.facebook.react.uimanager.UIImplementationProvider` is removed - bare-expo `reactNativeNightly` gradle property is unused now, just rename to `buildReactNativeFromSource` if someone want to use. - [tools] update SetupReactNativeNightly # Test Plan - test suite nightly ci passed - original test suite ci passed to make sure compatibility with sdk 47
[ios] Add missing React imports to expo-dev-menu (#17030)
[android][ios] Upgrade to react-native 0.68 (#16532)# Why targeting react-native 0.68 in sdk 45 even though it's rc now. # How - [x] upgrade package.json - [x] migrate bare-expo - [x] mi
[android][ios] Upgrade to react-native 0.68 (#16532)# Why targeting react-native 0.68 in sdk 45 even though it's rc now. # How - [x] upgrade package.json - [x] migrate bare-expo - [x] migrate expo-template-bare-minimum - [x] migrate bare-sandbox ❗️ reanimated build error because our previous integration is broken on AGP 7. solution in [the pr](https://github.com/software-mansion/react-native-reanimated/pull/3113). since the pr is not landed yet, i have a [temporarily workaround to patch reanimated](https://github.com/expo/expo/pull/16532/commits/8e5662bec377ea11edc21ec6114c39f6580cb56a). # Test Plan - android bare-expo launch test - ios bare-expo launch test
[ios] Fix lint issues in Swift files (#15640)
[core] Introduce iOS ReactDelegate for React related instances creation (#15138)# Why original modularized AppDelegateWrapper isn't ideal for expo-updates. we had some bad side effect, e.g. doub
[core] Introduce iOS ReactDelegate for React related instances creation (#15138)# Why original modularized AppDelegateWrapper isn't ideal for expo-updates. we had some bad side effect, e.g. double bridge creation on startup. close ENG-2299 # How ## For module authors introduce `EXReactDelegate` dedicated for react related instances creation. so far we covered: - RCTBridge - RCTRootView - RootViewController (for expo-screen-orientation) if a module wants to handle these creation, there's 2 steps: 1. add `reactDelegateHandlers` in `expo-module.config.json`, e.g. ``` "ios": { "reactDelegateHandlers": ["ScreenOrientationReactDelegateHandler"] } ``` 2. create `EXReactDelegateHandler` derived swift class, e.g. ```swift // ScreenOrientationReactDelegateHandler.swift public class ScreenOrientationReactDelegateHandler: ExpoReactDelegateHandler { public override func createRootViewController(reactDelegate: ExpoReactDelegate) -> UIViewController? { return EXScreenOrientationViewController() } } ``` since the order of whom to create the instance did matter, we also introduce `ModulePriorities.swift` similar to what we did on android. ## For app developers the change to template is minimal, so codemod by `npx install-expo-modules` is also feasible. ```diff - RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; - RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"main" initialProperties:nil]; + RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions]; + RCTRootView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@"main" initialProperties:nil]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; + UIViewController *rootViewController = [self.reactDelegate createRootViewController]; ```