React Native v0.69 released

React Native 0.69 introduces support for React 18, improves performance, and adds new features like custom sounds for local notifications on iOS. Key changes include upgrading to Hermes 0.11, enhancing the Android Gradle plugin, and improving TypeScript definitions. Several bugs were fixed across iOS and Android platforms, including issues with animations, accessibility, and UI rendering. The release also includes some breaking changes and deprecations to be aware of when upgrading.


v0.69 on GitHub (npm)


Release blog post


Changelog


v0.69.12

Changed

iOS specific

  • [0.69] Use Content-Location header in bundle response as JS source URL (#37501) (367fc7ad52 by @robhogan)

Fixed

Android specific

  • Prevent crash in runAnimationStep on OnePlus and Oppo devices (#37487) (4db7a10e25 by @hsource)

v0.69.11

Fixed

iOS specific

  • Make 0.69 compatible with Xcode 15 (thanks to @AlexanderEggers for the commit in main) (37e8df1cdc)

v0.69.10

Fixed

Android specific

v0.69.9

Changed

iOS specific

Fixed

iOS specific

v0.69.8

Fixed

Android specific

v0.69.7

Fixed

v0.69.6

Changed

  • Bump version of promise from 8.0.3 to 8.2.0, enabling Promise.allSettled (951538c080 by @retyui)

Fixed

Android specific

iOS specific

  • Fix the way the orientation events are published, to avoid false publish on orientation change when app changes state to inactive (7d42106d4c by @lbaldy)
  • Fix React module build error with swift integration on new architecture mode (3afef3c167 by @Kudo)

v0.69.5

Changed

Android specific

  • Replaced reactnativeutilsjni with reactnativejni in the build process to reduce size (54a4fcbfdc by @SparshaSaha)

Fixed

v0.69.4

Changed

Android specific

v0.69.3

Fixed

iOS specific

  • Fix React-bridging header not found for third party modules (fa2acc32d1 by @Kudo)

v0.69.2

Changed

iOS specific

  • Hermes pod: change logic to use the hermes tag to set the pod source correctly (46a9edc854 by @kelset)
  • Fix the race condition when calling readAsDataURL after new Blob(blobs) (bd12e41188 by @wood1986)
  • Make sure that Flipper pods are not installed when creating a release build (23accbf58d by @cipolleschi)

v0.69.1

Changed

iOS specific

Fixed

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

iOS specific

v0.69.0

Breaking

Added

Android specific

iOS specific

  • Prepare a method in the AppDelegate to control the concurrentRoot. (8ac8439e0d by @cipolleschi)
  • hotkeysEnabled property is added to RCTDevMenu which allows enabling/disabling hotkeys that triggers developer menu popup (1a1a304ed2)
  • Allow modifying iOS image cache limits (61b013e7ad by @danilobuerger)
  • Add dismissActionSheet method to ActionSheetIOS (64ebe5bbdd by @gabrieldonadel)
  • Integrated the accessibilityLanguage prop to all the available components. The prop is available for any platform but it will work only on iOS. (7b05b091fd by @dgopsq)
  • Support running animations with AnimatedColor with native driver (49f3f47b1e by @genkikondo)

Changed

Android specific

iOS specific

  • Use pre-built HermesC if available in current React Native release (644fe430fd by @hramos)
  • When building Hermes from source, the filesystem will now be prepared using the new hermes-utils.js scripts, outside of CocoaPods (aaa01f7710 by @hramos)
  • Expose scheduler through RCTSurfacePresenter (614aa86916 by @cortinico)
  • Adopt UIGraphicsImageRenderer API (d70d7fd0b3 by @matrush)
  • Build Hermes from source when Hermes is used (bb01b75637 by @hramos)
  • Update CodeGen scripts to accept custom node executable (323db75c36 by @cipolleschi)
  • Fixed the fallback behavior when the .xcode.env file is missing, actually using the old find-node-for-xcode.sh script (705c6f57d6 by @cipolleschi)
  • Adding a link in a message for the users. (2c52131f5e by @cipolleschi)
  • Bump ruby to 2.7.5 (2c87b7466e by @danilobuerger)
  • This PR removes the find-node.sh scripts and replaces it with an .xcode.env file that is sourced by the script phases that needs it. The .xcode.env file is versioned: to customize a local environment, an unversioned .xcode.local.env can be used. (0480f56c5b by @cipolleschi)
  • Update PushNotificationIOS.checkPermissions to include iOS 10+ notification settings. (17ecd2fb5b)
  • Enable SonarKit in React-Core when the configuration is 'Debug' (b5343a6b0d by @cipolleschi)
  • When Hermes is enabled, the Hermes Engine will be built from source instead of using the pre-built hermes-engine CocoaPod. (12ad1fffe8 by @hramos)
  • Replaced folly::Optional with std::optional from C++17 in Objc module generator. (45e2941367 by @philIip)
  • Removed methodName parameter that was used only for a warning message and moved the warning parameter to be calculated inline. (cfb11ca2f6)
  • Fix the crash caused by nil partialLoadHandler (46bc521513)
  • Synchronously render cached images (189c2c8958)
  • Updated Flipper-Glog to 0.5.0.4 (cd60ffdb62)
  • Add function to report early js errors (1804951595 by @sshic)

Deprecated

  • Deprecate the use of react-native/jest/preprocessor.js by external projects (c1e9aa9a27 by @motiz88)
  • Deprecate the Promise.prototype.done method and log a warning when it's called in development. (35800962c1 by @motiz88)

iOS specific

iOS specific

  • Removed lint restricting DynamicColorIOS to only two properties (13b0b06522)

Fixed

Android specific

iOS specific

Security