[ios] Remove legacy notifications module code (#24325)
[go] fix ios expo go crash from exceptions (#24305)# Why potentially to fix the strange ios crash after login # How - the root cause is that we didn't implement correct `RCTExceptionsManag
[go] fix ios expo go crash from exceptions (#24305)# Why potentially to fix the strange ios crash after login # How - the root cause is that we didn't implement correct `RCTExceptionsManagerDelegate` protocol from react-native upgrade. that would probably cause the error stacktrace: ``` Last Exception Backtrace: 0 CoreFoundation 0x1c938ce38 __exceptionPreprocess + 164 (NSException.m:202) 1 libobjc.A.dylib 0x1c25238d8 objc_exception_throw + 60 (objc-exception.mm:356) 2 CoreFoundation 0x1c950181c -[NSObject(NSObject) doesNotRecognizeSelector:] + 136 (NSObject.m:140) 3 CoreFoundation 0x1c93a2ce8 ___forwarding___ + 976 (NSForwarding.m:3620) 4 CoreFoundation 0x1c940b320 _CF_forwarding_prep_0 + 96 (:-1) 5 Expo Go 0x105588678 -[RCTExceptionsManager reportSoft:stack:exceptionId:extraDataAsJSON:] + 244 (RCTExceptionsManager.mm:50) 6 Expo Go 0x105589010 -[RCTExceptionsManager reportException:] + 1320 (RCTExceptionsManager.mm:156) 7 CoreFoundation 0x1c93f76b4 __invoking___ + 148 (:-1) 8 CoreFoundation 0x1c93a3b1c -[NSInvocation invoke] + 428 (NSForwarding.m:3377) 9 CoreFoundation 0x1c93a3534 -[NSInvocation invokeWithTarget:] + 64 (NSForwarding.m:3474) 10 Expo Go 0x105542a60 -[RCTModuleMethod invokeWithBridge:module:arguments:] + 388 (RCTModuleMethod.mm:584) 11 Expo Go 0x105544ac0 facebook::react::invokeInner(RCTBridge*, RCTModuleData*, unsigned int, folly::dynamic const&, int, (anonymous namespace)::SchedulingContext) + 456 (RCTNativeModule.mm:197) 12 Expo Go 0x105544710 facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int)::$_0::operator()() const + 68 (RCTNativeModule.mm:114) 13 Expo Go 0x105544710 invocation function for block in facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int) + 112 (RCTNativeModule.mm:105) 14 libdispatch.dylib 0x1d09a3460 _dispatch_call_block_and_release + 32 (init.c:1518) 15 libdispatch.dylib 0x1d09a4f88 _dispatch_client_callout + 20 (object.m:560) 16 libdispatch.dylib 0x1d09ac640 _dispatch_lane_serial_drain + 672 (inline_internal.h:2632) 17 libdispatch.dylib 0x1d09ad18c _dispatch_lane_invoke + 384 (queue.c:3940) 18 libdispatch.dylib 0x1d09b7e10 _dispatch_workloop_worker_thread + 652 (queue.c:6876) 19 libsystem_pthread.dylib 0x217604df8 _pthread_wqthread + 288 (pthread.c:2618) 20 libsystem_pthread.dylib 0x217604b98 start_wqthread + 8 (:-1) ``` - add `-Werror=protocol` to have compiler error if we don't implement correct protocol in the future. # Test Plan expo go release build + local build production home with some `console.error()`
show more ...
[iOS] Refactor version manager in Expo Go (#23624)
[dev-client][updates] fix ios use_frameworks build errors (#23218)# Why fix ios use_frameworks with expo-dev-client and expo-updates fixes #23190 close ENG-9158 # How - [dev-launcher][d
[dev-client][updates] fix ios use_frameworks build errors (#23218)# Why fix ios use_frameworks with expo-dev-client and expo-updates fixes #23190 close ENG-9158 # How - [dev-launcher][dev-menu] remove bridging headers. bridging headers are only supported in app projects as far as i know. - [dev-launcher][dev-menu] remove double quoted imports - [manifests][updates-interface] remove the swift generated header copying to PODS_ROOT. if we did that, xcode will have ambiguous imports that import from non-module header. # Test Plan - ci passed - versioned expo go - bare-expo - sdk49 project + use_frameworks! static
[cli][dev-menu][go] add react devtools (#21462)# Why close ENG-7468 close ENG-7469 # How - [cli] add websocket proxy to forward react-devtools events. - [cli] add static page for react-d
[cli][dev-menu][go] add react devtools (#21462)# Why close ENG-7468 close ENG-7469 # How - [cli] add websocket proxy to forward react-devtools events. - [cli] add static page for react-devtools frontend. since react-devtools only ships commonjs format, this pr tries to use jspm to support it on browsers. - [dev-menu][go] listen `reconnectDevTools` metro websocket event and send `RCTDevMenuShown` to js for app to reconnect devtools websocket # Test Plan manual test only. please let me know if there's any proper points to add unit tests
[exmanifests][ios] Convert to swift (#21298)
[Expo Go][iOS] No remote home app loads in release builds (#20416)# Why Per ENG-7047, we need to disable remote loading of home app, and checking for home app updates, for release builds. Upda
[Expo Go][iOS] No remote home app loads in release builds (#20416)# Why Per ENG-7047, we need to disable remote loading of home app, and checking for home app updates, for release builds. Updates and loading from the packager will still work in debug builds. # How Add `#ifdef DEBUG` in several places in `Exponent/Kernel/AppLoader/EXAppLoader.m` # Test Plan - CI should pass - Test Expo Go builds locally and verify that updates are not loaded, and that nothing else is broken # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [x] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin).
[android][ios] Integrate JS inspector on Expo Go (#19175)# Why close ENG-4165 # How - if the underlying js runtime is inspectable, show the dev menu as "Open JS Debugger" and open inspecto
[android][ios] Integrate JS inspector on Expo Go (#19175)# Why close ENG-4165 # How - if the underlying js runtime is inspectable, show the dev menu as "Open JS Debugger" and open inspector provided by expo cli. - on android, there's a workaround for checking js runtime isInspectable. because react-native doesn't expose the information from jsi runtime to java side, we could only check the underlying js executor name if it's hermes or not. # Test Plan - ✅ unversioned android/ios expo go + NCL (remote debugging) - ✅ unversioned android/ios expo go + NCL jsEngine hermes (js inspector) - ✅ unversioned android/ios expo go + NCL jsEngine hermes + tunnel (js inspector) Co-authored-by: Łukasz Kosmaty <[email protected]>
[iOS][Expo Go] Remove legacy splash screen code (#14650)
[iOS][Expo Go] Remove legacy code (#14690)
[screen-orientation] Fix integration with `react-native-screens` orientation prop (#14541)# Why Fixes https://github.com/software-mansion/react-native-screens/issues/1152. # How Uses metho
[screen-orientation] Fix integration with `react-native-screens` orientation prop (#14541)# Why Fixes https://github.com/software-mansion/react-native-screens/issues/1152. # How Uses method added in https://github.com/software-mansion/react-native-screens/pull/1155 to determine if we should use screen orientation from react-native-screens. # Test Plan - bare rn project ✅ - https://snack.expo.dev/9LZ5ItpXl ✅
[Expo Go][iOS] Catch invalid manifest assertions better (#14404)* Catch invalid manifest assertions * Added catches for more fatal loading errors * assert early * Catch manifest parsing er
[Expo Go][iOS] Catch invalid manifest assertions better (#14404)* Catch invalid manifest assertions * Added catches for more fatal loading errors * assert early * Catch manifest parsing errors * Remove unused assertion * backdate changes Co-authored-by: Evan Bacon <[email protected]>
[expo-manifests] Rename RawManifest -> Manifest (#14194)
[expo-updates] Factor out raw manifests into their own package (#14183)
[ios] Migrate all remaining native code
[ios] Use stable manifest ID where applicable (#13280)
[ios] Fix second instance of manifest JSON bug (#13443)
[ios] Replace clang's `typeof` with `__typeof`
[go][ios][android] Fix recent project feature with new manifest wrappers (#12805)
[updates] Factor out raw manifest into wrapper class (#12631)
[ios] Don't call RCTPackagerConnection when it isn't available (related: 5026ff91)
[ios][Expo Go] fix web socket versioning (#12286)
[Expo Go][iOS] Added web socket controls for the CLI (#12151)* Added websocket controls for the CLI * Added more commands
[Android][fix] Remove JSONBundleConverter usage for passing manifest from Android to JS (#11678)# Why `Expo Go` is unable to load any project on Android now. Recent change in app manifest shape
[Android][fix] Remove JSONBundleConverter usage for passing manifest from Android to JS (#11678)# Why `Expo Go` is unable to load any project on Android now. Recent change in app manifest shape is responsible for that, namely, new `config plugin system` (for `ncl` project this file: https://github.com/expo/expo/blob/master/apps/native-component-list/app.config.js is adding some array with strings/objects alternately). That is causing https://github.com/expo/expo/blob/fec8b1534e8d27584a685c01a3a12ff432b3fbbd/android/expoview/src/main/java/host/exp/exponent/utils/JSONBundleConverter.java#L72-L81 to throw an error. # How There's no way to convert `JSONArray` with different entries to `Bundle` data type as the latter does not allow arrays/lists containing different data types, only homogenous entries are allowed. I've removed this conversion altogether and replaced all `<someBundle>.putBundle("manifest", JSONBundleConverter.JSONToBundle(manifest))` with `<someBundle>.putString("manifest" manifest.toString())`. I've tried to find any place in the code that would read the `"manifest"` fields from the bundle, but failed to do so cc @lukmccall, as there are changes in the `DevMenu` module. From now on, `manifest` field in `initialProps` is replaced by `manifestString` that has to be deserialised upon access. Fortunately this field is not used anywhere in our codebase. # Test Plan - [x] I've succeeded in launching `ncl` and `test-suite` again on Android and observed no regressions. - [x] I've checked that DevMenu shows all the things in the header properly. - [x] I've checked both Android & iOS behaviours.
[expo-constants] add executionEnvironment (#10986)
123