Upgrade react-native 0.72.0-rc.5 (#22588)# Why upgrade react-native 0.72 for sdk 49 close ENG-8011 # How - bump package versions - `react-native 0.71.3 -> 0.72.0-rc.5` - `metro-reac
Upgrade react-native 0.72.0-rc.5 (#22588)# Why upgrade react-native 0.72 for sdk 49 close ENG-8011 # How - bump package versions - `react-native 0.71.3 -> 0.72.0-rc.5` - `metro-react-native-babel-preset 0.73.9 -> 0.76.5` - [bare-expo][templates][fabric-tester] migrate template base on [upgrade-helper](https://react-native-community.github.io/upgrade-helper/?from=0.71.7&to=0.72.0-rc.5) - [expo-template-tabs] remove the metro version overrides for expo-router. - [core][dev-laucher][dev-menu][media-library][screen-orientation][splash-screen][updates-interface][updates] add the `install_modules_dependencies` to support new architecture + use_frameworks! - [core][autolinking] fix some new architecture error on ios - [react-native-lab] update our fork to 0.72.0-rc.5 based - [go][tools] fix **react-native-lab/react-native/packages/react-native** path move because of react-native's repo monorepo changes - [go][android] fix gradle 8 errors - [go][ios] add `RCT_REMOTE_PROFILE=0` to fix the `RCT_ENABLE_INSPECTOR needs to be set to fulfill RCT_REMOTE_PROFILE` build error - [ncl] remove `ProgressViewIOS` / `ProgressBarAndroid` since they are deprecated/removed in 0.72 - [dev-menu][dev-launcher] rebuild bundles # Note - react-native-web is not bumped because of the [issue](https://github.com/necolas/react-native-web/issues/2523), so it's still react-native-web@~0.18.10. - currently disable ci typecheck for @expo/cli because of upstream metro typescript support. i'll have another pr to fix those errors. - updates e2e ci on android is broken at [here](https://github.com/expo/expo/blob/fada3d764957779fbfc3d7b723d185db1d933d95/packages/expo-updates/e2e/fixtures/Updates.e2e.ts#L518). i doubt if that's related to the react scheduler change. i'd disabled the failed test case. - the react-native upstream [migrated away the `@types/jest`](https://github.com/facebook/react-native/pull/36068). i was afraid that will be a breaking change to the existing jest test code since it requires the explicit `@jest/globals` import. i didn't do this in this upgrade. # Test Plan - ✅ fabric-tester (without expo-dev-client) - ✅ ci passed. there are some errors which are known: - updates e2e on android: as mentioned above - ios expo go on eas build: versioned expo go are broken on eas build m1 worker. this is also happening on main. - android client: no space left on the ubuntu worker. this is also happening on main. - ✅ bare-expo - ✅ unversioned expo go + ncl --------- Co-authored-by: Tomasz Sapeta <[email protected]>
show more ...
Upgrade to react-native 0.67 (#16038)# Why try to bump react-native version for sdk 45 # How - [x] upgrade package.json version to `[email protected]` - [x] apply changes from [upgrade
Upgrade to react-native 0.67 (#16038)# Why try to bump react-native version for sdk 45 # How - [x] upgrade package.json version to `[email protected]` - [x] apply changes from [upgrade helper](https://react-native-community.github.io/upgrade-helper/?from=0.66.4&to=0.67.2) - [x] since 0.67 upgrade to gradle 7 and remove `maven` plugin. ~this pr also migrate packages to use `maven-publish` plugin~ landed in separated pr https://github.com/expo/expo/pull/16080 - [x] [bare-expo][android] maven plugin from third-party: `react-native-appearance`. ~consider it's archived and deprecated, how to deal with this.~ since we are going to drop sdk 42, i've removed this dependency. - [x] [bare-expo][android] maven plugin from third-party: `react-native-shared-element`. https://github.com/IjzerenHein/react-native-shared-element/pull/90 - [x] [dev-launcher][android] having a `DevLauncherDevSupportManager.kt` for 0.67 and passing null to the new `SurfaceDelegateFactory`. simply to fix the build error first. - [x] [dev-menu][android] it will crash from missing libjsc.so in hermes mode. ~workaround to use jsc mode first~. fix pr: https://github.com/expo/expo/pull/16099 # Test Plan - bare-expo launch
[bare-expo] Change `cleartextTrafficPermitted` setting (#15381)# Why During `expo-dev-client` QA, I noticed that I wasn't able to connect to any application due to a cleartext traffic error on A
[bare-expo] Change `cleartextTrafficPermitted` setting (#15381)# Why During `expo-dev-client` QA, I noticed that I wasn't able to connect to any application due to a cleartext traffic error on Android 11+. This setting is by default set to true in react-native projects. # Test Plan - dev-client in bare-expo is now working on Android 11+ ✅
[splash-screen] setup resizeMode by resource instead of code (#14061)# Why save config-plugin to use dangerous mod for modifying some splash screen styles like `resizeMode` # How based on
[splash-screen] setup resizeMode by resource instead of code (#14061)# Why save config-plugin to use dangerous mod for modifying some splash screen styles like `resizeMode` # How based on #13457 we had the in-module `show` for splash screen. this pr additionally moves `resizeMode` and `statusBarTranslucent` into resource. with the help of gradle system, application could easily override the library default value. bare-expo changes in this pr is an example of that. # Migration Guide for expo-splash-screen < 0.12.0 The changes in the pr are backward compatible, the code for `expo-splash-screen` will still work as it used to be. However, if you are going to migrate as new style API, here are the steps: 1. Migrate your project from react-native-unimodules to expo-modules-core 2. Remove expo-splash-screen code from MainActivity ```diff --- a/android/app/src/main/java/com/helloworld/MainActivity.java +++ b/android/app/src/main/java/com/helloworld/MainActivity.java import com.facebook.react.ReactRootView; import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView; -import expo.modules.splashscreen.singletons.SplashScreen; -import expo.modules.splashscreen.SplashScreenImageResizeMode; - public class MainActivity extends ReactActivity { @Override protected void onCreate(Bundle savedInstanceState) { // This is required for expo-splash-screen. setTheme(R.style.AppTheme); super.onCreate(null); - // SplashScreen.show(...) has to be called after super.onCreate(...) - // Below line is handled by '@expo/configure-splash-screen' command and it's discouraged to modify it manually - SplashScreen.show(this, SplashScreenImageResizeMode.CONTAIN, ReactRootView.class, false); } ``` 3. Override default `resizeMode` and `statusBarTranslucent` in stings.xml ```diff --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <resources> <string name="app_name">sdk42</string> + <string name="expo_splash_screen_resize_mode">contain</string> + <string name="expo_splash_screen_status_bar_translucent">false</string> </resources> ``` # Test Plan check bare-expo android app to show the same splash screen before and after. # Checklist - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.io and README.md). - [x] Update configure-splash-screen https://github.com/expo/expo-cli/pull/3774 - [x] This diff will work correctly for `expo build` (eg: updated `@expo/xdl`). - [x] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin): https://github.com/expo/expo-cli/pull/3784
[ci] Fix broken workflows (#13931)# Why fix ci broken # How the broken on ios relates to cocoapods with `incremental_installation` which `installer.pod_project` might be nil if no new proj
[ci] Fix broken workflows (#13931)# Why fix ci broken # How the broken on ios relates to cocoapods with `incremental_installation` which `installer.pod_project` might be nil if no new project generated. the broken on android: - [detox] upgrade detox to 18.20.1 to support RN 0.64 - [detox] allow local server cleartext traffic that i disallowed from release build during RN upgrade - [detox] fix building error with react-native-screens - [react-native] cherry-pick upstream patch which prevent *.so not packed in aar. # Test Plan ci passed
[react-native] Upgrade to 0.64.2 (#13793)# Why Upgrade react-native to 0.64.2 for SDK 43 # How - [x] Fork `react-native-lab/react-native` from `react-native` 0.64-stable branch and cherry-
[react-native] Upgrade to 0.64.2 (#13793)# Why Upgrade react-native to 0.64.2 for SDK 43 # How - [x] Fork `react-native-lab/react-native` from `react-native` 0.64-stable branch and cherry-pick necessary patches from `exp-latest` - [x] Bump package versions: - react "16.13.1" → "17.0.1" - react-dom "16.13.1" → "17.0.1" - react-native "0.63.2" → "0.64.2" - react-test-renderer "~16.13.1" → "~17.0.1" - @types/react-native "~0.63.2" → "~0.64.12" - @babel/core "^7.0.0" → "^7.12.9" - metro-react-native-babel-preset "~0.59.0" → "~0.64.0" - jest "^25.2.0" → "^26.6.3" - [x] bare-expo: sync project setup from [upgrade helper](https://react-native-community.github.io/upgrade-helper/?from=0.63.2&to=0.64.2) - [x] Fix JS Error parsing error from [upstream change](https://github.com/facebook/react-native/commit/9edfc43aad2f68be8a37) - [x] Expo Go for iOS: - Folly.podspec -> RCT-Folly.podspec for old SDKs - Upgrade reanimated vendoring script to support RN 0.64 - Update reanimated install binding with RCTJSIExecutorRuntimeInstaller - [x] Expo Go for Android: - Fix hanging from loading bundle which ReactRootView not attached to ReactInstanceManager from [upstream change](https://github.com/facebook/react-native/commit/2c896d35782cd04c873aefadc947447cc30a7f60) Could use this command to make review easier: `git diff master...HEAD -- . ':!android/ReactCommon' ':!android/ReactAndroid/src'` # Test Plan - Bare Expo - [x] iOS runs - [x] Android runs - [x] Web runs - Expo Go with NCL - [x] unversioned QA on iOS - [x] unversioned QA on Android - [x] Could load SDK 42 project on iOS - [x] Could load SDK 42 project on Android - Shell app - [x] iOS build passed - [x] Android build passed
regenerate parts of bare-expo using expo eject and Expo config (#11429)* added icons to bare-expo app.json * expo eject * delete old icons * Update app.json * expo eject --no-install -p
regenerate parts of bare-expo using expo eject and Expo config (#11429)* added icons to bare-expo app.json * expo eject * delete old icons * Update app.json * expo eject --no-install -p android * update FBID * Update strings.xml * Update Info.plist * updated app.json to match ejected Info.plist * disable splash on android since it doesn't work * normalize manifest without eject sync * eject manifest sync * fix android splash screen * simplify gitignore
[expo-dev-menu][android] Integrating with the bare-expo (#9681)# Why Follow up to the https://github.com/expo/expo/pull/9473. # How Architecture is similar to iOS. - changed bare-icon
[expo-dev-menu][android] Integrating with the bare-expo (#9681)# Why Follow up to the https://github.com/expo/expo/pull/9473. # How Architecture is similar to iOS. - changed bare-icon - added `ShakeDetector` - added `ThreeFingerLongPressDetector` - added `DevMenuManager` - replaced `DevInternalSettings` with custom one to change bundler URL - created exported modules - `DevMenuInternalModule`, `DevMenuModule`, `DevMenuSettings` # Todo - [ ] ~~fix navigation buttons~~ will be done in a separate PR - [x] run `pod install`
[expo-notifications] Add support for custom icons and colors (#8035)# Why Fixes https://github.com/expo/expo/issues/7961#issuecomment-618868603. # How - added a way to set a custom icon fo
[expo-notifications] Add support for custom icons and colors (#8035)# Why Fixes https://github.com/expo/expo/issues/7961#issuecomment-618868603. # How - added a way to set a custom icon for Android notifications - added a way to set a custom default color for Android notifications as well as in runtime on per-notification basis # Test Plan Added a test case for custom-set color.
[expo-notifications] Fix notification sounds not applyable to notifications and channels (#8036)# Why Fixes https://github.com/expo/expo/issues/8032. Fixes custom notification sounds not being a
[expo-notifications] Fix notification sounds not applyable to notifications and channels (#8036)# Why Fixes https://github.com/expo/expo/issues/8032. Fixes custom notification sounds not being applied to notifications and/or channels. # How - fixed misuse of `object:verifyingClass:` in `EXNotificationBuilder` - added support for `res`-based notification sounds on Android - changed notification sound serialization to discern between `default` and `custom` (making the return value consistent across platforms) # Test Plan Added a test case to `test-suite` verifying that the sound is properly set.
add expo-facebook to bare-expo (#6958)* Add expo-facebook to bare-expo * Add facebook test shim to test-suite * Update bare-expo pods
Add bare project (#5263)* Created bare project * renamed bare project * Fixed build errors * [WIP] Run Android * Fixed android bare workflow builds * Update App.tsx * Update build
Add bare project (#5263)* Created bare project * renamed bare project * Fixed build errors * [WIP] Run Android * Fixed android bare workflow builds * Update App.tsx * Update build.gradle * Update .babelrc * Update index.js * Removed android libs - expo-task-manager - unimodules-task-manager-interface - expo-background-fetch - expo-location - expo-facebook * Unified the module exclusion * Update metro.config.js * Update metro.config.js * Update packages/expo-app-auth/android/build.gradle Co-Authored-By: James Ide <[email protected]> * Update package.json * [WIP] Change android package * [WIP] Change android package structure * changed bundle ID to `dev.expo.payments` * remove all custom config