[dev-launcher][ios] Fix app launch when using multiple scenes (#24565)# Why When configuring an app that uses `UIApplicationSupportsMultipleScenes`, UIApplication.shared.windows is unable to
[dev-launcher][ios] Fix app launch when using multiple scenes (#24565)# Why When configuring an app that uses `UIApplicationSupportsMultipleScenes`, UIApplication.shared.windows is unable to find any UIWindow causing ExpoDevLauncherAppDelegateSubscriber to fail to start https://github.com/expo/expo/blob/284bb8887638b6c52273aea5d234288478ffff66/packages/expo-dev-launcher/ios/ReactDelegateHandler/ExpoDevLauncherAppDelegateSubscriber.swift#L12 Closes https://github.com/expo/expo/issues/23536 Closes ENG-9926 # How This PR updates AppDelegateSubscriber to attempt to get a window from `UIApplication.shared.delegate?.window` and then falls back to `UIApplication.shared.windows` if a window is not located. I also tried using `UIApplication.shared.connectedScenes` but returns an empty array # Test Plan Run dev-client through Bare Expo <img width="400" alt="image" src="https://github.com/expo/expo/assets/11707729/9988ab96-c920-4afd-a1a8-201c13c047da"> Run an [example project](https://github.com/banesp/expo-dev-launcher-keywindow-bug-demo/tree/bare-with-scene-delegates) using Carplay <img width="1069" alt="image" src="https://github.com/expo/expo/assets/11707729/8c3089f3-5842-4658-8ffc-5e1e38277e97"> # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
show more ...
[dev-launcher] fix compatibility issue with reanimated (#23057)# Why fix compatibility issue with reanimated on ios # How - reanimated has a [method swizzling to call `reanimated::REAIniti
[dev-launcher] fix compatibility issue with reanimated (#23057)# Why fix compatibility issue with reanimated on ios # How - reanimated has a [method swizzling to call `reanimated::REAInitializer` when setup bridge](https://github.com/software-mansion/react-native-reanimated/blob/79d0e5baf4e7aea9bbf27a798472e8c42b6527da/ios/native/RCTAppDelegate%2BReanimated.mm). we didn't go through this when dev-launcher create a new bridge. this pr tries to setup reanimated if there is reanimated dependency. - remove unused `ExpoDevLauncherBridgeDelegateHandler` # Test Plan - test bare-expo with `BOOL useDevClient = YES` in **AppDelegate.mm** - fabric-tester
[dev-launcher][dev-menu][ios] Add support for Fabric (#22184)# Why Closes ENG-7955 This PR adds dev-launcher support for the new architecture. # How - Updates `expo-dev-launcher` an
[dev-launcher][dev-menu][ios] Add support for Fabric (#22184)# Why Closes ENG-7955 This PR adds dev-launcher support for the new architecture. # How - Updates `expo-dev-launcher` and `expo-dev-menu` podspecs to support `NEW_ARCH_ENABLED` flags - Add `EXDevLauncherBridgeDelegate` class that inherits from `RCTAppDelegate` and is responsible for creating the root view and bridge - Replace `DevMenuRCTCxxBridgeDelegate`with `DevMenuRCTAppDelegate` - Fix `EXDevLauncherBridgeDelegate` not able to relaunch DevLauncher - Add `ExpoDevLauncherBridgeDelegateHandler` to handle opening apps from `ExpoDevLauncherReactDelegateHandler` - Update `openDevMenuFromReactNative` to ensure the DevMenu is closed before opening the react-native dev menu # Test Plan Run `fabric-tester` and `bare-expo` on iOS <table> <tr><th>fabric-tester</th><th>bare-expo</th></tr> <tr> <td> <video src="https://github.com/expo/expo/assets/11707729/1176f862-4459-4a39-8c11-16f73b2dfe46"/> </td> <td> <video src="https://github.com/expo/expo/assets/11707729/5f603af5-d970-4144-ade6-0943b829d225" /> </td> </tr> </table> # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin). --------- Co-authored-by: Kudo Chien <[email protected]>
[dev-launcher][ios] strip initialURL when deep linking from dev launcher (#22879)# Why when launching app through the dev-client deeplinks, the `Linking.getInitialURL()` returns `exp+{scheme}://
[dev-launcher][ios] strip initialURL when deep linking from dev launcher (#22879)# Why when launching app through the dev-client deeplinks, the `Linking.getInitialURL()` returns `exp+{scheme}://expo-development-client/?url...` which is not expected behavior for user. close ENG-8934 # How - strip the initial deep link if the url host matching `expo-development-client` - this behavior aligns to dev-launcher on android which `Linking.getInitialURL` returns null because it uses new Intent and new Activity to launch the app. # Test Plan - ci passed - tested on https://github.com/brentvatne/deep-linking-demo - also tested on universal link
[expo-updates-interface][ios] convert to swift (#21646)# Why More swift conversions. # How Convert manually. # Test Plan Run all tests. # Checklist <!-- Please check the appro
[expo-updates-interface][ios] convert to swift (#21646)# Why More swift conversions. # How Convert manually. # Test Plan Run all tests. # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin).
[dev-launcher][ios] fix deferred deep links (#18614)
[dev-client] support landscape orientation (#18509)
[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
[expo-dev-launcher] remove initialization side effects (#16522)
[expo-dev-client] restore ability of host apps to disable dev client (#16521)
[expo-dev-menu] add expo-modules auto setup on iOS (#16496)
[updates-interface][updates][dev-launcher] add EXUpdatesControllerRegistry (#16230)
[expo-dev-launcher] ReactDelegate-based automatic setup (#16190)