[go] disable remote debugging when running on hermes (#21269)# Why close ENG-7610 # How the implementation is slightly different between android and ios. on ios, we could just disable rem
[go] disable remote debugging when running on hermes (#21269)# Why close ENG-7610 # How the implementation is slightly different between android and ios. on ios, we could just disable remote debugging when changing to hermes and enable it when changing back to jsc. however, on android we just disable remote debugging when running on hermes. this is because the fact of we have override `EXDevSettings` on ios but no similar stuff on android. # Test Plan follow steps on ENG-7610
show more ...
[ios] Fix compilation issues in iOS shell apps (#17357) [skip ci]
[ios] Fix build error on Xcode 13.2 (#16955)
[android][ios] Upgrade react-native to 0.67.2 in Expo Go (#16400)# Why upgrade for sdk 45 # How ## upgrade react native fork code in https://github.com/expo/react-native/tree/sdk-45 ba
[android][ios] Upgrade react-native to 0.67.2 in Expo Go (#16400)# Why upgrade for sdk 45 # How ## upgrade react native fork code in https://github.com/expo/react-native/tree/sdk-45 basically cherry pick most necessary commits from sdk-44 branch but not these two: 1. https://github.com/expo/react-native/commit/125b36ac6d76e702bea4d7c41a8a402d68cdb1f1: because ExpoKit is already deprecated. 2. https://github.com/expo/react-native/commit/82d3ff5218cc576b5c7ea44c7adbf8b5aa5d985c: [use the official way to set metro server address](https://github.com/facebook/react-native/commit/e2b5b6504cb4dee8f2ec67f1d3a410801e1ca09a) ## migrate project setup basically reference from: https://react-native-community.github.io/upgrade-helper/?from=0.64.2&to=0.67.2 ## other build errors or launch errors just to deal with these mess one by one. # Test Plan - [android] unversioned expo-go build + launch + load unversioned NCL - [ios] unversioned expo-go build + launch + load unversioned NCL
[autolinking] Patch react podspec for swift integration (#15299)# Why there are tons of mixing swift and objc issues in expo-modules-core. e.g. - `include of non-modular header inside framework
[autolinking] Patch react podspec for swift integration (#15299)# Why there are tons of mixing swift and objc issues in expo-modules-core. e.g. - `include of non-modular header inside framework module` when prebuild expo-modules-core - sometimes swift functions cannot be loaded if there are react types. the root cause is that clang doesn't generate submodules correctly. although clang can transform `#import <React/RCTBridge.h>` to `@import React.RCTBridge;`, clang cannot do it right as React.RCTBridge submodule doesn't exist. as swift only know modules, this will cause lots of problems when we use react types in swift. # How - patch `React-Core.podspec` with custom modulemap for clang to generate submodules correctly. (details in code comment) - replace original CocoaPods `PodTarget` monkey patch with `Sandbox`. this new approach can patch podspec on the fly. # Test Plan - CI passed - to further check what's the difference for the change, you can enable `BUILD_LIBRARY_FOR_DISTRIBUTION` for expo-modules-core pod project and check the swiftinterface for ExpoModulesCore. e.g. `/Users/kudo/Library/Developer/Xcode/DerivedData/BareExpo-brnnteedtepltiasryrqyexlvweu/Build/Products/Debug-iphonesimulator/ExpoModulesCore/ExpoModulesCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface` ```swift @_inheritsConvenienceInitializers @objc final public class ViewModuleWrapper : ExpoModulesCore.RCTViewManager { ``` before: it's `ExpoModulesCore.RCTViewManager` ```swift @_inheritsConvenienceInitializers @objc final public class ViewModuleWrapper : React.RCTViewManager { ``` after: it's `React.RCTViewManager`
[expo-manifests] Remove reliance upon stableLegacyId/originalFullName (#14265)
[ios] Use stable manifest ID where applicable (#13280)
[ios] Merge unimodules core and adapter into expo-modules-core (#13353)# Why Part of Expo modules re-architecture # How - Copied iOS sources from `@unimodules/core` and `@unimodules/react-
[ios] Merge unimodules core and adapter into expo-modules-core (#13353)# Why Part of Expo modules re-architecture # How - Copied iOS sources from `@unimodules/core` and `@unimodules/react-native-adapter` to `expo-modules-core` - In these copied files replaced `UM` prefix with `EX` - Swift names for classes used by the users (`AppDelegateWrapper`, `ModuleRegistry`, `ModuleRegistryAdapter`, `ModuleRegistryProvider`) won't have any prefix — we would drop these prefixes anyway, in the future when we rewrite them to Swift - Old `UM*` names are still supported and most of them are marked as deprecated, however I couldn't get it to work for Swift (but seems like no one uses it for app delegates?) and protocols - `ExpoModulesCore` provides `EXUnimodulesCompat.h` header that expands old `UM_*` macros to `EX_*` - Previously `ExpoModulesCore` depended upon `UMCore`, now it's the other way around — `UMReactNativeAdapter` and `UMCore` depend on `ExpoModulesCore` to import `EXUnimodulesCompat` header - Fixed `EXTrackingTransparency` to depend on `ExpoModulesCore` directly - _There are no changes in the logic or architecture of unimodules/expo modules, I'll do this separately_ # Test Plan - CI jobs are passing - Tested locally, apps seem to work as before
[kernel] Fix `getInitialURL` returns `https://expo.io:443/<team>/<slug>` instead of null in standalone app (#13071)# Why Closes ENG-1141. Fixes https://github.com/expo/expo/issues/11920. # H
[kernel] Fix `getInitialURL` returns `https://expo.io:443/<team>/<slug>` instead of null in standalone app (#13071)# Why Closes ENG-1141. Fixes https://github.com/expo/expo/issues/11920. # How On both platforms, we pass manifest URL to liking module if the initial URL is null. It's not the desired behavior right now. It looks like we used it in the past but not anymore. So I removed the code that was responsible for changing the initial URL. # Test Plan - check if the linking module work in Expo Go on both platforms ✅ - build local shell apps using `et android-shell-app` and `et ios-shell-app` and confirm that `getInitialURL` returns null using a simple app > Note: local shell apps are not the same as those produced by turtle because I needed to change a few things to compile them. However, the code which is responsible for starting the app should be the same.
[ios] rename moduleRegistry callsite to umModuleRegistry (#11886)* moduleRegistry -> umModuleRegistry * fix EXAppState as well
[ios] Fix EXDisabledRedBox not overriding RCTRedBox (#10498)* [ios] Fix EXDisabledRedBox registering as EXDisabledRedBox by providing moduleName * [ios] Backport fix to SDK39
[ios] Add RCTBridgeModule conformance o EXDisabledDevMenu (#9932)
[ios] Fix DevMenu and RedBox behavior when TurboModules are enabled (#9906)# Why With TurboModules enabled, the dev menu had all RN's-specific options unavailable — it's been caused by the fact
[ios] Fix DevMenu and RedBox behavior when TurboModules are enabled (#9906)# Why With TurboModules enabled, the dev menu had all RN's-specific options unavailable — it's been caused by the fact we used module names to pick instances of some needed modules, whereas with TurboModules we should use `moduleForClass:` method instead. After fixing this I noticed that toggling some tools sometimes doesn't close the dev menu as it was before — this is probably related with React Native upgrade to 0.63 which might fix an issue that `componentWillUnmount` was not being called after closing the bottom sheet, but `componentDidMount` was called every time when opening it. Previously we fixed this by unsubscribing the listener immediately once the request has come, but looks like we no longer need it. We also found out some glitches while opening the dev menu for the first time — looks like there is a bug in the new version of reanimated that causes the bottom sheet to call `onCloseEnd` event when it starts opening and where we collapse and close it. I added additional check that prevents collapsing on `onCloseEnd` event when bottom sheet hasn't been expanded yet. Linking with #9850 to track SDK39 QA issues. # How - Replaced `[self _moduleInstanceForBridge:bridge named:moduleName]` calls with `[bridge moduleForClass:ModuleClass.class]`. - Made `EXDisabledDevMenu` and `EXDisabledRedBox` TurboModules. - Moved overriding RedBox reload action from `bridgeWillStartLoading` to `bridgeFinishedLoading` to get rid of race conditions where the module is not available yet. - Removed hacky fix that was unsubscribing close requests immediately. - Added another hacky fix to prevent collapsing on unnecessary `onCloseEnd` calls. # Test Plan Run `home` locally and tested all dev menu's options in various cases. Unfortunately, remote debugger is still unavailable (but it should work once we turn off TurboModules by default). # To do - Publish dev home - Remote debugger is still unavailable because it's explicitly disabled when TurboModules are enabled. We will fix it by making the use of TurboModules optional.
[iOS] Remove kernel SplashScreen leftovers (#9811)
[ios] Enable TurboModules (#9687)# Why We need to enable TurboModules to be able to include Reanimated v2. > A known issue with this PR is that the community AsyncStorage seizes to work — it
[ios] Enable TurboModules (#9687)# Why We need to enable TurboModules to be able to include Reanimated v2. > A known issue with this PR is that the community AsyncStorage seizes to work — it expects only native module, isn't compatible with TurboModule AsyncStorage and we do not import the AsyncStorage community module properly. > > **Actually**, https://github.com/react-native-community/async-storage/pull/418 should be enough. # How Apart from the more or less usual TurboModules setup (imports, headers, flags, C++ dialect) I had to move native modules that we override in Expo from `extraModulesForBridge:` to `getModuleInstanceFromClass:`. I don't like that we have to use `RCTLogFunction` in `EXVersionManager` now (otherwise the code wouldn't compile), but I guess that if the type ever changes somebody will notice and backport the change to versioned SDKs. # Test Plan Expo Client compiled, home ran.
[expo] Add missing methods to `EXDisableRedBox` (#8850)
[react-native] Upgrade to 0.62.2 (#8310)# Why Let's have latest React Native in the upcoming SDK! # How See the story at https://www.notion.so/expo/React-Native-Upgrade-Diary-947bc0b506a94
[react-native] Upgrade to 0.62.2 (#8310)# Why Let's have latest React Native in the upcoming SDK! # How See the story at https://www.notion.so/expo/React-Native-Upgrade-Diary-947bc0b506a942189fd47ff6e53bf95b. # Test Plan Expo Client runs, versioned SDK38 also runs (after a couple of post-version fixes outlined in the aforementioned doc). `expo-cli` can't handle `client_log` events, but that's something we may want to figure out after merging this PR, I guess.
[ios] Do not show the loading view when fast refresh is disabled (#7414)
[expo-linking][ios] Fix openSettings (#7717)* [expo-linking][ios] Fix openSettings * [expo-linking] Update react-native fork
[expo-screen-orientation] Extract to unimodule (#6760)* create screen-orientation unimodule * [screen-orientation] Apply PR suggestions & comments * [expo-screen-orientation] Rewrite to kotli
[expo-screen-orientation] Extract to unimodule (#6760)* create screen-orientation unimodule * [screen-orientation] Apply PR suggestions & comments * [expo-screen-orientation] Rewrite to kotlin * [expo-screen-orientation] Apply requested changes * [expo-screen-orientation] Fix NCL * [expo-screen-orientation] Fix test-suite * [expo-screen-orientation] Fix notch detection * [expo-screen-orientation] Remove unused enum * [expo-screen-orientation] Fix NCL on iOS * [expo-screen-orientation] Change the scoped logic * [expo-screen-orientation] Remove EXModuleRegisterBinding * [expo-screen-orientation] Fix test-suite on iOS * [expo-screen-orientation] Apply requested changes * [expo-screen-orientation] Use traitCollectionsDidChange * [expo-screen-orientation] Fix orientation on iPads * [expo-screen-orientation] Apply requested changes * [expo-screen-orientation] Remove ALL_BUT_UPSIDE_DOWN * [expo-screen-orientation] Rename & refactor * [expo-screen-orientation] Update pods * [expo-screen-orientation] Update module-scripts version * [expo-screen-orientation] Fix bare-expo & CI Co-authored-by: Wojciech Lewicki <[email protected]>
[ios] Only send dev menu notifications when they are being observed
[ios] Add fast refresh "refreshing" UI (#6209)
[ios][android] Make redbox and rr (android) and cmd+r (ios) reload manifest and JS rather than just JS (#6134)* [ios] Make cmd+r reload manifest and JS rather than just JS * [ios] Reload from de
[ios][android] Make redbox and rr (android) and cmd+r (ios) reload manifest and JS rather than just JS (#6134)* [ios] Make cmd+r reload manifest and JS rather than just JS * [ios] Reload from dev menu grabs manifest too * [ios] Clean up reload code and ensure redbox injection code works outside of developer mode * [android] Reload on dev menu also reloads from manifest * [ios] Fix typo * [android] Reload from manifest from redbox and with rr shortcut * [android] Address feedback * [react-native-lab] Copy changes to ReactAndroid over * [android] Clean up extra newlines * [react-native-lab] Update on sdk-36 branch
[home][ios] Update dev menu for sdk 36 to include fast refresh (#6110)* [home][ios] Update dev menu for sdk 36 to include fast refresh * [ios][home] Ensure that live reload is always set to disa
[home][ios] Update dev menu for sdk 36 to include fast refresh (#6110)* [home][ios] Update dev menu for sdk 36 to include fast refresh * [ios][home] Ensure that live reload is always set to disabled on sdk36+. Also add perf monitor key to dev settings data source * [ncl] Fix title of action sheet screen * [home] Clean up menu buttons and stop using alert for additional info * [home] Tweaks to menu view to look better in < sdk 35 * [home] Fix styles for constants in the bottom of projects screen * [ios] Improve messaging when hot refresh is not available and do not show element inspector in prod mode * [home] Make the reason why an option is not available very obvious * [ios] Remove perf monitor from dev settings data source again, minimize touch in this pr
[ios] Fix all warnings (#4738)# Why Fixes https://github.com/expo/expo/issues/4429. # How - added `Bolts` to `Podfile` to be able to suppress warnings from this specific pod, - added sett
[ios] Fix all warnings (#4738)# Why Fixes https://github.com/expo/expo/issues/4429. # How - added `Bolts` to `Podfile` to be able to suppress warnings from this specific pod, - added setting deployment target for all development pods - went through every warning and fixed # Test Plan The project compiles, Camera works, ImagePicker works ok.
12