React Native v0.68 released

React Native 0.68 brings performance improvements and bug fixes across Android and iOS. Key updates include bumping Gradle, Kotlin, and NDK versions for Android, and migrating more modules to the new architecture. iOS gains better ScrollView behavior and Cocoapods compatibility. Several deprecated APIs were removed, and new features like AnimatedValue improvements were added. The release also includes numerous fixes for crashes, rendering issues, and other bugs on both platforms.


v0.68 on GitHub (npm)


Release blog post


Changelog


v0.68.7

Fixed

  • Use logical operator instead of bit operation in Yoga (c3ad8 by @cuva)

Android specific

v0.68.6

Fixed

Android specific

v0.68.5

Fixed

v0.68.4

Changed

Android specific

Fixed

iOS specific

v0.68.3

Changed

Android specific

Fixed

  • Use monotonic clock for performance.now() (114d31feee)

Android specific

  • Logging a soft error when ReactRootView has an id other than -1 instead of crashing the app in hybrid apps (1ca2c24930 by @Kunal-Airtel2022)

v0.68.2

Changed

Fixed

Android specific

v0.68.1

Changed

Android specific

Fixed

Android specific

v0.68.0

Breaking Changes

  • CI moved to Node 16. (f1488db109 by @kelset). This change enforces Node >= 14 for React Native builds.
  • Bump Android Gradle Plugin to 7.0.1. (272cfe5d13 by @dulmandakh) This version of Android Gradle plugin enforces JDK 11 for Android builds. Do not upgrade to AGP 7.1 as it is not supported by this version of react-native.
  • Removed fallbackResource from RCTBundleURLProvider API (0912ee179c) by @philIip

New Architecture

If you are interested in enabling the new architecture, please refer to the dedicated documentation.

Android specific

  • Setup a newArchEnabled property to Opt-in the New Architecture in the template (8d652fba4c by @cortinico)

iOS specific

Added

Android specific

  • Added DoNotStripAny proguard rules (48318b1542 by @ShikaSD)
  • Add new API in ScrollView and HorizontalScrollView to process pointerEvents prop. (48f6967ae8 by @ryancat)
  • Add accessibilityLabelledBy props (36037fa81b by @grgr-dkrk)
  • Added missing constructor to WritableNativeArray (c68c47d2ba by @piaskowyk)
  • Add new API for custom fling animator to provide predicted travel distance for its fling animation. (fe6277a30d by @ryancat)
  • Adding new API onChildEndedNativeGesture to the RootView interface to let its implementations notify the JS side that a child gesture is ended. (9b33c31ee0 by @ryancat)
  • Make the reactNativeArchitectures property more discoverable (0f39a1076d by @cortinico)
  • Added isAccessibilityServiceEnabled to get if accessibility services are enabled (c8b83d4e0b by @grgr-dkrk)
  • Add bundleForVariant option (d2c10da5d5 by @grit96)
  • Add ACCEPT_HANDOVER, ACTIVITY_RECOGNITION, ANSWER_PHONE_CALLS, READ_PHONE_NUMBERS & UWB_RANGING to PermissionsAndroid (4b25a0aaa0 by @iBotPeaches)

iOS specific

Changed

Android specific

iOS specific

Fixed

Android specific

  • Enable cliPath to have an absolute path value (5d560ca99f by @Krisztiaan)
  • Make sure configureNdkBuild* tasks are depending on preBuild (2fdbf6a10f by @cortinico)
  • Added a null check to native.value in Switch to fix https://github.com/facebook/react-native/issues/32594 (8d50bf1133 by @jonathanmos)
  • Fix overflowInset calculation by using transform values (8aa87814f6 by @ryancat)
  • Add missing sources jar into published android artifacts (384e1a0c7b by @Kudo)
  • Fix math for detecting if children views are in parent's overflowInset area. (45244ebce2 by @ryancat)
  • Fixed empty screen after retrying a BundleDownloader failure in dev mode (c8d823b9bd by @samkline)
  • Fix crash from ScrollView that occurs while reporting an error from JS (2151d11527 by @JoshuaGross)
  • Enable hitSlop to be set using a single number. (589b129581 by @javache)
  • Fix fling and snap with recycler viewgroup where fling to the end of scrollable distance when it goes over current rendered children views. (ead7b97944 by @ryancat)
  • Fixed edge case for quick small scrolls causing unexpected scrolling behaviors. (f70018b375 by @ryancat)
  • Fix crash on ReactEditText with AppCompat 1.4.0 (e21f8ec349 by @cortinico)
  • Do not .lowerCase the library name when codegenerating TurboModule Specs (28aeb7b865 by @cortinico)
  • Enable hitSlop to be set using a single number. (a96bdb7154 by @javache)
  • Updated TextInput prop types to accomodate for new autoComplete values (9eb0881c8f by @TheWirv)
  • Don't reconstruct app components https://github.com/facebook/react-native/issues/25040 (fc962c9b6c by @Somena1)
  • Do NOT skip the first child view in the scroll view group when measuring the lower and upper bounds for snapping. (61e1b6f86c by @ryancat)
  • Fix crash when a Switch is initialised with both backgroundColor and thumbColor. (456cf3db14 by @smarki)
  • Fix devDisabledIn not working with multiple productFlavors (055ea9c7b7 by @grit96)
  • Revert ReactScrollView to use Context instead of ReactContext in the constructor to be less restrictive. (7b77cc637e by @ryancat)
  • Fix onPress event for nested Text in RN Android (e494e4beb6 by @mdvacca)
  • Fix enableVmCleanup not working for apps with product flavors (a2b5e4cd82 by @cortinico)
  • Prevent NPE on ThemedReactContext (f1b5fe1d3e by @sshic)
  • fix: jvm 11 error message from ReactPlugin.kt and react.gradle (4e947ecb2d by @nomi9995)

iOS specific

  • ScrollView: Respect contentInset when animating new items with autoscrollToTopThreshold, make automaticallyAdjustKeyboardInsets work with autoscrollToTopThreshold (includes vertical, vertical-inverted, horizontal and horizontal-inverted ScrollViews) (49a1460a37 by @mrousavy)
  • Prevent RCTConvert error for allowed null blob types (e1b698c5f2 by @habovh)
  • Migrate ScreenshotManager from NativeModule to TurboModule (b13e41d98e by @p-sun)
  • Fix usage of cocoapods with --project-directory flag and new arch (9e7d91f2fc by @danilobuerger)
  • Post RCTContentDidAppearNotification with new arch (75105e692c by @danilobuerger)
  • Remove absolute paths from pods project (42b01a32a1 by @danilobuerger)
  • Respect RCTSetDefaultFontHandler chosen font (89efa1a0c1 by @danilobuerger)
  • Fixed duplicated UUIDs problem during pod install phase. (f595a4e681)
  • Fix Time.h patch not being applied when running pod install --project-directory=ios (60cef850bd by @tido64)
  • Fix WebSocket control frames having payloads longer than 125 bytes (86db62b7a8 by @asmeikal)
  • Stop RedBox from appearing for LogBox handled errors (9d2df5b8ae by @liamjones)
  • Enable hitSlop to be set using a single number. (3addafa525 by @javache)
  • Fix __apply_Xcode_12_5_M1_post_install_workaround failing when one of the Pods has no IPHONEOS_DEPLOYMENT_TARGET set (9cd4092336 by @Yonom)
  • This is a quick speculative fix since we know CFRunLoopPerformBlock does not push/pop an autorelease pool. (3fff164dfa by @christophpurrer)
  • Fixed RCTImageLoaderTests (1542f83527 by @philIip)
  • Fix Rosetta2 CocoaPods warning on Apple Silicon (e918362be3 by @oblador)
  • Fix pod install --project-directory=ios failing due to wrong path to React-Codegen (ebb26cf2e4 by @tido64)

Deprecated

Android specific

Removed

iOS specific

  • Remove RCTUIManagerObserver from RCTNativeAnimatedTurboModule (e9ed115bab by @p-sun)