Files
react-native/CHANGELOG.md
T
Fabrizio Cucci adb688aa1c Correct three entries in the v0.88.0-rc.0 changelog (#58421)
Summary:
Pull Request resolved: https://github.com/react/react-native/pull/58421

Three corrections to the `v0.88.0-rc.0` section of `CHANGELOG.md`.

1. Remove the `Touchable` root export entry. That removal already shipped in `v0.87.0` under a cherry-picked commit, so it is not new in 0.88 and its entry is a duplicate.

2. Reword the iOS `RCTArrayBuffer` entry. It sits under Breaking but read as a plain addition, which hid the part that actually breaks. Codegen now emits `RCTArrayBuffer *` for TurboModule methods taking or returning an `ArrayBuffer`, where 0.87 shipped `NSMutableData *` for both arguments and returns, so modules that adopted ObjC `ArrayBuffer` support in 0.87 stop compiling until they update. `RCTArrayBuffer` derives from `NSObject` rather than `NSData`, so there is no implicit conversion to soften the change.

3. Move the Android `ArrayBuffer` entry from Fixed to Added, and rewrite it. Its source commit carries two `Changelog:` blocks and the generator took the category from the first and the text from the second, leaving a sentence fragment with no verb. Java `ArrayBuffer` support is itself new in this release, so the use-after-free the commit hardens against never reached a published version and a Fixed entry would describe a bug no user experienced. The borrow contract is API semantics for a new type, so the entry now sits with the other two Java `ArrayBuffer` entries under Added.

Both rewritten entries are also tightened from three sentences to two. At 429 and 324 characters they were the two longest entries in the file; the longest is now 321, against a p90 of 149 for the section and a 406-character precedent in v0.87.0.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D119308634

fbshipit-source-id: 7ca50aa3f506ed2d5ef74c834d5a1248fa4049ae
2026-09-09 07:24:20 -07:00

395 KiB

Changelog

v0.88.0-rc.0

Breaking

iOS specific

  • TurboModules: Codegen now emits RCTArrayBuffer * for TurboModule methods taking or returning an ArrayBuffer, replacing NSMutableData *. Modules that adopted ObjC ArrayBuffer support in 0.87 stop compiling until they update (11f9a7f449 by Kamil Paradowski)

Added

  • C++: Add <React/FeatureFlags.h> umbrella header as the public entry point for react/featureflags (f970054a8a by @j-piasecki)
  • C++: Add <React/RendererBridging.h> umbrella header as the public entry point for react/renderer/bridging (5b680c5f9f by @j-piasecki)
  • C++: Add <React/Timing.h> umbrella header as the public entry point for react/timing (70f172d29f by @j-piasecki)
  • C++: Added missing mutex include in HostTarget.h (3f8f5c216a by @etodanik)
  • Feature Flags: Add enableImageTransparentTintColor feature flag (c5bd054983 by @coado)
  • JavaScript API: Deprecate 'react-native/Libraries/Core/InitializeCore'. Use 'react-native/setup-env' instead. (554baba159 by @huntie)
  • PlatformColor: Support a lazy raw color fallback for PlatformColor when native tokens fail to resolve (65008fcdd0 by @Abbondanzo)
  • React Native DevTools: Experimental performance screenshots support and Page.captureScreenshot is added to the EXPERIMENTAL channel (4be68ef785 by @huntie)
  • React Native DevTools: Support for inspecting WebSocket events in the Network panel is added to the CANARY channel (713ae6b1b9 by @huntie)
  • React Native DevTools: Users and agents can now capture app screenshots via the Page.captureScreenshot command (00efc0a440 by @huntie)
  • Text: Add object syntax for fontVariationSettings (376b99ff14 by @evankatz14)
  • TypeScript: Add isInstalled() and clearAllLogs() to the LogBox TypeScript declarations (a69badd468 by @Abbondanzo)
  • TypeScript: Add missing strictMode prop to FlatList TypeScript types (3e2403327c by @drhops)
  • TypeScript: Add TypeScript declarations for requestIdleCallback and cancelIdleCallback (c086431a4b by @Critteros)
  • VirtualizedList: Add missing ListItemComponent type to VirtualizedList props (5306e9229c by @aravi365)

Android specific

  • Feature Flags: Add enableMountingCoordinatorPullModelAndroid feature flag (ece0efe837 by @coado)
  • Network Inspection: Expose network event reporting to third-party networking stacks as an unstable API (83d0be8958 by @huntie)
  • Networking: Send app name and version as the default User-Agent header for network requests, matching iOS (04e50d540d by Calvin Liu)
  • Renderer: Add inert Java plumbing (PullTransactionMountItem, FabricUIManager.onTransactionAvailable) for the pull model (6515647d94 by @coado)
  • Renderer: Wire the pull-model mounting path in C++ behind enableMountingCoordinatorPullModelAndroid (9da1a01153 by @coado)
  • Text: Add fontVariationSettings support for <Text> (19f7d144b9 by @evankatz14)
  • TextInput: Add fontVariationSettings support for TextInput (a688608090 by @evankatz14)
  • TurboModules: Add ArrayBuffer, the Java representation of a JS ArrayBuffer for TurboModules, with an explicit byte-ownership contract (5bb9639594 by Kamil Paradowski)
  • TurboModules: Add ArrayBuffer support to Java TurboModules (5fb3ebce1a by Kamil Paradowski)
  • TurboModules: Borrowed ArrayBuffer bytes are scoped to the synchronous call that received them. ArrayBuffer.bytes and ArrayBuffer.size throw IllegalStateException afterwards, and a ByteBuffer already obtained from bytes is unchecked and reads freed memory, so copy with ArrayBuffer.arrayBufferWithCopiedBytes to keep them (d84c13d511 by @christophpurrer)

iOS specific

  • Assets: Use asset catalog for ios images (26769a00b2 by @janicduplessis)
  • CocoaPods: Add a React-cxxstableapi dependency to third-party New Architecture pods so they can resolve React Native's C++ API guard headers (d3daf111e0 by @coado)
  • Legacy Architecture: Allow consumers to opt into RCT_REMOVE_LEGACY_MODULE_INTEROP and RCT_REMOVE_LEGACY_COMPONENT_INTEROP from CocoaPods and SwiftPM. Both default to off and will become the default in a future release (b933d18177 by @christophpurrer)
  • SceneDelegate: Add SceneDelegate lifecycle support (7bfe32fd33 by @artus9033)
  • Styles: Print warning advice when using shadow* styles without providing a solid background color (eb4d3892ab by @hannojg)
  • SwiftPM: npx react-native spm command + SwiftPM package-generation tooling (opt-in; CocoaPods stays supported) (47fad096a4 by @chrfalch)
  • TurboModules: Reject ArrayBuffer as a TurboModule EventEmitter payload on all platforms (ab2ea649e6 by @christophpurrer)

Changed

  • Accessibility: Automatically set accessible prop when role prop is set (except none/presentation) (4043e818f1 by @mdjastrzebski)
  • Babel: Platform.OS and Platform.select(...) inlining in react-native/babel-preset now requires the inlinePlatform option in addition to platform (f63b2a1cb5 by @robhogan)
  • Babel: Inline Platform.OS and Platform.select(...) for React Native Platform imports during the Babel preset, covering some cases that were previously left un-inlined. (40c06121a1 by @robhogan)
  • Build: Add React Native Maven pull-through cache fallback for prebuilt artifacts. (3bfb277fec by @coado)
  • Hermes: Bump hermes-v1 to 260318099.0.1 (b113cf5864 by @fabriziocucci)
  • Legacy Architecture: Core components (ActivityIndicatorView, ModalHostView, PullToRefreshView, SafeAreaView, Switch) no longer report legacy RCT-prefixed names in their view configs (904812016f by @christophpurrer)
  • Metro: Bump Metro to 0.87.0 (fe511aba7c by @robhogan)
  • React Native DevTools: When using the fallback flow for launching DevTools (desktop app fails to launch), Microsoft Edge will not be attempted. DevTools will open as a standard window in the default browser. (9efcdfc2b4 by @huntie)
  • Runtime: RuntimeScheduler now clears pending tasks and rendering updates when a task throws (14184ec643 by @javache)
  • Runtime: Async CallInvoker work is now buffered alongside callable module calls, so it no longer runs before the JS bundle has finished evaluating (3ca6ea3eca by @javache)
  • Styles: Remove experimental_ prefix from backgroundSize, backgroundPosition and backgroundRepeat (7844386bbd by @intergalacticspacehighway)
  • UIManager: UIManager::startSurface and UIManager::setSurfaceProps now take moduleName and props by value (85a81818c6 by @javache)

Android specific

  • Dev Server: Removed FileIoHandler packager message handlers (e3598fac12 by @javache)
  • Image: ImageProps make tintColor an std::optional to support color transparent (0) with props 2.0 (f535c97904 by @hannojg)
  • New Architecture: Deprecate fabricEnabled on ReactFragment (c7d62a125c by @javache)

iOS specific

  • Build: Prebuilt artifacts: ReactNativeHeaders is pure-RN; third-party deps headers ship in the new ReactNativeDependenciesHeaders.xcframework sidecar (and the ReactNativeDependencies pod), published standalone to Maven (6aa147f6c9 by @chrfalch)
  • CocoaPods: Cache Maven repository requests (artifact existence probes, nightly metadata) during pod install to avoid re-issuing identical requests on every podspec evaluation (88feed55c0 by @coado)
  • Dev Server: Declare RCTBundleURLProviderAllowPackagerServerAccess unconditionally (no-op when packager support is compiled out) (54656471a5 by @ramonclaudio)
  • Dev Server: Make iOS preserve dev bundle as a temp file on par with Android implementation (e2a4c68449 by @tjzel)
  • Legacy Architecture: Compile out RCTGetModuleClasses/RCTRegisterModule and skip static module registration when both RCT_REMOVE_LEGACY_MODULE_INTEROP and RCT_REMOVE_LEGACY_COMPONENT_INTEROP are defined (5d62ca4296 by @christophpurrer)
  • RNTester: Update RNTester and HelloWorld for SceneDelegate lifecycle behavior (609bdddabf by @artus9033)
  • StatusBar: Downgrade RCTStatusBarManager error to a warning when UIViewControllerBasedStatusBarAppearance is YES (9e71c443ac by @shwanton)
  • SwiftPM: Download SwiftPM prebuilt artifacts from the React Native Maven mirror first, with Maven Central as fallback (c2dac6abcc by @coado)
  • TextInput: Adds localization for Text Input default return key types (507023622b by @cipolleschi)

Deprecated

Android specific

Fixed

  • Accessibility: Fix accessibility list role conversion in C++. (aa96fa64d1 by @Abbondanzo)
  • Animated: addListener fires again for natively driven Animated values derived with add/subtract/multiply/divide/modulo/diffClamp/interpolate (ce621bbd5b by @dennytosp)
  • Animated: Add ReactRevisionMerge source to the AnimationBackendCommitHook (ca53751780 by Bartlomiej Bloniarz)
  • Animated: Perform AnimationEndSync commits on the React revision (7d855222cd by @j-piasecki)
  • Babel: Apply normal preset defaults when invoked without a Babel API or options object. (9ad8c830bd by @OskarEichler)
  • Babel: Detect trivia-separated React.createClass calls in optimized preset configuration. (619c8aed24 by @OskarEichler)
  • Babel: Inline the last duplicate key from static Platform.select object literals. (bbdeb7dc1d by @OskarEichler)
  • Babel: Keep private class transforms enabled for profiles that lower classes. (0c0e9f0840 by @OskarEichler)
  • Blob: Retain Blob reference in FileReader during pending native reads to prevent premature deallocation by BlobCollector (568eaa6b69 by heecheolman)
  • C++: Fixed MSVC compilation of NativeDOM.cpp by removing backticks (e979b0ef8d by @etodanik)
  • Codegen: Codegen no longer hangs on type aliases that shadow CodegenTypes member names (42be7452d5 by @sbaiahmed1)
  • Codegen: pass the target platform when generating schemas so platform-specific sources (e.g. NativeModule.ios.ts) resolve correctly (f46ace878a by @Gregoirevda)
  • Codegen: React-native-codegen build.sh on AppleVirtIOFS volumes (27b5f761b1 by @etodanik)
  • Codegen: Run native component codegen when Flow type arguments are separated by trivia. (0d64c9a13a by @OskarEichler)
  • DeviceInfo: Refresh DeviceInfo constants on each read (9d10e39d32 by @artus9033)
  • DOM API: Resolve native EventTarget names that overlap Object prototype properties. (621ced78e9 by @OskarEichler)
  • EventEmitter: Support EventEmitter event names that overlap Object prototype properties. (790289c1d6 by @OskarEichler)
  • FileReader: Fire loadstart, throw InvalidStateError on overlapping reads, and expose FileReader.error as a DOMException. (544141efab by @Abbondanzo)
  • FileReader: Keep FileReader in the correct state after aborting a read. (e92816c5a5 by @fallintoplace)
  • Gradients: Fix radial-gradient at <position> being ignored (and corrupting the size) when it follows an explicit size (66f27eb93e by @Titozzz)
  • Gradients: Reject percentage radii for circle radial gradients, matching web behavior (5821fcaf5d by @Titozzz)
  • Image: Preserve Image source headers when using crossOrigin or referrerPolicy (08c7781e5a by @mfkrause)
  • IntersectionObserver: Sort IntersectionObserver threshold arrays numerically. (ee32dfc8b9 by @OskarEichler)
  • JavaScript API: Additional Props/Style types are now defined as interface, fixing compatibility with certain DefinitelyTyped packages (593ae0258d by @huntie)
  • JavaScript API: Fix requestIdleCallback timeout option being ignored (0a1a06c5ea by @pakerwreah)
  • Networking: Fix XMLHttpRequest.setRequestHeader to append duplicate headers per spec (58bf844967 by @zmunm)
  • Networking: Preserve buffered and empty Cxx WebSocket frames and serialize writes. (92cd588a5c by @OskarEichler)
  • Performance: Round instead of truncate when converting a DOMHighResTimeStamp back to nanoseconds, so HighResTimeStamp and HighResDuration round trips are exact (c467843ed0 by @GijsWeterings)
  • ScrollView: Fix maintainVisibleContentPosition with rapid data updates (https://github.com/react/react-native/issues/53542) (5cb65244dc by @kulkarni-rohan)
  • Styles: Fix transformOrigin string parsing for decimal percentage and pixel values. (0a60ec9dea by @MayankSharma-2812)
  • Styles: Preserve negative values in transformOrigin strings. (4501979c1a by @fallintoplace)
  • StyleSheet: Use cached results for already normalised colors (092734772a by @riteshshukla04)
  • Text: Fix Text truncation when string contains NULL character \u0000 (https://github.com/react/react-native/issues/24129) (5906cfb060 by @kulkarni-rohan)
  • Text: Prevent Text from mutating the accessibilityState prop (c300f84f2c by @mfkrause)
  • TextInput: blur focused input before unregistering it on unmount, fixing the Android soft keyboard staying open after navigating away from a focused input (d13d2b0a5f by @sidorchukandrew)
  • TurboModules: TurboModule event emitters no longer throw when an event is emitted before the emitter callback is installed (4bf5575490 by @christophpurrer)
  • TypeScript: Fix TS2883 when building declaration files for libraries that use codegenNativeComponent due to unreachable NativeComponentType<T> (391723e869 by @artus9033)
  • VirtualizedList: Ignore stale viewability updates while enforcing minimum view time (1c4a46f4e3 by @cipolleschi)
  • VirtualizedList: Invalidate list content length when orientation changes. (e59a1d252c by @fallintoplace)
  • VirtualizedList: Prevent zero-sized lists from reporting viewable items (c057b1fa01 by @Abbondanzo)

Android specific

  • Accessibility: Fix crash when accessibilityRole="tabbar" is used on Android (a4733b1ca1 by @aravi365)
  • Build: Export jserrorhandler headers in the reactnative prefab so external consumers of cxxreact/ErrorUtils.h can build. (f2a6db9fce by @alanjhughes)
  • Dev Menu: Persist Change Bundle Location debug server host changes (d2ac190411 by @Phecda)
  • Dev Server: Stop dev server WebSockets from throttling bundle downloads and other dev server requests (cc5dd59742 by @javache)
  • Gradle: Use the JVM temp dir instead of a hardcoded /tmp for the build-from-source container project dirs, fixing Gradle configuration on Windows (908872a68e by @kraenhansen)
  • i18n: Detect RTL from the active locale instead of an arbitrary installed one (e46189e1e1 by @zoontek)
  • Image: Deprecate the String? overloads of ReactImageManager#setDefaultSource and ReactImageManager#setLoadingIndicatorSource (3a95e0e93c by @hannojg)
  • Image: Fix Image.getSize() and Image.getSizeWithHeaders() rejecting data: URIs (8cfde6d083 by Cole Huntley)
  • Image: Fix crash when setting a percentage borderRadius on Image (f2a250ad89 by @sbaiahmed1)
  • Renderer: Fix IllegalStateException in SurfaceMountingManager.removeViewAt (3f553d76bc by @cortinico)
  • Renderer: Pull model mounting is now deferred until the root attaches (2f5a8332cf by Bartlomiej Bloniarz)
  • Runtime: Prevent a startup crash when the WindowMetrics API is missing on an inconsistent Android runtime (3f9cc72309 by @gooddev97)
  • Runtime: Report a fatal JS error instead of aborting the process when reading the error's extra data fails (41b375eb04 by generatedunixname1608173377072046)
  • Styles: Fix crashes when outlineColor is provided as a numeric color value (53b933feca by HURRAEY)
  • Text: Fix Text with adjustsFontSizeToFit being clipped when container height decreases dynamically (63064687e2 by @imsankalp)
  • Text: Keep inline views inside Text from shrinking with Android system font scale (551d12a787 by @TorinAsakura)
  • TextInput: Ellipsize long single-line TextInput placeholders to match iOS (7f18ad0f84 by @kosmydel)
  • TextInput: Show the soft keyboard when a long-press starts text selection in TextInput (9195e52706 by @idoyana)
  • View: Resetting border widths no longer clips children in rounded overflow-hidden views. (146aaac7ee by @RealBhupesh)
  • ViewManagers: Fix Double prop defaults being rounded to float precision in generated ViewManager delegates (2c4278d83b by @dennytosp)
  • ViewManagers: Fix RuntimeException: Unrecognized type: class com.facebook.yoga.YogaValue when a ViewManager implements a DimensionValue prop with ReactProp (091ac613ce by @dennytosp)
  • ViewManagers: Fix RuntimeException: Unrecognized type: class java.lang.Float when a ViewManager implements a nullable float prop (WithDefault<Float, null>) with ReactProp (8d23b14da6 by @dennytosp)
  • VirtualizedList: Fix ListMetricsAggregator cell metrics not clearing on orientation change and guard against divide-by-zero (3b90423076 by @aarononeal)

iOS specific

  • Accessibility: Views with checkbox, radio, combobox, dropdownlist, menuitem, spinbutton, tab, option, searchbox, slider and treeitem roles are now reachable via Full Keyboard Access (05b97de823 by @fkgozali)
  • Accessibility: VoiceOver text readout when changing elements asynchronously (082d787a1e by @coolsoftwaretyler)
  • Appearance: RCTAppearance.setColorScheme() no longer crashes CarPlay apps when connectedScenes contains a non-UIWindowScene (00a5aa9223 by @SnowingFox)
  • Assets: Asset catalog imagesets paired wrong files for assets with non-standard scales (74b984729b by @janicduplessis)
  • Blob: Fix intermittent native crash (CoreServices/UTType XPC) in RCTBlobManager when deriving blob names for network responses (671705dfb1 by @1337mus)
  • Codegen: Codegen now discovers third-party component libraries without an iOS configuration. (917d97eb12 by @RealBhupesh)
  • Codegen: Fixed intermittent "Cycle in dependencies between targets 'ReactCodegen' and ..." Xcode build error that occurred on incremental iOS builds when an app's codegenConfig.jsSrcsDir contained no Native*/*NativeComponent spec files. (0b0eb8d012 by @Levin-nik)
  • Dev Server: Create the RCTDevSettings packager connection in initWithDataSource so instances built that way also receive packager commands (e71fc4e32f by @alanjhughes)
  • DeviceInfo: Refresh DeviceInfo constants after interface dimension changes (b743a8a35b by @artus9033)
  • Hermes: Set always_out_of_date on hermes-engine's Replace Hermes script phase (d89c432659 by @ramonclaudio)
  • i18n: Align text to the right by default in RTL when textAlign is not set, matching Android (1b92b02f99 by @zoontek)
  • Image: aria-* state props are no longer ignored when accessibilityState is also present (c3caea9b5e by @mdjastrzebski)
  • LogBox: Prevent RedBox auto-retry from reloading while backgrounded (b587763f40 by @Abbondanzo)
  • PushNotificationIOS: Fix main-thread watchdog hang in PushNotificationIOS.setApplicationIconBadgeNumber (6f6efed3e7 by @christophpurrer)
  • ReactHost: Forward host:didInitializeRuntime: callback to user delegate in RCTReactNativeFactory (98dc7d6423 by @zhongwuzw)
  • Renderer: Log missing native component registrations on iOS and Android (ef28a2c9d5 by @alanleedev)
  • Renderer: Report a RCTViewComponentView child-index mismatch instead of raising NSRangeException while formatting the assert message (1291d7ce8e by @dongdongbh)
  • Renderer: Reset EmptyLayoutMetrics in RCTViewComponentView prepareForRecycle so recycled views clear UIView.hidden (711a9a5e07 by @kosmydel)
  • Runtime: Avoid an unhandled exception in bridgeless ReactInstance::registerSegment when an on-demand JS segment file is missing from the cache at lazy-load time (fff4994af8 by generatedunixname1608173377072046)
  • ScrollView: Prevent recycled ScrollViews from retaining automatic keyboard inset behavior. (e0aa7a8b0a by @stareezy-1)
  • ScrollView: Programmatic (non-user-initiated) scrolls no longer cancel active touches in enclosing scroll views (06eb1fefab by @tjzel)
  • Styles: Render outlineStyle: 'dotted' and 'dashed' on views without border radii (9f31d5ae9f by @neutronm)
  • SwiftPM: stop baking an absolute, machine-specific HERMES_CLI_PATH into the app's pbxproj; resolve hermesc at build time instead (fcbeda1109 by @chrfalch)
  • Switch: Restore paperComponentName: 'RCTSwitch' to fix testing-library/react-native queries (38fd9d57df by @christophpurrer)
  • Text: Correctly classify extralight fonts as UIFontWeightUltraLight in RCTGetFontWeight (3b5d0a6526 by @vonovak)
  • Text: Prevent the final line or trailing glyph of text from being clipped due to pixel-grid rounding precision loss (5e40a1771e by @fabriziocucci)
  • TextInput: Preserve TextInput selection color when changing multiline. (56c284e152 by @fallintoplace)
  • TextInput: update the keyboard when keyboardType/returnKeyType change while the input is focused (new architecture parity with the legacy architecture) (0f1bdddfb3 by @NoahDorfman00)
  • Touch Handling: Fix debug-only crash in RCTSurfaceTouchHandler from UITextView text-selection gestures on iOS 17+ (433e79d2f4 by @hryhoriiK97)
  • TurboModules: Include the module and method name in exceptions rethrown from async and void TurboModule calls (253a84c8d1 by @christophpurrer)
  • TurboModules: Pass a top-level JS null TurboModule argument to Objective-C as nil instead of NSNull when enableModuleArgumentNSNullConversionIOS is enabled (ea291d7422 by @christophpurrer)

Security

v0.87.1

Added

iOS specific

  • SwiftPM: Added hard fail and clear error message when an autolinking plugin host is referenced as a dependency (90a539c92d by @chrfalch)

Changed

Fixed

  • Animated: Animated.Value.addListener() types its callback payload as {value: number} rather than any (3eab03df4c by @huntie)
  • Animated: Animated.event() is typed as an event handler rather than any (3eb330a365 by @huntie)

iOS specific

  • Cocoapods: Keep the quotes on header search paths containing spaces in add_rn_third_party_dependencies (71c6bfbfdc by @Kudo)
  • SwiftPM: Reject colliding or invalid spm.modules names instead of silently dropping a module from the build (39cd1dfc4c by @chrfalch)
  • SwiftPM: Resolve Swift manifest naming collisions (962aeec5e5 by @chrfalch)
  • SwiftPM: Fixed not reading spm.name from react-native.config.js when scaffolding the Swift manifest (482acee824 by @chrfalch)
  • SwiftPM: Removed unused field spm.modules.publicHeaderFiles from react-native.config.js's spm section (5168f5f831 by Christian Falch)
  • SwiftPM: SwiftPM pipeline now reads react-native.config.js with default exports correctly (ed76640ba6 by @chrfalch)
  • SwiftPM: Created constants for internal SwiftPM packages so that we can create guards to avoid collisions (d36aa4961d by @chrfalch)
  • SwiftPM: Set SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG when injecting SPM (4433cdbe62 by @radoslawrolka)
  • SwiftPM: Recover React-Core-prebuilt configuration swaps that were interrupted before the marker was updated (a772a7ca16 by @adityasingh2400)
  • SwiftPM: Fix Hermes runtime/compiler version mismatch causing "Wrong bytecode version" crashes in SwiftPM Release builds (ead93778a1 by @nduaarte)

v0.87.0

Breaking

  • Appearance: Fix return type of useColorScheme() hook (now ColorSchemeName | null) (ef6463c25d by @huntie)
  • Appearance: useColorScheme() no longer returns 'unspecified' (this was always the case, but is a breaking type change) (8ac88f481a by @huntie)
  • CLI: The react-native/core-cli-utils package is no longer published. It remains available in the React Native repo as a reference implementation. (9c3fddf9cd by @huntie)
  • Hermes: Remove Legacy Hermes from C++ code (f9476256bd by @cipolleschi)
  • JavaScript API: Deep imports to 'react-native/src/private/...' have been restricted, and are no longer visible to TypeScript. These subpaths still exist, but do not have type coverage. (142b6172a9 by @huntie)
  • JavaScript API: The NativeDialogManagerAndroid export is removed. (a793d21a7e by @huntie)
  • JavaScript API: The Touchable root export (undocumented) is removed. If you are extending Touchable as a type, please use ViewProps instead. (6fbf3062f9 by @huntie)
  • JavaScript API: react-native/rn-get-polyfills is removed — please use react-native/js-polyfills (package) (b6a535afee by @huntie)
  • Jest: react-native/jest-preset is removed — all projects must now migrate to react-native/jest-preset (package) (9ee21ddd9b by @huntie)
  • Legacy Architecture: Compile out RuntimeScheduler_Legacy under RCT_REMOVE_LEGACY_ARCH (d205267a5f by @christophpurrer)
  • LogBox: Set max font scaling in LogBox to avoid layout breaking (4aef2b0126 by @pchalupa)
  • Node: Require Node.js >= 22.13.0 (a0d39e7a9c by @huntie)
  • React Native DevTools: Remove support for connecting to the standalone react-devtools package via WebSocket. Use React Native DevTools instead. (f1971caa44 by @huntie)
  • Renderer: Remove RawPropsKey prefix and suffix (67381e157f by @javache)
  • Runtime: Remove the SceneTracker module from Libraries/Utilities, stop setting the active scene from AppRegistry.runApplication, and pass the app key as an optional second argument to WrapperComponentProvider (bbb5be9b41 by @rubennorte)
  • ScrollView: Remove deprecated boolean values support for ScrollView keyboardShouldPersistTaps (5bf3e38db2 by @zoontek)
  • StatusBar: Remove deprecated StatusBar backgroundColor / translucent / networkActivityIndicatorVisible props and setBackgroundColor / setTranslucent / setNetworkActivityIndicatorVisible methods (6b45e579d6 by @zoontek)
  • Strict TypeScript API: Remove legacy NativeMethods and NativeMethodsMixin types (b724611aec by @huntie)
  • Strict TypeScript API: React Native's default JavaScript API is now the Strict TypeScript API. Use customConditions: ["react-native-legacy-deep-imports"] to opt out. (c948b61c05 by @huntie)

Android specific

iOS specific

Added

  • Animated: Support native driven AnimatedValue interpolation easing (57ce6bc585 by @zeyap)
  • Animated: Remove useNativeDriver under featureflag animatedForceNativeDriver (9cf30b6e4b by @zeyap)
  • Animated: Remove useNativeDriver under featureflag animatedForceNativeDriver (cffe14ff57 by @zeyap)
  • Animated: Add optimizedAnimatedPropUpdates feature flag (ed96b22af2 by Bartlomiej Bloniarz)
  • Assets: Introduce react-native/asset-utils package (relocates Android path utils for libraries/frameworks) (41d52189e2 by @huntie)
  • JavaScript API: Deprecate 'react-native/Libraries/Core/InitializeCore'. Use 'react-native/setup-env' instead. (bfa679f0ea by @huntie)
  • Legacy Architecture: Gate shared C++ and Android Java/Kotlin legacy view manager interop behind RCT_REMOVE_LEGACY_COMPONENT_INTEROP (9885fe95ef by @christophpurrer)
  • Legacy Architecture: Gate legacy view manager interop behind RCT_REMOVE_LEGACY_COMPONENT_INTEROP (8b959b46ea by @christophpurrer)
  • Legacy Architecture: Gate legacy TurboModule interop behind RCT_REMOVE_LEGACY_MODULE_INTEROP (3278f309e2 by @christophpurrer)
  • MapBuffer: Add IntBuffer and DoubleBuffer entry types to MapBuffer for compact homogeneous int/double arrays (e7cadaf9f3 by @javache)
  • Performance: Add Systrace.trace helper that wraps a function with begin/end events using try/finally (e6c7a269d2 by @rubennorte)
  • React Native DevTools: Implement the Page.addScriptToEvaluateOnNewDocument and Page.removeScriptToEvaluateOnNewDocument CDP methods in the modern inspector (bc20ec88eb by @GijsWeterings)
  • RNTester: Add All Animated Props example to the rn-tester Animation Backend section (e2e655385c by Bartlomiej Bloniarz)
  • RNTester: Add Performance Test example to the rn-tester Animation Backend section (09e55cb7c6 by Bartlomiej Bloniarz)
  • StatusBar: Support barStyle="auto" to follow the current color scheme (61c8b040bf by @zoontek)
  • Strict TypeScript API: Component and API doc comment coverage has been significantly improved (701de4ec3d by @huntie)
  • Strict TypeScript API: Export Animated.Numeric (6206b0b01f by @huntie)
  • Strict TypeScript API: Add *Instance ref types for all built-in components (a3827f32f4 by @huntie)
  • Text: Add support for textAlign: 'start' and textAlign: 'end'. (ca29d38537 by @SJvaca30)
  • Text: Text decorations honor textDecorationStyle (solid, double, dotted, dashed, wavy) (87184c8fba by @quantizor)
  • TurboModules: Add ArrayBuffer support to C++ TurboModules (226ef2e7c5 by @paradowstack)
  • TypeScript: Add selection to TextInputChangeEventData in TypeScript types (e745c41a6b by @nsbarsukov)
  • TypeScript: Export AccessibilityActionInfo, ImageResizeMode, EdgeInsetsProp, and TextInputBlurEvent types (ee36c67a27 by @huntie)
  • TypeScript: Add Promise.try + Promise.withResolvers typescript types (b99ddaf606 by @retyui)
  • TypeScript: Add TypeScript support for Error cause property (abcb7821b1 by @gimi-anders)
  • Yoga: Add CSS Flexbox §4.5 automatic minimum sizing. Opt in by clearing the new YGErrataMinSizeUndefinedInsteadOfAuto errata bit on YGConfig. (b766986387 by @adityasharat)
  • Yoga: Add CSS Flexbox §4.5 automatic minimum sizing. Opt in by clearing the new YGErrataMinSizeUndefinedInsteadOfAuto errata bit on YGConfig. Adds YGNodeSetMinContentWidth/Height for static contributions and YGMinContentMeasureFunc for dynamic ones.' (7f396d1116 by @adityasharat)

Android specific

  • Android SDK: Update compileSdk and buildTools to 37 (3e8dfb1e64 by @alanjhughes)
  • MapBuffer: Add a dedicated MapBufferList type to MapBuffer for ordered lists of nested MapBuffers (6a957746f6 by @javache)
  • Permissions: Add ACCESS_LOCAL_NETWORK to PermissionsAndroid and request it so the dev server stays reachable on Android 17 (SDK 37) (2bc2c8d7e6 by @alanjhughes)
  • Runtime: Add ReactContext.getRuntimeExecutor() (dc9043e940 by @javache)
  • ScrollView: Added an entry point that allows changing whether the scrollable React Native containers should delay pressed state in children views (91b2537f8a by @j-piasecki)
  • View: Use software snapshot capture unless featureflag (ba204faa75 by @zeyap)

iOS specific

  • Build: Fail closed with an actionable error when the SwiftPM autolinking config command fails, instead of silently emitting an empty Autolinked package (a7ba4ce522 by @chrfalch)
  • i18n: Added comment to clarify why i18nManager.isRTL may not return the expected value (e4a5ed3c6d by @scarlac)
  • Native Modules: Export RCTDidInitializeModuleNotificationModuleKey constant for RCTDidInitializeModuleNotification userInfo (217ee52d4f by Eapen George)
  • Text: Add enableIOSCompressedTextFrameAdjustment feature flag for Text rendering adjustments. (b933d45276 by @sbuggay)
  • Text: textDecorationStyle: 'dotted' and 'dashed' for <Text> render with custom CoreGraphics paths instead of UIKit pattern bits, matching browser geometry more closely (9d037509bf by @quantizor)
  • TurboModules: Add ArrayBuffer support to ObjC TurboModules (54b88d9dea by @paradowstack)

Changed

  • Animated: Enable Animated flush-queue debouncing (animatedShouldDebounceQueueFlush) by default (5c197fb303 by @zeyap)
  • Animated: Flip cxxNativeAnimatedEnabled featureflag default to true (fc7dc741d2 by @zeyap)
  • Animated: Xplat/js/react-native-github/packages/react-native/ReactCommon/react/renderer/animated/drivers/DecayAnimationDriver.cpp (69b58f308e by generatedunixname1563563004708334)
  • Build: Fix missing VERSION_NATIVE_FB in commit artifacts (c6f29a2173 by @javache)
  • C++: Xplat/js/react-native-github/packages/react-native/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp (ce057d6554 by generatedunixname1563563004708334)
  • Dependencies: Replace abort-controller with fork version from react-native (6f3375a140 by @retyui)
  • Documentation: Clarify Android AppState background API documentation. (b09fce6db5 by @federicobartoli)
  • DOM API: Make EventTarget methods enumerable by spec (25c25b3c7c by @retyui)
  • Flow: Turn on experimental.instance_t_objkit_fix across fbsource roots (71fee907fb by @SamChou19815)
  • Flow: Transform readonly in xplatjs (5fce2de800 by @marcoww6)
  • Flow: Fix a few readonly 10/n (09fc0432d1 by @marcoww6)
  • Flow: Codemod in/out (9f558a4d6a by @marcoww6)
  • Hermes: Change default transform profile to 'hermes-stable' (a2cd37f828 by @retyui)
  • Hermes: Simplified build JS Hermes infrastructure for the Release (d49aac6b65 by @cipolleschi)
  • Hermes: Bump Hermes V1 to 250829098.0.13 (0175449606 by @robhogan)
  • IntersectionObserver: Expose IntersectionObserverEntry as a global (4deb32a507 by @rubennorte)
  • Metro: Metro to 0.86.0 (2b0107e0aa by @robhogan)
  • Metro: Bump Metro to 0.87.0 (0565bcdbab by @robhogan)
  • React Native DevTools: Expose new options in the app menu (24e370096e by @huntie)
  • React Native DevTools: Add macOS 26/27 app icon (fa371d156d by @huntie)
  • Runtime: Make the window global non-writable and non-configurable, and the navigator global non-writable (347f8d081e by @rubennorte)
  • Strict TypeScript API: Additional component props types are now interface declarations, enabling module augmentation by libraries like Uniwind (preserve compatibility) (2574863642 by @huntie)
  • Strict TypeScript API: Select component props types are now interface declarations, enabling module augmentation by libraries like NativeWind and Expo (preserve compatibility) (db89600b56 by @huntie)
  • StyleSheet: Make flattenStyle avoid extra intermediate objects when flattening nested style arrays. (d26f7b338d by @tarikfp)
  • StyleSheet: Remove experimental_ prefix from backgroundImage (58688bf176 by @intergalacticspacehighway)
  • TurboModules: The default value of the useTurboModules ReactNativeFeatureFlags flag is now true (db4c6ee3b6 by @mdvacca)
  • VirtualizedList: Speed up VirtualizedList render-mask creation for large lists by avoiding the old backward sticky-header scan when sticky headers are missing or sparse. (fe53279889 by @tarikfp)
  • Yoga: Mark parent dirty when child is freed (4adca58f4c by @harsha-cpp)

Android specific

iOS specific

  • Build: Prebuilt-deps mode: serve third-party headers from the ReactNativeDependencies pod itself and resolve community s.dependency on RCT-Folly/glog/boost/etc. via dependency-only facade pods (a8156acf8b by @chrfalch)
  • Build: Remove the Clang VFS overlay from prebuilt React Native Core; resolve headers via React.xcframework + a new headers-only ReactNativeHeaders.xcframework (376bd0e464 by @chrfalch)
  • Native Modules: Native modules listed in unstableModulesRequiringMainQueueSetup are now always initialized eagerly on the main queue during React Native init; the previous enableEagerMainQueueModulesOnIOS opt-in flag has been removed. (36bec56b0b by @javache)
  • Renderer: Drain React-revision merges from a BeforeWaiting main run loop observer instead of dispatching each merge as a separate main-queue block (d80377cd60 by @j-piasecki)
  • Runtime: RCTUnsafeExecuteOnMainQueueSync and bridgeless sync runtime-thread calls now always use the coordinator implementation that pumps UI tasks while waiting for JS, eliminating a class of deadlocks. The previous opt-in flag has been removed. (eaf770433a by @javache)

Deprecated

  • Appearance: Appearance.setColorScheme('unspecified') is deprecated, use 'auto' instead. (91702e50fe by @huntie)
  • Assets: Deprecate react-native/assets-registry. Use AssetRegistry from react-native and react-native/asset-utils instead. (715eeaad69 by @huntie)
  • Image: Deprecate ImageBackground, use a View with an absolutely positioned Image instead (2361189716 by @zoontek)
  • JavaScript API: Mark undocumented UTFSequence module as deprecated (549e4e2d8d by @retyui)
  • JavaScript API: Mark undocumented UTFSequence module as deprecated (fd49bf2e2c by @retyui)
  • TypeScript: The NativeMethods interface is deprecated. Use HostInstance instead. (19f5691e39 by @huntie)
  • Yoga: Fix CQS signal modernize-deprecated-headers in xplat/yoga/yoga [B] [A] (61db78db0b by generatedunixname1587093422349604)

Android specific

  • APIs: Deprecate DrawerLayoutAndroid, use react-native-drawer-layout instead (5c5e6cd8ce by @zoontek)
  • New Architecture: DefaultReactActivityDelegate's constructor taking new arch flags are deprecated (935f8e5b7d by @javache)
  • UIManager: Deprecate UIBlock interface and UIManagerModule.addUIBlock/prependUIBlock methods. Use UIManagerListener or View Commands instead. (29a76918a9 by @cortinico)

Removed

  • C++: Removed RCTDefaultCxxLogFunction (2b6f605b3c by @javache)
  • Feature Flags: Remove unused enableVirtualViewDebugFeatures feature flag and the associated FlingItemOverlay / FlingDebugItemOverlay debug surfaces. (083fd99ba4 by @javache)
  • Feature Flags: Remove the experimental native View prop transformation feature flag. (2c2cd9ef54 by @sammy-SC)
  • Feature Flags: Removed the unused disableMaintainVisibleContentPosition feature flag from ReactNativeFeatureFlags (661ce06e02 by generatedunixname1608173377072046)
  • Feature Flags: Remove unused useLISAlgorithmInDifferentiator feature flag and LIS algorithm code from the Differentiator (9f4513c751 by @javache)
  • InteractionManager: Remove deprecated InteractionManager (use requestIdleCallback instead) (ed893f7d98 by @rubennorte)
  • Modal: Remove deprecated Modal animated prop (fd10410d51 by @zoontek)
  • Strict TypeScript API: Remove deprecated PublicScrollViewInstance and PublicModalInstance types. Use ScrollViewInstance and ModalInstance instead. (74fdfd1eab by @huntie)
  • TurboModules: Remove the useTurboModules feature flag. TurboModules are now always enabled. (b4a715ca1f by @mdvacca)

Android specific

  • Dev Server: Remove unused DevServerHelper.websocketProxyURL property (legacy remote JS debugger) (9cb2e63c87 by @huntie)
  • DeviceInfo: Remove DisplayMetricsHolder.getWindowDisplayMetrics, setWindowDisplayMetrics, and getDisplayMetricsWritableMap (82536f230f by @zoontek)
  • Hermes: Remove hermesV1Enabled and simplify the code (0a5c8c6b4b by @cipolleschi)
  • Legacy Architecture: Remove legacy architecture stub UIImplementation. This class was already non-functional (all methods were empty stubs). (cf28e6b73c by @cortinico)
  • Legacy Architecture: Remove legacy architecture stub UIImplementation. This class was already non-functional (all methods were empty stubs). (0825f21171 by @cortinico)
  • Performance: Deprecate logMarkerBridgeless and logTaggedMarkerBridgeless in favor of logMarker and logTaggedMarker (319610d328 by @javache)

iOS specific

Fixed

  • Animated: Fix a surface-stop race in the C++ Animated shared backend that could permanently leak per-surface animated state (d9d2502b61 by Bartlomiej Bloniarz)
  • Animated: Fix a race in the C++ Animated render-callback lifecycle that could leave stale callbacks running on every frame (e442c496b7 by Bartlomiej Bloniarz)
  • Animated: Sync JS-side Animated.Value with the post-animation value before invoking Animated.timing(...).start({finished}) callbacks so reads from inside the callback (or from React re-renders it triggers) observe the post-animation value rather than the pre-animation value. Gated behind a new JS-only feature flag, animatedShouldSyncValueBeforeStartCallback, defaulting to true (set to false to opt out). (ee6958a9f4 by @fabriziocucci)
  • Assets: react-native/Libraries/Image/AssetRegistry is removed. Please use the AssetRegistry API (apps/library code) and/or the react-native/asset-registry entrypoint (Metro/build configs). (6cfde8f296 by @huntie)
  • Blob: Fix Blob.slice() for negative start offsets and inverted ranges (b29dc966a4 by @durvesh1992)
  • Documentation: Removed wrong changelog entry in 0.83.2 (ef38ba4050 by @chrfalch)
  • DOM API: Make AbortSignal.any() process its input signals in multiple passes to match the DOM specification (1136e41bd8 by @rubennorte)
  • DOM API: Fix parentNode/parentElement returning the document instead of the containing element for <Modal> and other nested root host views, which severed capture/bubble event propagation to ancestors rendered above them (e410ff5471 by @rubennorte)
  • Events: Fix use-after-free data race in EventEmitter.cpp (5dea3b5e6c by generatedunixname1383054420177565)
  • FileReader: Set FileReader readyState to LOADING during a read so abort() correctly emits abort/loadend (c00813c6ee by @durvesh1992)
  • Image: Parse Image srcSet density descriptors consistently (e4cf0a1cc3 by @ya-nsh)
  • JavaScript API: Extensionless react-native/scripts/* imports are now mandated; explicit .js import specifiers are rejected. (97727ba67f by @huntie)
  • MapBuffer: Avoid memcpy(_, nullptr, 0) UB in MapBufferBuilder::build for empty / scalar-only MapBuffers (34ccf4f331 by @javache)
  • Networking: Base64-encode binary (arraybuffer/blob) response bodies in the C++ NetworkingModule so they are not corrupted when delivered to JS (1127e54d53 by @sathoshik)
  • Pressable: Fix hover out timeout stored in wrong variable in Pressability (74b1a4d026 by @w3di)
  • React Native DevTools: React Native DevTools will no longer briefly flash in the system dock/taskbar when starting Metro (6aa7e35ec3 by @huntie)
  • React Native DevTools: Add null check on JNI return value in JCxxInspectorPackagerConnectionDelegateImpl::connectWebSocket to prevent null dereference (fa05b8c88b by @shubhamksavita)
  • ReactHost: Fixed a regression that causes crashes on reload for ReactCxxPlatform's ReactHost (ac81869f05 by @etodanik)
  • Renderer: Fixed potential revision drop during merge (c65845cde2 by @j-piasecki)
  • Renderer: Several view, text, scrollview, and accessibility props that the iterator-setter path silently dropped now propagate correctly through setProp: automaticallyAdjustKeyboardInsets, dynamicTypeRamp, writingDirection, experimental_accessibilityOrder, transformOrigin, and the full borderCurves cascaded set. (15b1f5529a by @javache)
  • Runtime: Fix missing format specifier in renderApplication invariant (bc1a31fb16 by @w3di)
  • Runtime: Fix apps failing to boot ("... not registered as callable") caused by core init not running. (08c323346b by @zeyap)
  • Runtime: Fix app failing to initialize (HMRClient.setup() redbox) because the environment setup module was dropped from the bundle (eb987ef550 by @cipolleschi)
  • Strict TypeScript API: Add missing textAlignVertical prop on <TextInput> (e04ff69ab3 by @huntie)
  • Strict TypeScript API: Add missing pointerEvents prop to Text component (a2e042f76a by @huntie)
  • Strict TypeScript API: Update getNativeScrollRef return type across ScrollView, FlatList, and SectionList (535b844680 by @huntie)
  • Strict TypeScript API: Optional property types are now widened to explicitly include | undefined for exactOptionalPropertyTypes compatibility (0fc76bb527 by @zeyap)
  • Testing: Fix asyncArrayBufferBorrowNativeBackedTest unconditional skip on Hermes (9d54391814 by @christophpurrer)
  • Testing: Re-enabled VirtualizedList "retains batch render region when an item is appended" tes (c0bf1549c2 by @chicio)
  • Text: Fix text measurements being incorrectly reused across pixel density changes (d53c7b52a6 by @jehartzog)
  • Touch Handling: Suppress React.Fragment style warning when used as a child of TouchableHighlight (d7b5314bd8 by @qflen)
  • TypeScript: Preserve doc comments on root API symbols in the generated TypeScript types (642273788b by @huntie)
  • TypeScript: Add eventCount to TextInputKeyPressEventData type (886faee2d1 by @pchalupa)
  • TypeScript: Add missing pointer event handler types (onPointerOver, onPointerOut, onGotPointerCapture, onLostPointerCapture, and their *Capture variants) to the TypeScript types (20931fe975 by @ahmdshrif)
  • TypeScript: Update ImageSource.d.ts see reference URL to reflect current repository structure (6eb07a813d by @ergenekonyigit)
  • TypeScript: Expose Modal native ref prop in TypeScript declarations (7cc8c76e83 by @ya-nsh)
  • TypeScript: Align TypeScript accessibility role definitions with supported React Native accessibility roles (75e1f06b66 by @ya-nsh)
  • TypeScript: Change FlatList.getNativeScrollRef return type definition to allow accessing the underlying HostInstance. (5162816e03 by @janpe)
  • TypeScript: Fix missing and incorrect types in AccessibilityInfo TypeScript definitions (4255f9bd89 by @huntie)
  • Yoga: Include a node's padding and border in its automatic minimum size when it has a measure function (91886f7c88 by @adityasharat)
  • Yoga: Crash: YogaLayoutableShadowNode.cpp: function layout: assertion failed (YGNodeGetOwner(childYogaNode) == &yogaNode_) https://github.com/react/react-native/issues/52349 (6fa330693f by @5ZYSZ3K)

Android specific

  • Accessibility: Issue when clearing accessibilityLabelledBy (63dec777d9 by @rozele)
  • Accessibility: Screen reader behavior for accessibilityState expanded (fafcfcd5f6 by @rozele)
  • Animated: Prevent "Mapped property node does not exist" crash in PropsAnimatedNode.updateView when a mapped node is removed during an in-flight native animation (53369ed321 by @shashank-bhatotia)
  • Animated: Fix deadlock between the UI and JS threads when native animations start while a synchronous VirtualView mode-change event is dispatched (b96b626297 by @coado)
  • Build: Guard missing autolinked JNI directories in generated CMake during native clean/model configuration. (948835d944 by @Phecda)
  • Dev Menu: Fix Dev Menu Settings crash in debugOptimized builds (2fb4f13fbf by @Phecda)
  • Dev Server: Reduced memory usage during JS bundle downloads by eliminating intermediate buffer copies (57eb56fbf5 by @DorianMazur)
  • Gradients: Fix incorrect color stop positions in gradients when a positioned stop is immediately followed by an unpositioned stop (cb63782554 by @nduaarte)
  • Image: Fix Image.getSize() failing for local drawable resource URIs including VectorDrawables (aea8785d66 by @Abbondanzo)
  • Image: Source props in image headers in Android (eeb17badf6 by @humaidk2)
  • PointerEvents: Register pointer capture event handlers in the Android base view config (74382cacd8 by @yaminyassin)
  • React Native DevTools: Show request body preview for FormData and file uploads in DevTools Network tab (48fe6df3d2 by @HarshitMadhav)
  • Renderer: Avoid crash in SurfaceMountingManager when sendAccessibilityEvent or setJSResponder is called for a missing or deleted view state. (8eb4240d36 by @ManasGuptaSprinklr)
  • Renderer: Fix crash in Scheduler::animationTick when uiManager_ is null. (e73592ba51 by @shubhamksavita)
  • Renderer: Fix commit branching dropping updates when enableAccumulatedUpdatesInRawPropsAndroid is not enabled. (bcadedaba4 by @j-piasecki)
  • Runtime: Use explicit ReactInstanceManager.mHasStartedDestroyingLock instead of using ReactInstanceManager.mHasStartedDestroying (f500f4239c by @Yqwed)
  • Runtime: JSModule method without args are correctly dispatched (949b8049df by @javache)
  • ScrollView: Catch IllegalArgumentException in ScrollView.onTouchEvent to prevent crashes from a known Android framework multi-touch bug (d672c96445 by @tomekzaw)
  • StatusBar: Prevent IllegalArgumentException crash in statusBarShow/statusBarHide when the window decorView is detached (a54b04e94b by @alanleedev)
  • StatusBar: Prevent IllegalArgumentException crash in StatusBarModule when activity is destroyed before the UI thread runnable executes (732b848a8e by @alanleedev)
  • StyleSheet: Correct logical border radius mapping for borderEndStartRadius and borderStartEndRadius. (ad2cf4d1d7 by @nikhilpakhloo)
  • StyleSheet: Fix crash in SkewMatrixHelper (9e3a0df61e by @javache)
  • StyleSheet: SkewX / skewY transforms now render correctly on Android Q+. (62903bc3e2 by @qflen)
  • Text: Prevent descenders from being clipped when Android text lineHeight matches fontSize (bb3c121073 by @TorinAsakura)
  • Text: Account for Android Bold text font weight adjustment when measuring Text. (d833014948 by @TorinAsakura)
  • Text: Fix text decoration line thickness regression on Android (9f20cde724 by @cortinico)
  • Text: Fix text decoration color not matching foreground color when textDecorationColor is not set (2da0244c16 by @cortinico)
  • TextInput: Fix ClassCastException crash on Android 9 and below when an IME submit action races the unmount of a TextInput (97aa7ad272 by @shahidrogers)
  • TextInput: Fix TextInput placeholder staying on multiple lines after multiline is toggled from true back to false (df6de4f758 by @Abbondanzo)
  • TextInput: Preserve secure TextInput password character reveal timing when JS state echoes the same text. (08731165f5 by @sorinc03)
  • Touch Handling: Prevent React Native containers from delaying native touches (d8f71837f8 by @j-piasecki)
  • TurboModules: Fix pure C++ turbo modules not working without includesGeneratedCode: true (c789880517 by @satya164)
  • ViewManagers: Fix NullPointerException in ReactProgressBarViewManager.measure() when invoked with null localData or state (for example, from the upcoming CSS Flexbox §4.5 auto-min-size probe in Yoga). (ef683f7010 by @adityasharat)

iOS specific

  • Build: Fix React-RCTAnimatedModuleProvider build by adding the missing Yoga dependency and a missing space between compiler flags (08ef7b18d2 by @zoontek)
  • Build: Fix "redefinition of 'HighResDuration'" / "could not build module 'React'" when building Swift pods with C++ interop against the prebuilt React-Core artifact (9847238e3f by @chrfalch)
  • Build: Fix "The project 'Pods' is damaged and cannot be opened" when a library uses spm_dependency and the generated UUID collides with an existing Pods project object (1cdf784a06 by @chrfalch)
  • Build: Ship React-Core's privacy manifest and localized strings (RCTI18nStrings) inside the prebuilt React.xcframework, so CocoaPods-prebuilt and SwiftPM apps include them (77b75122ef by @chrfalch)
  • Build: Fix "redefinition of module" build failure on Xcode 26.3 for pods using spm_dependency with prebuilt React Native core (4a6620703c by @chrfalch)
  • Build: Fix Swift C++-interop build failure (implicit copy constructor of TraceRecordingState/HostTracingProfile) for libraries using cxx interop with prebuilt React Native core (38611186f5 by @chrfalch)
  • Build: Keep the prebuilt Headers/ in place on a Debug/Release configuration switch so the React explicit module still resolves its module map (df5e6f6a42 by @chrfalch)
  • Build: Write the prebuilt module-map flag to OTHER_CPLUSPLUSFLAGS so C++/ObjC++ sources resolve the relocated namespaces modularly (14fe96ab51 by @chrfalch)
  • Build: Prebuilt ReactNativeHeaders.xcframework now ships the Hermes public headers so consumers resolve <hermes/...> out of the box (43b44ed7c3 by @chrfalch)
  • Codegen: Fix codegen script phase error logging in script_phases.sh (f14207f9bd by @fallintoplace)
  • Dev Menu: Allow iOS apps with the dev menu enabled (RCT_DEV_MENU) to connect to Metro via "Change Bundle Location" (94380cb4ad by @fmacinator)
  • Hermes: Fix debug Hermes being silently embedded in Release builds after the hermes-engine pod is re-installed (62a2b386c9 by @tjzel)
  • Image: Fix a data race in RCTImageLoader loader and decoder lazy initialization that could crash with EXC_BAD_ACCESS (7ed17c9d09 by Miklós Fazekas)
  • Legacy Architecture: Add missing RCT_REMOVE_LEGACY_COMPONENT_INTEROP guard to LegacyViewManagerInteropComponentDescriptor (510cc0c5ec by @christophpurrer)
  • LogBox: Remove unsafe window manipulation in RCTLogBoxView dealloc to prevent crash with SceneDelegate (4f825d3469 by @aswinandro)
  • Modal: Prevent Alert and Modal from rendering in the top-left corner (859bdb89e5 by @zoontek)
  • Performance: Expose the bridgeless performance logger via RCTBridgeProxy and post RCTJavaScriptDidLoadNotification, so native startup-perf consumers work in bridgeless (9568de5a2d by @fkgozali)
  • Renderer: Add an explicit wake up call to the main loop hen scheduling a React revision merge (0cdb59f1b4 by @j-piasecki)
  • StyleSheet: Fixed percentage-based border radius (b4966128af by @j-piasecki)
  • Touch Handling: Fix TypeError crash in ResponderTouchHistoryStore when changedTouches is undefined (2c6cb27f88 by generatedunixname1608173377072046)
  • TurboModules: Always return true in RCTTurboModuleEnabled (aee4a2586e by @christophpurrer)
  • TurboModules: Deprecate RCTTurboModuleEnabled() and RCTEnableTurboModule() (feede1422b by @christophpurrer)

Security

  • Dependencies: Fix security vulnerabilities in xmldom/xmldom, fast-xml-parser, yaml, fast-uri, and addressable transitive dependencies (284035b21d by @cortinico)

v0.86.3

Changed

Fixed

  • EventEmitter: Fix use-after-free data race in EventEmitter.cpp (fdb26edfe7)
  • Modal: Fix parentNode/parentElement returning the document instead of the containing element for <Modal> and other nested root host views, which severed capture/bubble event propagation to ancestors rendered above them (6e3f0e8f9f by rubennorte)

iOS

  • Cocoapods: Make Podfile.lock SPEC CHECKSUMS deterministic across machines by sorting Dir.glob results in Yoga.podspec and using a dynamically computed Pods-relative path in hermes-engine.podspec (6e3f0e8f9f by IsaacIsrael)

Android specific

  • Runtime: Fix ConcurrentModificationException when getInitialURL re-enters during onHostResume (20d04aefa1 by @nickcernera)

iOS specific

  • Font: Custom fonts with an explicit fontWeight no longer render at the heaviest weight on the New Architecture (918fb15bfe by @jensdev)

v0.86.2

Fixed

Android

  • Runtime: Use explicit ReactInstanceManager.mHasStartedDestroyingLock instead of using ReactInstanceManager.mHasStartedDestroying (cdfba520fa by @jingjing2222)
  • Runtime: Do not synchronize on java.lang.Boolean. (@821045a24f by Yqwed)

Changed

v0.86.1

  • This release got burned because of an issue with Maven

v0.86.0

Added

  • Accessibility: AccessibilityInfo: added missing tests for Promise based methods, align null checks and error message code style (8fc503d780 by @chicio)
  • Animated: Suspense tests for the Animation Backend (8101fc776d by Bartlomiej Bloniarz)
  • Animated: Use weak_ptr when calling pullAnimationMutations in a callback scheduled with the Animation Backend (42d98b5830 by Bartlomiej Bloniarz)
  • Dev Server: Call methods on global.__BUNDLE_LOADER_REPORTER__, if given, during dev-mode bundler loads from Metro (1e0c1f886b by @robhogan)
  • React Native DevTools: Add new custom track for React Native Renderer operations in React Native DevTools performance traces (0b1def9ce5, 29bc8f1acb, 9130df6773, c26a4875ea by @rubennorte)
  • React Native DevTools: Add support for light/dark mode emulation via Emulation.setEmulatedMedia (11a5432cb2 by @huntie)
  • Runtime: Add unstable_getViewTransitionInstance to UIManagerBinding (d8820a403b by @zeyap)
  • Runtime: Add UIManagerViewTransitionDelegate interface and View Transition APIs (cdad57d8f1 by @zeyap)
  • Runtime: Add viewport size to LayoutContext (d38c756529 by @paradowstack)
  • Runtime: ViewTransitionModule for React Native View Transitions (f81f73e5a0 by @zeyap)
  • Text: Add E2E tests for Text boxShadow and textWithLinkRole (b172f46f0d by @NickGerleman)
  • View: Add E2E tests for Filter blur-with-overflow, drop-shadow, and animated-blur (66975aa3d5 by @NickGerleman)
  • View: Add mixBlendMode plus-lighter (aaa0684045 by @bigcupcoffee)

Android specific

  • Events: Channel play/pause hardware events. (5087aa0dba by Nishil Shah)
  • Events: Pass event object to BackHandler hardwareBackPress events to access timeStamp from native event. (bf277cb6d4 by @rubennorte)
  • LogBox: Allow LogBox notification toasts and inspector overlay to be dismissed via Android back button (6530092162 by @Abbondanzo)
  • Pressable: android_ripple now accepts PlatformColor (60d8b282ea by @adrcotfas)
  • Runtime: Add ExtraWindowEventListener interface to allow native modules to react to window creation / destruction (e.g. Modal dialogs) (58fec1fa8d by @zoontek)
  • Runtime: Add test for synchronous mount props override behavior (a25e0fdddf by @zeyap)
  • Text: Add E2E tests for Text visual examples (batch 1) (b53b228673 by @NickGerleman)
  • Text: Add E2E tests for Text visual examples (batch 2) (d5a271dd05 by @NickGerleman)
  • TextInput: Add extended Android TextInput autoComplete autofill hint support and bump androidx.autofill to 1.3.0. (ac598aff2b by @radko93)
  • View: Add E2E tests for Filter static visual examples (d18d9a4046 by @NickGerleman)

iOS specific

  • Build: Add privacy manifest to declare the use of mach_absolute_time() API in the React-timing module (2ae6c8940d by @rubennorte)
  • Dev Server: Introduce isPackagerRunningAsync that does not block the UI thread waiting on the request to DevServer ("Packager") validating that it is running (dd056d9b4c by @vzaidman)
  • Image: Add E2E tests for Image visual examples (48b6f2dcc9 by @NickGerleman)
  • Networking: Add RCTSetCustomMultipartDataTaskRequestInterceptor API to allow custom modification of multipart data task requests before they are sent (59b8886bb8 by @cipolleschi)

Changed

  • Build: Update Metro to ^0.84.2 (57d4b6b350 by @robhogan)
  • Dev Server: LoadBundleFromServer test: remove legacy Jest timers, increased coverage and improved assertions (a19d98e542 by @chicio)
  • Hermes: Bump hermes-compiler dependency (031168013e by @robhogan)
  • Hermes: Bump hermes version (89a2a20739 by @robhogan)
  • LogBox: Migrated LogBoxData tests to Jest modern timers (dea2136a49 by @chicio)
  • React: Make React Native consume 250829098.0.11 (26953d8343 by @alanleedev)
  • React Native DevTools: Derive WebSocket scheme and port from dev server URL for React DevTools connections, supporting HTTPS dev servers (ca4173701d by @cipolleschi)
  • Runtime: Measure node instance during applyViewTransitionName (d17ecca3c9 by @zeyap)
  • Runtime: Move ViewTransition APIs not for react reconciler to its own TurboModule (0e65df9152 by @zeyap)
  • Runtime: Setting reportErrorsAsExceptions to anything other than false no longer does anything. (Previously, setting it to a falsey value would be similar to setting it to false.) (f0748a6387 by @yungsters)
  • Runtime: Use getNullableViewState in SurfaceMountingManager::updateProps and log a soft exception instead (bbf7004935 by Bartlomiej Bloniarz)
  • TurboModules: Move DefaultTurboModules::get to end of TurboModuleManager (6b32971f46 by @zeyap)

Android specific

  • Animated: AnimationBackendChoreographer doesn't guard the ReactChoreographer post/remove with synchronized(paused) (22d327595d by Bartlomiej Bloniarz)
  • Build: Changed foojay-resolver-convention version to 1.0.0 (664acaf441 by @TheNerdGuyLulu)
  • NavigationBar: Respect theme enforceNavigationBarContrast attribute (dfddcc9796 by @zoontek)

iOS specific

Deprecated

  • JavaScript API: Deprecated second argument for hook function passed to AppRegistry.setComponentProviderInstrumentationHook as it's not usable by apps. Passed stub that warns when used. (64116117c0 by @rubennorte)

Fixed

  • Accessibility: Fix AccessibilityInfo.isDarkerSystemColorsEnabled unresolved (never ending) promise (8fbf2fab47 by @chicio)
  • Accessibility: Fix AccessibilityInfo.isHighTextContrastEnabled unresolved (never ending) promise (5c9a5717c1 by @chicio)
  • Accessibility: Fix AccessibilityInfo.prefersCrossFadeTransitions unresolved (never ending) promise (57c073f0d7 by @chicio)
  • Animated: Fix 1-frame latency in C++ NativeAnimatedNodesManager for event-driven animations by processing the animation graph synchronously on every scroll event, matching the Java implementation behavior (0517fb552d by Mark Verlingieri)
  • Animated: Fix typo "interpolation" to "interpolate" and add missing space in AnimatedInterpolation error messages (a8b39a237c by @Nedunchezhiyan-M)
  • Babel: Prevent errors by handling contexts where the Babel API object is not provided (63796a9160 by On Saint Tiong)
  • Build: Fix incorrect package name and output filename in scripts/js-api/README.md (d823f5b1cc by @Nedunchezhiyan-M)
  • Codegen: Respect enum values for TurboModule c++ codegen (56129fedcb by @akawrykow)
  • Documentation: Correct the v0.85.0 changelog entry for the removal of StyleSheet.absoluteFillObject. (fdbe0d0b63 by @jingjing2222)
  • Modal: Forward style prop to Modal's inner container View with correct precedence so consumer styles are applied without overriding transparent or backdropColor (f8fa76f94c by @AnuMessi10)
  • React Native DevTools: Add exponential backoff and exception handling to InspectorPackagerConnection reconnect loop to prevent heap fragmentation crashes (32d3eafdc4 by @shubhamksavita)
  • React Native DevTools: Bump Hermes V1 to 250829098.0.14 to fix missing JavaScript samples in the Performance panel timeline on Apple platforms (cd5b3b5fa5 by @fabriziocucci)
  • Runtime: Add missing VIEW_EVENT_CASE entries in BaseViewProps::setProp for Click, PointerDown, PointerUp, GotPointerCapture, LostPointerCapture and their Capture variants (offsets 30-37) (8d5482dd94 by Harini Malothu)
  • Runtime: Fix crash in Performance API when sorting entries (81c99682a4 by @Abbondanzo)
  • Runtime: Fix event timestamp injection overriding native timestamps with lowercase property name (68debb27ff by @fkgozali)
  • Runtime: Fix event timestamp propagation from host platforms to JS (aa51746b87 by @rubennorte)
  • Runtime: Link VirtualView component (de78906391 by @j-piasecki)
  • Runtime: PerformanceObserver: observe({type: 'event'}) now correctly defaults durationThreshold to 104ms per the W3C Event Timing spec instead of reporting all events. (65c561e195 by @rubennorte)
  • Runtime: Prevent Scheduler use-after-free crash when surfaces tear down with pending rendering updates (aadbe96579 by @fkgozali)
  • Runtime: Prevent updates to mounted flag on the React revision (7ee893d3be by @j-piasecki)
  • Runtime: Support multiple old pseudo elements for same name but different source node (370606dc5b by @zeyap)
  • Runtime: Use relevant revision as base for mounted flag updates (4b954e14c8 by @j-piasecki)
  • Runtime: Views with a non-invertible transform (e.g. scaleX: 0 or scaleY: 0) no longer receive touches on Android or iOS. (1e8e182410 by @qflen)
  • TurboModules: Bring back C++ Turbo Module example in RN Tester (1c2cddad1a by @christophpurrer)
  • VirtualizedList: Improve render area change with initialScrollIndex non zero test in VirtualizedList to avoid magic numbers timers (9b966d1d8f by @chicio)
  • Yoga: Fixed Yoga node ownership when display: contents is used in absolutely positioned subtrees (f2f92098dd by @j-piasecki)

Android specific

  • Accessibility: Guard ReactViewGroup.addChildrenForAccessibility against transient non-descendant accessibility traversal crashes. (e681736e18 by @erickreutz)
  • Build: Fix build regression by using rootProject.file (8a8f1b801c by @etodanik)
  • Hermes: Fix HermesSamplingProfiler.disable() JNI registration calling enable() instead of disable() (7f2a58e46c by @elirangoshen)
  • Hermes: Use Hermes V1 stable release instead of legacy nightly to fix startup crash caused by JSI ABI mismatch (45ceacc08f by @cipolleschi)
  • Image: Fix image content disappearing on API 24 (Nougat) when antialiased border radius clipping is applied (fdd6ca5bb1 by @Abbondanzo)
  • Image: Image.getSize and Image.getSizeWithHeaders now return the true source dimensions instead of Fresco's downsampled values (8823a8009b by @zoontek)
  • Image: Make sure view width and height are non 0 before calling createBitmap() (c20a58ab6b by @zeyap)
  • Legacy Architecture: Fix onHostPause crash in ReactInstanceManager without feature flag (3aa8a043de by @shubhamksavita)
  • LogBox: Fixed activity context memory leak in LogBoxDialogSurfaceDelegate when using bridgeless mode (f10cded1f8 by Ilya Kovalyov)
  • Networking: Blob content provider did not work in new arch (05ea94c441 by @javache)
  • Networking: Catch OutOfMemoryError in NetworkingModule response processing to prevent app crashes (0c153e2971 by @shubhamksavita)
  • Networking: WebSocketModule no longer strips a Cookie header passed via the WebSocket constructor's headers option (24b51db75b by @psjostrom)
  • Runtime: Fix Dimensions window values on Android < 15 when edge-to-edge is enabled (44a4b1ba5d by @zoontek)
  • Runtime: Fix KeyboardAvoidingView on Android 15+ / with edgeToEdgeEnabled (4a6c933cce by @zoontek)
  • Runtime: Fix measureInWindow returning incorrect coordinates when edge-to-edge is enabled (9d183675e9 by @zoontek)
  • Runtime: Fix crash from stale preallocated view registry after concurrent render cancellation (97cf2202ee by @javache)
  • Runtime: Gate diagnostic printMountItem calls in MountItemDispatcher error handlers behind enableFabricLogs() to prevent OOM crash (7a546f98a7 by @JakobFelixJulius)
  • Runtime: Handle edge-to-edge when it's not enabled by the edgeToEdgeEnabled gradle property but enforced by the OS (Android 15+) (c2280e3201 by @zoontek)
  • Runtime: Register HeadlessJsTaskSupportModule in CoreReactPackage (2d78a39b3e by 贾太滨)
  • Runtime: Schedule React revision merge to happen on DISPATCH_UI choreographer queue, before dispatching events (b63efbfc6b by @j-piasecki)
  • ScrollView: Dispatch FPS performance events for mouse wheel and trackpad scroll interactions in ScrollView (e0a453c603 by @Abbondanzo)
  • ScrollView: Fix FPS performance listener being cleared on ScrollView recycle (59ac1db76e by @Abbondanzo)
  • StatusBar: StatusBar configuration now applies to Modal windows, fixing visual inconsistencies (6614fe7f2b by @zoontek)
  • Text: Fix 1px text wrapping in absolutely positioned elements caused by fractional Yoga widths (90c2c595da by @clocksarestupid)
  • Text: Fix BoringLayout crash when isBoring() returns negative width (d527f2d663 by @NickGerleman)
  • Text: Fix crash when measuring text in a stopped surface (f71ec1a24e by @NickGerleman)
  • TextInput: Fix setAutoCapitalize stripping numeric TextInput flags (TYPE_NUMBER_FLAG_SIGNED/DECIMAL), affecting minus sign input on Samsung keyboards (863f76bd49 by @lukeharvey)
  • TextInput: KeyboardAvoidingView and TextInput auto-scroll not responding to IME height changes (e.g., when toggling emoji panel or predictive bar) (ee1d067692 by @alanleedev)
  • View: Fixed a crash when clearing zIndex with props 2.0 enabled (93b37350af by @hannojg)
  • View: Fixed crash when enabling props 2.0 and setting borderStyle to undefined (9e058db4c8 by @hannojg)
  • View: Unsupported background size value leading to crash (fe046dc782 by @intergalacticspacehighway)

iOS specific

  • Build: Addressed -Wunreachable-code-return violations (9172bfe647 by @ingridwang)
  • Build: Addressing -Wunreachable-code-return issues. (722623aaeb by @ingridwang)
  • Build: Fixed escaping local file URIs for unicode paths in ruby scripts (9563cb5b5a by @chrfalch)
  • Build: Fixing unreachable-code-break (795d902270 by @ingridwang)
  • Build: Made ReactInternal compatible with Swift (fc5cc2821f by @rmaz)
  • Build: Persist PODFILE_DIR as $(SRCROOT)-relative so project.pbxproj is portable across machines (44bb83bd84 by @zoontek)
  • Build: Removing unused ivars (3d2d14df16 by @ingridwang)
  • CocoaPods: Fix Pod install checksum drifting (814ebb12b6 by @chrfalch)
  • CocoaPods: Fix REACT_NATIVE_PATH resolution when Pods/ is a symlink (ea383822b7 by @huntie)
  • CocoaPods: Fix React-CoreModules failing to compile with use_frameworks! due to missing React-featureflags header path (fb0d28c6fd by @radko93)
  • CocoaPods: Load RCTDefines.h first in the prebuilt React umbrella and drop the module * submodule wildcard so RCT_* macros propagate to consumer pods under use_frameworks!. (90c303fafb by @wneel)
  • CocoaPods: Preserve Expo-generated React-use-frameworks.modulemap across replace-rncore-version.js runs (ada39220a0 by @Insik-Han)
  • Dev Server: Fix iOS dev-support IPv6 handling for packager and inspector connections. (4a59f90c22 by @hannojg)
  • Hermes: Fix compilation error in createJSRuntimeFactory and skip Hermes pods when USE_THIRD_PARTY_JSC is enabled (2d8143794d by @tux2nicolae)
  • Networking: Fix crash in RCTWebSocketModule when delegate callbacks fire after module invalidation (587ef059a2 by @lukeharvey)
  • React Native DevTools: Fix inspector server host resolution for HTTPS bundle URLs by omitting default port (3582a8b2b5 by @cipolleschi)
  • TextInput: Fix NSRangeException crash in RCTBackedTextInputDelegateAdapter when text range is out of bounds (19350b1c8c by @lukeharvey)
  • View: Fixes crash when changing the value of removeClippedSubviews (91e3f773b7 by @javache)

Security

v0.85.3

Changed

  • React Native DevTools: Update debugger-frontend from 8edd9be...194d3f8 (9966cbdf4d by @motiz88)

Fixed

iOS specific

  • Build: Fix silent tar extraction failure on EdenFS in replace-rncore-version.js by extracting to a temp directory first (9bc7d38be0 by @motiz88)
  • Build: Skip prebuilds for DynamicFrameworks CI jobs (753c19bea4 by @motiz88)

v0.85.2

Added

  • Animated: Add pushAnimationMutations to AnimationBackend for targeted event-driven animation updates (e4f0509973 by Bartlomiej Bloniarz)

Fixed

  • Animated: Fix potential data corruption in animation backend when ShadowTree commits are retried by copying RawProps instead of moving them (77d3df8cab by Bartlomiej Bloniarz)

iOS specific

  • Dev Server: Fix "Loading from Metro..." banner getting stuck after reloads in quick succession (e122c24c27 by @alanjhughes)

v0.85.1

Fixed

Android specific

v0.85.0

Breaking

Android specific

  • Events: Re-added receiveTouches to RCTEventEmitter with a default no-op implementation to avoid breaking ecosystem libraries (67db89d08a by @javache)
  • Legacy Architecture: Deprecated UIManagerHelper.getEventDispatcherForReactTag and UIManagerHelper.getEventDispatcher(ReactContext, UIManagerType Int), use getEventDispatcher (4e5d45f4db by @javache)
  • Legacy Architecture: Stub UIImplementation class, this class is unused in the new architecture (fbe15f6605 by @mdvacca)
  • Text: Make ReactTextUpdate internal (faebee4338 by @NickGerleman)

Added

  • Animated: RCTAnimationChoreographer to RCTScheduler (019c9a7d8f by Bartlomiej Bloniarz)
  • Animated: std::mutex to AnimationBackend to protect start, stop and callbacks. (4064b89867 by Bartlomiej Bloniarz)
  • Animated: Add c++ AnimatedModule to DefaultTurboModules (15e52e3f71 by @zeyap)
  • Animated: Added support for transform operations. (58b7b052c0 by @coado)
  • Animated: Animated calls AnimationBackend::trigger to push updates from. events to the mounting layer (ac06f3bdc7 by Bartlomiej Bloniarz)
  • Animated: Animated can now prompt the backend to push changes to the shadowTree on the JS thread, making RSNRU update the ShadowNode references held by the react renderer. (f9e94c0502 by Bartlomiej Bloniarz)
  • Animated: Animation Backend examples in RNTester (149a4b8dcd by Bartlomiej Bloniarz)
  • Animated: AnimationBackend docs (f3678f51d9 by Bartlomiej Bloniarz)
  • Animated: AnimationBackend now cleans-up the AnimatedPropsRegistry after the js sync when updateRuntimeShadowNodeReferencesOnCommitThread is enabled (b38428c9bc by Bartlomiej Bloniarz)
  • Animated: Moved shadowNodeFamily_ from a map in NativeAnimatedNodesManager to PropsAnimatedNode (af96497b54 by Bartlomiej Bloniarz)
  • Animated: Updated AnimationBackend usages to use AnimationTimestamp (2a4a54ae6c by Bartlomiej Bloniarz)
  • Animated: Upstream useAnimatedColor and useAnimatedValueXY (b92d37879e by @zeyap)
  • Dev Server: Make metro accept tls server config (8915d81a5b by @vzaidman)
  • Feature Flags: Create featureflag viewTransitionEnabled (d7a1d080c2 by @zeyap)
  • JavaScript API: Added EventEmitter to react-native exports. (f7cd8c4c1c by @yungsters)
  • Pressable: Added tests for Pressability onHoverOut property (de5994817d by @chicio)
  • React Native DevTools: Added missing tests for Standalone fusebox shell (e5d720d98d by @chicio)
  • React Native DevTools: Support multiple CDP connections to one React Native Host (diff 1 of 2) (534c06f3c8 by @motiz88)
  • React Native DevTools: Support multiple CDP connections to one React Native Host (diff 2 of 2) (f04659972c by @motiz88)
  • Runtime: Added a synchronization mechanism for the layout information between the React branch and the main branch of the ShadowTree (c8d498d62d by @j-piasecki)
  • TextInput: TextInput onChange event now includes selection data (cursor location) on iOS and Android (162627af7c by @alanleedev)
  • TextInput: TextInput onChange event types now include optional selection data (c1f5445f4a by @alanleedev)
  • TypeScript: Add missing onPressMove prop to <Pressable /> (d07318226d by @retyui)

Android specific

  • Animated: Decouple ReactScrollViewHelper from kt NativeAnimated (0cde8ed0bb by @zeyap)
  • Build: Allow specifying dev server ip via gradle property (6f54846a08 by @amartinz)
  • Build: Re-added prefabPublishing=true to make Android build from source work again (e8eb37414e by @chrfalch)
  • Dev Server: Make DevSupportHttpClient public for custom dev-support HTTP header registration (58d94863f8 by @cortinico)
  • Dev Server: Public DevSupportRequestHeaders API for registering custom dev-support HTTP headers (e0d34b254a by @cortinico)
  • React Native DevTools: Restore request payload previews on Android (cc44e96e0b by @huntie)
  • Runtime: Add StateWrapper to C++ fbjni types (99b328bffa by @mrousavy)
  • ScrollView: Add scrollsChildToFocus prop to ScrollView to control automatic scrolling when a child receives focus (d9ee4bb0aa by @johankasperi)
  • Text: ReactFontManager.customFontFamilies property to query registered custom font family names (c3acbc424d by @vonovak)
  • Text: Add Unstable DrawCommandSpan Usable with PreparedLayoutTextView (ad8ac5e176 by @NickGerleman)

iOS specific

  • Build: Added support for clang virtual file system in React.XCFramework (f0422abd23 by @chrfalch)

Changed

  • Animated: AnimationChoreographer interface with an implementation for fantom tests (f8564b47fd by Bartlomiej Bloniarz)
  • Animated: Enable -DRN_USE_ANIMATION_BACKEND by default (4cfb2ee468 by @zeyap)
  • Build: Metro bump to ^0.84.0 (58ed78fec1 by @robhogan)
  • Dev Server: createDevMiddleware now accepts string | URL for serverBaseUrl (10709f427d by @emily8rown)
  • Dev Server: Remove "JavaScript logs have moved!" notice from dev server CLI (4bd62a1d41 by @huntie)
  • Hermes: Bump hermes version (4379f21bd7 by @alanleedev)
  • Hermes: Do not use hermesNightly on the release branch (c35a22db2b by @cortinico)
  • Hermes: Introduce 'Determine Hermes build flag' step (111bd59db5 by @fabriziocucci)
  • JavaScript API: Changed Flow type for URL constructor to accept URL as first argument, matching the second argument type (678f7a9cfb by @emily8rown)
  • Pressable: Pressable no longer unmounts event listeners in a hidden Activity. (c295ec2261 by @yungsters)
  • Pressable: Migrated Pressability tests to Jest modern timers (7dd2d255de by @chicio)
  • React Native DevTools: Changed debugger proxy to only permit connections from localhost. (f34b8702db by @yungsters)
  • React Native DevTools: Enable native macOS window merging (34b3c108bc by @huntie)
  • React Native DevTools: Extracting shared logic for fuseboxSessionObserver into reusable components (b0013ea22a by @emily8rown)
  • React Native DevTools: Page targets returned from /json/list will no longer set prefersFuseboxFrontend (421de23470 by @huntie)
  • React Native DevTools: Suppress LogBox warnings and errors during CDP performance tracing (a308014d87 by @emily8rown)
  • React: Make React Native consume 250829098.0.6 (4fb33022bc by @cipolleschi)
  • Runtime: cancelAnimationFrame, clearImmediate, clearTimeout and clearInterval do nothing If there is no callback associated the given handle (9d3cc383ba by @retyui)
  • Runtime: Changed how React changes are commited to the Shadow Tree (behind a feature flag) (45b4817414 by @j-piasecki)
  • Runtime: Importing hairlineWidth no longer eagerly initializes the PixelRatio TurboModule. (e11a2f07e8 by @yungsters)
  • Runtime: Logs created by console.error that begin with "Warning: " will no longer be treated as warnings. These call sites should migrate to using console.warn instead. (5ab418460b by @yungsters)
  • Runtime: Refactor how shadow tree revisions are promoted as latest for JS consistency (4a7bc4c0e7 by @j-piasecki)
  • Runtime: The JS revision merge now is scheduled on the main thread (47e5e6c394 by @j-piasecki)
  • Text: Text Can Conditionally Use "RCTSelectableText" Native Component (a175bff10a by @NickGerleman)
  • Text: Text outside the bounds of a borderRadius is now hidden by default (2111bec8d5 by @NickGerleman)
  • TypeScript: Transform $Values to Values (94383613d8 by @marcoww6)
  • TypeScript: Transform mixed to unknown in xplat/js (625d702fec by @marcoww6)
  • TypeScript: Transform $ReadOnly to Readonly 38/n (41efc3b588 by @marcoww6)
  • TypeScript: Transform $ReadOnlyArray to ReadonlyArray 17/n (7051a07c63 by @marcoww6)
  • TypeScript: Transform $ReadOnlyArray to ReadonlyArray 18/n (92c32780f1 by @marcoww6)
  • TypeScript: Transform all remaining utility types (cd3a9c55c1 by @marcoww6)
  • TypeScript: Transform mixed to unknown (60f9bfd546 by @marcoww6)
  • Yoga: Migrate YogaNode to Kotlin (cd27b7e1a8 by @mateoguzmana)

Android specific

iOS specific

Deprecated

  • Accessibility: Deprecated AccessibilityInfo.setAccessibilityFocus in favor of AccessibilityInfo.sendAccessibilityEvent (36a0d9ef63 by @Abbondanzo)

Android specific

  • Legacy Architecture: Deprecate NativeViewHierarchyOptimizer as part of Legacy Architecture cleanup (352d73bef0 by @mdvacca)

iOS specific

  • Runtime: Deprecate RCTHostRuntimeDelegate and merge into RCTHostDelegate (4626732f5b by @tsapeta)

Removed

  • Animated: AnimationBackendChoreographer, AndroidAnimationChoregrapher (bb7c0f7c5f by Bartlomiej Bloniarz)
  • Legacy Architecture: Stub UIViewOperationQueue and remove its usages (7de3dbe1c8 by @mdvacca)

Android specific

Fixed

  • Animated: (animationbackend) add default in switch statements (66f6146f6f by @zeyap)
  • Animated: Fixed TypeError when serializing arbitrary transform operation (8067f7b353 by @coado)
  • Babel: Babel-preset: Don't override explicitly-passed dev config if obsolete withDevTools is missing (c5a38ab285 by @robhogan)
  • Babel: Fix Babel transformer changing BABEL_ENV as a side effect (88d40dcda3 by @robhogan)
  • Build: Fix test build breaks after GoogleTest update (2a776b1f65 by Tal Benesh)
  • CI: Typo on maestro ios gh action for jdk step (0344c0c9cb by @gkartalis)
  • Image: When using Image with a uri, width and height the default dimensions were being lost (dd3c20057b by @javache)
  • LogBox: Fix TypeError in LogBoxInspectorReactFrames on Windows/macOS (995879ca9b by @jisoo-hisoo)
  • React Native DevTools: Reaching Metro from Debugger on urls other than localhost:8081 and 127.0.0.1:8081. (3c7b4881dd by @vzaidman)
  • React Native DevTools: Send network events to all CDP clients with the Network domain enabled (93a43c90ce by @motiz88)
  • Runtime: Fixed crash in cloneMultiple when families have no path to root (54b4cb5e89 by @coado)
  • TextInput: Fix memory leak in TextInput (5229e507e1 by @mobinni)
  • TextInput: Fixed isFocused false positive (42cd0f0414 by @chicio)
  • Yoga: Fix CQS signal modernize-use-designated-initializers in xplat/yoga/yoga/algorithm (4ef7ac3136 by generatedunixname1587093422349604)

Android specific

  • Accessibility: Properly set view.setEnabled() based on accessibilityState.disabled (fc66884d73 by @fabriziocucci)
  • Accessibility: Reset isClickable to false when recycling views to avoid accessibility tools finding views with incorrect state (07c0539cb8 by @fabriziocucci)
  • Accessibility: Reset OnClickListener to null when recycling views to avoid accessibility tools finding views with incorrect state (04bdebc585 by @fabriziocucci)
  • Accessibility: Set accessibilityRole to "link" for pressable Text components by default (68e5b4ee9f by @fabriziocucci)
  • Animated: Fix null pointer crash in FabricUIManagerBinding::driveCxxAnimations by adding null check for scheduler (349cf1595b by Dileep Siva Sai Nallabothu)
  • Animated: Prevent Native Animated tracking spring crash when tracked toValue node is detached. (45de7109fe by @kmsbernard)
  • Build: Fix included-build gradle.properties resolution for monorepos by reading from parent Gradle start parameters (projectDir/currentDir) before falling back to ../../android/gradle.properties, so hermesV1Enabled can be inherited correctly. (c5ae0c820a by @Titozzz)
  • Codegen: Validate module names in codegen (a748a405b6 by @RSNara)
  • Dev Server: Sync bundling progress between Metro cli and app hints (56e1710b73 by @vzaidman)
  • Hermes: Fixed so that all build types get the HERMES_V1_ENABLED flag (8d68b11005 by @chrfalch)
  • Hermes: Provide symbol fallbacks for inspector-modern/chrome/Registration.h when HermesV1 is disabled. (5ee695ad8f by @tjzel)
  • Hermes: ReactPlugin.kt always setting hermesV1Enabled to true (45896674d1 by @tjzel)
  • Image: Image fadeDuration=0 not working with props 2.0 enabled (3fb5c0bc02 by @hannojg)
  • Legacy Architecture: Restore getUIImplementation() stub for backwards compatibility with third-party libraries (e5d2d951de by @sammy-SC)
  • Networking: File:// URIs passed to fetch() or XMLHttpRequest no longer fail (https://github.com/facebook/react-native/issues/54626) (e76a6e2ef4 by @bhamiltoncx)
  • Runtime: Capture idle callback before running it (90e48d6031 by @mozzius)
  • Runtime: Fix thread-safety crash in DynamicFromArray by using ThreadLocal<SimplePool> instead of a shared SimplePool, matching the existing fix in DynamicFromMap (21fae86546 by @edwii-zhu)
  • ScrollView: Fixed bug where joystick could still scroll when scrollEnabled is false (c51b9698c7 by William Khoe)
  • Text: Fix crash with setting certain <Text> props back to undefined when using enablePropsUpdateReconciliationAndroid feature flag (50289e3add by @hannojg)
  • Text: FontVariants stylistic-{num} not being propagated correctly (9353eb55b8 by @dragoncodes)
  • View: Fix image content disappearing on API 24 (Nougat) when antialiased border radius clipping is applied (51ec52e806 by @Abbondanzo)

iOS specific

  • Accessibility: Ensure accessibilityElementsHidden prop is respected in recursive accessibility label aggregation (b60f533acc by Max Polevy)
  • Animated: Fixed edge-case with animating non-layout props through the commitUpdates path. (31f215a421 by @coado)
  • Animated: Revert RCTAnimatedModuleProvider change from # 55729 (85696fe by @zeyap)
  • Build: Fix unused exception parameter compile error in RCTUIManager catch block in certain build mode (58bc6c3e38 by Yannick Loriot)
  • Build: Fixed duplicate symbol error when using React.XCFramework (d21ffc9e32 by @chrfalch)
  • Build: Fixed replace script deleting the react-vfs.yaml file on iOS (11e257cec0 by @chrfalch)
  • CocoaPods: Add nkf and base64 as ruby dependencies (51c965883f by @kimchi-developer)
  • CocoaPods: Allow absolute react-native paths to be passed to use_react_native! in project podfiles (33641f09fa by @kitten)
  • CocoaPods: Regression from https://github.com/facebook/react-native/issues/54948 preventing pod install --project-directory from working properly (9f686f2014 by @kitten)
  • Dev Server: Not crashing on network issues with connecting to DevServer (ec29c292e0 by @vzaidman)
  • Dev Server: Sync bundling progress between Metro cli and app hints (e112934f2e by @vzaidman)
  • Hermes: Fix Hermes crash when async void TurboModule method throws NSException by re-throwing instead of converting to JSError on wrong thread (4083a6ff92 by @fabriziocucci)
  • Image: Fix expo-image-manipulator cropped image orientation (978d5a2d4f by @mlazari)
  • Image: Resolves a rare race-condition that can trigger in RCTImageComponentView. (3b46755b3b by Ryan Frawley)
  • Prebuild: Refactored header files generator for prebuilt React framework (3fad7dc13d by @chrfalch)
  • ScrollView: Reset contentInset in scroll view prepareForRecycle (984dbe83d8 by @sandeee1928)
  • View: Fixed transformOrigin using stale layout dimensions from recycled views, causing incorrect transform positioning (0eb5e652a2 by Mazin Zakaria)

Security

  • Dependencies: Bump to chromium-edge-launcher@^0.3.0 to drop rimraf (1f2312687b by @kitten)

v0.84.0

Breaking

Android specific

  • Legacy Architecture: Delete deprecated NativeKind class from React Native Android (284d841b3d by @mdvacca)
  • Legacy Architecture: Remove unnecessary classes inside com.facebook.react.uimanager.layoutanimation used in legacy architecture (0b09e6f696 by @cortinico)
  • Legacy Architecture: Remove unnecessary LazyReactPackage used in legacy architecture (2b09ae8992 by @cortinico)
  • Legacy Architecture: Remove unused internal NotThreadSafeBridgeIdleDebugListener (0ee4a2d01a by @cortinico)
  • Legacy Architecture: Remove unused internal NotThreadSafeViewHierarchyUpdateDebugListener (991dff2322 by @cortinico)
  • TurboModules: Remove unstable_shouldEnableLegacyModuleInterop() (e4eb64d6cc by @RSNara)

iOS specific

  • Dev Server: Make RCTPackagerConnection instance of the RCTDevSettings and use bundle config. (cf92cade49 by @coado)
  • Legacy Architecture: Remove legacy arch by default (c7f433a413 by @cipolleschi)

Added

  • Animated: A new test for the AnimationBackend (8bc6214284 by Bartlomiej Bloniarz)
  • Animated: Added transformOrigin prop support to the AnimationBackend. (20779edd3b by @coado)
  • Animated: Added support for backfaceVisibility prop and added missing flex style to the AnimatedPropsBuilder. (d379cde036 by @coado)
  • Animated: Added support for borderCurves, borderStyles, pointerEvents, isolation, cursor, boxShadow, and mixBlendMode props to the AnimationBackend. (6d5b524f87 by @coado)
  • Animated: Added support for maxWidth, maxHeight, minWidth, and minHeight props to the AnimationBackend. (3650ae3d08 by @coado)
  • Animated: Added support for overflow, position, zIndex, and direction props to the AnimationBackend. (bed1a9a20f by @coado)
  • Animated: Added support for shadowColor, shadowOffset, shadowOpacity, and shadowRadius props to the animation backend. (c31a5a8896 by @coado)
  • Animated: Added support for border width props to the animation backend. (782dc0e038 by @coado)
  • Animated: Added support for filter props to Animation Backend (e744329c3d by @coado)
  • Animated: Added support for flex props to the AnimationBackend. (33b2d6d367 by @coado)
  • Animated: Added support for margin and padding props to AnimationBackend. (cd4744cb98 by @coado)
  • Animated: Added support for outline props to the AnimationBackend. (4de9242e80 by @coado)
  • Animated: Added support for positional left, top, right, bottom props to the animation backend. (9931aeb830 by @coado)
  • Animated: Added support for transform, border radius, and background color props to Animation Backend. (e167faa449 by @coado)
  • Animated: Add connectAnimatedNodeToShadowNodeFamily method to NativeAnimatedModule and NativeAnimatedTurboModule (d7ef651c5c by Bartlomiej Bloniarz)
  • Animated: Jest tests for PlatformColor support (cbbba7b9a5 by @zeyap)
  • Animated: (js part) Support PlatformColor type of toValue and interpolation outputRange (8b6b47bd57 by @zeyap)
  • Animated: Thread down rootTag/surfaceId to AnimatedInterpolation node (b46427a673 by @zeyap)
  • Animated: UIManagerNativeAnimatedDelegateBackendImpl for running animation frame updates on android (219c2b84c2 by Bartlomiej Bloniarz)
  • Animated: Use the commit hook to reconcile the UI updates with react (d04e1528da by Bartlomiej Bloniarz)
  • Assets: Bundle support for heic and heif files (f472ef980a by @anthonybajoua)
  • Codegen: Support parsing Readonly for the new Flow utility types (a6b76c0c51 by @marcoww6)
  • Codegen: Support parsing ReadonlyArray for the new Flow utility types (3bf7a09ecb by @marcoww6)
  • Dev Server: Expose methods for registering packager connection handlers. (d9842fdbe3 by @coado)
  • ESLint: Add support for Flat Config (eslint v9) (18592451de by @pipopotamasu)
  • Fast Refresh: DevServer fast refresh banners now have a dismiss button but still tap anywhere to dismiss. (fcd63032d0 by @emily8rown)
  • JavaScript API: Added missing standard properties to URL (hash, host, pathname, etc.) and methods to URLSearchParams (get, set, delete, etc.). (f97b9a521d by Manish Balayan)
  • JavaScript API: Export usePressability hook and PressabilityConfig/PressabilityEventHandlers types from the public API (d0e9b9c078 by @natew)
  • Performance: Add ResourceReceivedData trace events for network data chunks in Performance timeline (c400b88ebf by @emily8rown)
  • TypeScript: Added missing experimental_backgroundSize, experimental_backgroundPosition, experimental_backgroundRepeat to manually written types. (37bf285836 by @tjzel)

Android specific

  • Animated: Add c++ animated support for PlatformColor type of toValue and interpolation outputRange (7941a621f9 by @zeyap)
  • Appearance: Add {add|remove}SchemeChangeListener() function to OverrideColorScheme interface to support dynamic appearance updates via override (80e384a801 by @alanleedev)
  • Events: Add onKeyDown/onKeyUp support to Android (79b09ce9c4 by @Abbondanzo)
  • Events: Include activeHitPath in payload when it's PointerUp/Down (1d6d8fc058 by @zeyap)

iOS specific

  • Accessibility: Add support for UIAccessibilityPriority in announcements (4851fb2fc3 by @maxencehenneron)
  • Animated: Allow invalidateDisplayLink on RCTAnimatedModuleProvider (7c603ee261 by @zeyap)
  • Prebuild: Added documentation for the prebuild scripts for precompiling React Native Core and React Native Dependencies. (7a66582f60 by @chrfalch)
  • ReactHost: Add new RCTBundleConfiguration for modifying bundle URL on RCTReactNativeFactory. (6fa75cce48 by @coado)

Changed

  • Accessibility: Text components with onPress or onLongPress now automatically get accessibilityRole='link' for proper accessibility support (4c732b4ccf by @fabriziocucci)
  • Animated: AnimatedPropsRegistry now also receive the updates from the synchronous updates that bypass the ShadowTree, so that these updates are not overwritten by React commits (c52d30e79b by Bartlomiej Bloniarz)
  • Animated: C++ animated now passes the calculated folly::dynamic directly to the backend, without repacking it into AnimatedProp (84e408cf89 by Bartlomiej Bloniarz)
  • Animated: CloneMultiple now invokes the callback for every cloned node, instead of doing that only for the nodes in familiesToUpdate (976c849057 by Bartlomiej Bloniarz)
  • Animated: Extracted cloneProp from AnimationBackend.cpp to AnimatedProps.h (33f783ae23 by Bartlomiej Bloniarz)
  • Animated: Move the animation backend callback scheduling, behind the isRenderCallbackStarted check. (8b95fce84e by Bartlomiej Bloniarz)
  • Animated: Split the families by SurfaceId in onAnimationFrame (5c078bd490 by Bartlomiej Bloniarz)
  • React: Sync React 19.2.3 into React Native (e6923dd1e1 by @cipolleschi)
  • Runtime: JSBigString mutable data accessor has been renamed to mutableData (3012aac2ad by @javache)

Android specific

  • Accessibility: Enabled shouldUseLinkRoleForPressableText and shouldSetEnabledBasedOnAccessibilityState feature flags by default to improve accessibility behavior. (38e3075310 by @fabriziocucci)
  • Accessibility: Set isClickable=true by default or based on the pointerEvents value for all views to improve accessibility tool detection while maintaining the configured focusable state (427995858d by @fabriziocucci)
  • View: VirtualView not clips subviews even if its parent ScrollView does not have removeClippedSubviews enabled. (b0e754bc7f by @yungsters)

iOS specific

Deprecated

  • React Native DevTools: Deprecate XHRInterceptor and WebSocketInterceptor APIs. Developer tools should use the CDP Network domain instead. (41380f39ab by @huntie)
  • TurboModules: Deprecate TurboModuleProviderFunctionType (7a6a6ae2e6 by @RSNara)

Removed

  • Babel: Remove Babel preset transforms for already-unsupported non-Hermes engines (07bd24ed0d by @robhogan)
  • Legacy Architecture: Legacy Arch: Remove Perf and Network tabs from in-app Element Inspector. See RFC0777 (b7ca04844d by @huntie)

Android specific

  • Legacy Architecture: Remove unnecessary OnBatchCompleteListener used in Legacy Architecture (1bdd2a0aba by @cortinico)
  • Legacy Architecture: Remove unnecessary and unused BridgeDevSupportManager (13da82a337 by @cortinico)

Fixed

  • Animated: Added handling of missing props to AnimatedPropsRegistry (31a9eeeba4 by @j-piasecki)
  • Animated: Check nodesManager_ in AnimatedModule::executeOperation (199b8982de by @zeyap)
  • Animated: Handle Object.create(null) correctly in AnimatedObject.js' isPlainObject function (4e0b9233c0 by @maman)
  • Animated: Nullcheck result of getAnimatedNode in NativeAnimatedNodesManager::updateNodes (3e9083b423 by @zeyap)
  • Build: Fixed hermes-compiler not being resolved correctly when your repo is set up as a monorepo using pnpm. (e23e9add80 by @tido64)
  • Build: Fixed an ENOENT exception when a dependency does not export package.json, and your repo is set up as a monorepo using pnpm (20550c45d2 by @tido64)
  • CLI: Fixed missing dependency breaking react-native config in pnpm setups (5c43ed2348 by @tido64)
  • Codegen: Ensure codegen CLI supports unspecified --outputPath argument and respects codegenConfig.outputDir configurations (716303362a by @kitten)
  • Codegen: Hash generation includes declare const types in API snapshot (c36665f7c6 by @emily8rown)
  • JavaScript API: Fixed URLSearchParams duplicate issue. (1e06c92404 by @riteshshukla04)
  • React Native DevTools: Fix a bug where we would incorrectly flag apps using additonal Hermes runtimes (e.g. Reanimated) as being multi-host (c800503214 by @huntie)
  • React Native DevTools: Fix empty screen for RNDT Network and Performance panels (c1ff074436 by @huntie)
  • StyleSheet: color and blurRadius of BoxShadowValue mistakenly swapped (8fa8fb7a52 by @Phecda)

Android specific

iOS specific

  • Accessibility: Accessibility actions labels are not read by VoiceOver (602a2d213a by @maxencehenneron)
  • Animated: Make sure to only call onRender when NativeAnimatedNodesManagerProvider is not destroyed (d8f9b3f1f5 by @zeyap)
  • Build: Address -Wswitch-default warnings for projects that use that compiler flag (4c560b118c by @NSProgrammer)
  • Build: Fix glog namespace issue to allow using interop mode of objcxx (68aab492e1 by @riteshshukla04)
  • Build: Fix missing default statements for projects that have -Wswitch-default enabled (along with -Wswitch-enum). (a210409e03 by @NSProgrammer)
  • Build: Fixed build with dynamic frameworks (1033dbd1da by @cipolleschi)
  • Build: Improve -Wswitch-default support (8f91076397 by @NSProgrammer)
  • Build: Improve -Wswitch-default support (fedd1cfbda by @NSProgrammer)
  • Build: Improve support for projects with -Wswitch-enum compiler error (f687292aad by @NSProgrammer)
  • Build: Set the CURRENT_ARCH=arm64 on M4 (b78099b821 by @ISeekTruth)
  • CocoaPods: Moved setting xcconfig to after add_rn_core pod function is called. (73d3429a44 by @chrfalch)
  • Codegen: Fix codegen failing when project is inside a hidden folder (a12b442d26 by @dinisnunes1)
  • Codegen: Fix undefined behavior for values outside of enum range in generated switch methods in Objective-C. (4bf8204391 by @NSProgrammer)
  • Dev Server: Avoid reallocating views on RCTDevLoadingView progress updates (55a5b6b015 by @shirakaba)
  • Dev Server: Fixed crash from dismiss button in DevLoadingView (6793f5cc51 by @emily8rown)
  • Dev Server: Fixed dismiss button not appearing consistently in dev loading view (336042ccb3 by @emily8rown)
  • Dev Server: Make rest of app responsive whilst dev loading banner present (f97354368c by @emily8rown)
  • Events: Fix listenerCount not resetting for RCTEventEmitter (ac8fa25147 by @brainbicycle)
  • Legacy Architecture: Fix legacy module interop not handling hitTest correctly (700d320a5f by @kruczy)
  • Prebuild: Fix incorrect source path resolution in dSYM remapping in precompiled framework scripts (f383241b19 by @chrfalch)
  • Prebuild: Fixed copying symbol bundles into correct slice folder (ac31e96e49 by @chrfalch)
  • Runtime: A Crash when some error information are nil (efd2f679f2 by @cipolleschi)
  • ScrollView: Fix crash in RCTEnhancedScrollView when scrollViewDidScroll is called (5f14001e92 by Gabriel Cadden)
  • Text: Fix rounding error occurring randomly in iOS text line height calculation (581d643a9e by @soutua)
  • Touch Handling: Remove redundant gesture to tap button when the layer beneath is already tappable (8b8cceac89 by @emily8rown)
  • Touch Handling: Respect cancelsTouchesInView when canceling touches in RCTSurfaceTouchHandler (5634e8a601 by @intmain)
  • View: Fix duplicate shadow bug during component recycling by cleaning up visual layers in prepareForRecycle (7dcedf1def by Atharv Soni)

v0.83.10

Added

iOS specific

  • Prebuild: Cache prebuilt iOS binaries in ~/Library/Caches/ReactNative so Hermes, ReactNativeDependencies and ReactNativeCore tarballs are reused across clean installs and projects instead of being re-downloaded from Maven (9a0b05b8d0 by @cipolleschi)

Fixed

  • React Native DevTools: Fix a bug where we would incorrectly flag apps using additional Hermes runtimes (e.g. Reanimated) as being multi-host (c800503214 by @huntie)
  • Yoga: Fixed Yoga node ownership when display: contents is used in absolutely positioned subtrees (f2f92098dd by @j-piasecki)
  • Yoga: Fixed display: contents nodes having hasNewLayout set incorrectly (2546ce4d82 by @j-piasecki)

Android specific

  • Networking: fetch() response URL is now correct after a redirect (fbe6a686e6 by @MarkCSmith)
  • React Native DevTools: Limit WebSocket queue size for the packager connection to prevent the Android inspector from being force-disconnected on large payloads (7164f96d58 by @huntie)

iOS specific

  • CocoaPods: Make Podfile.lock SPEC CHECKSUMS deterministic across machines by sorting Dir.glob results in Yoga.podspec and using a dynamically computed Pods-relative path in hermes-engine.podspec (64c9663152 by @IsaacIsrael)
  • View: Fixes crash when changing the value of removeClippedSubviews (91e3f773b7 by @javache)

v0.83.8

Fixed

  • Fix missing header search path for React-featureflags in React-CoreModules (2ff85bcba2 by @radko93)

v0.83.7

  • Changes to experimental features only.

v0.83.6

Fixed

  • Provide symbol fallbacks for inspector-modern/chrome/Registration.h when HERMES_V1_ENABLED is set (efc4cf4ea9 by @huntie)

iOS specific

  • Fix "Loading from Metro..." banner getting stuck after reloads in quick succession. (e122c24c27 by @alanjhughes)

v0.83.5

Fixed

  • Appearance: Fix color scheme in appearance state after setting it to unspecified (c338d19 by @ismarbesic)

Android specific

iOS specific

  • Build: Bump fmt to 12.1.0 to fix Xcode 26.4 (faeef2b90a by @leotm)
  • Hermes: Fix Hermes crash when async void TurboModule method throws NSException by re-throwing instead of converting to JSError on wrong thread (a9a976a by @fabriziocucci)

v0.83.4

Fixed

iOS specific

v0.83.3

Added

Android specific

Changed

Fixed

Android specific

  • Gradle: Fix included-build gradle.properties resolution for monorepos by reading from parent Gradle start parameters (projectDir/currentDir) before falling back to ../../android/gradle.properties, so hermesV1Enabled can be inherited correctly. (c5ae0c820a by @Titozzz)

v0.83.2

Added

Android specific

Fixed

Android specific

  • Text: Fix text clipping on Android 15+ due to useBoundsForWidth change (8347cc4b50 by @chrfalch)

v0.83.1

Fixed

Android specific

  • Networking: Fix Network error that could occur for FormData uploads with binary data (471ef7212e by @huntie)

v0.83.0

Breaking

None

Deprecated

Android specific

  • Animated: Mark startOperationBatch and finishOperationBatch as deprecated, replace with no-op (c9dcd64ed5 by @zeyap)
  • Networking: Mark NetworkingModule.sendRequestInternal as deprecated (30999b868c by @motiz88)

Added

Android specific

iOS specific

Changed

  • Animated: Initialize the backend in NativeAnimatedNodesManagerProvider (3f396616d2 by Bartlomiej Bloniarz)
  • Animated: Move using declarations into AnimationBackend class (9e98c72ad3 by @zeyap)
  • Codegen: Improve Codegen error when iOS native project not found (bc3503452f by @vonovak)
  • ESLint: Bump eslint-plugin-react-hooks to 7.0.1 (28101284a9 by @cipolleschi)
  • Hermes: Use Hermes artifacts published independently from React Native (27bb34c006 by @j-piasecki)
  • Metro: Metro bump to ^0.83.3 (89f0a37800 by @robhogan)
  • React: Bump React version to 19.2 (6f482708b5 by @cipolleschi)
  • React Native DevTools: Remove network experiment and experimental icon, Add conditional disabling of features incompatible with multiple hosts (19359ed095 by @huntie)
  • Yoga: Update copyright header in Yoga CMake file from Facebook to Meta (118a6621f5 by @aialok)

Android specific

  • Animated: [c++ animated] Course correct props at SurfaceMountingManager.updateProps() (dae2f606c7 by @zeyap)
  • Fast Refresh: Hot reload banner is now displayed in blue background like on iOS (4d45e5987c by @vzaidman)
  • Font: Request layout on configuration change only when the font scale has changed (e02e7b1a29 by @j-piasecki)
  • Hermes: Changed value of HERMESVM_HEAP_HV_MODE to HEAP_HV_PREFER32 for Hermes V1 (fcb51b1392 by @j-piasecki)
  • Kotlin: Migrated ReactRoot to Kotlin (0b14a19ea6 by @sbuggay)
  • New Architecture: Runtime check that NewArchitecture is enabled in DefaultNewArchitectureEntryPoint (d0d08e4554 by @cortinico)
  • React Native DevTools: Add Log error to discourage usages of getJSModule(RCTEventEmitter) API (aab0d3397c by @mdvacca)
  • Touch Handling: Defer to responder system to terminate on scroll (1e1af623b1 by @zeyap)
  • UI: Split VirtualViewContainerState into classic, experimental versions [Android] (793f99d949 by @CalixTang)

iOS specific

  • Image: Use CGImageSourceCreateImageAtIndex instead of CGImageSourceCreateThumbnailAtIndex to decode full-sized images (be4fcdafb1 by @tsapeta)
  • Prebuild: Update logging functions for prebuilds (f0f8b95719 by @chrfalch)

Fixed

Android specific

  • API: Correct deprecation message for ReactContextBaseJavaModule#getCurrentActivity() (81bbbe3c45 by @vladd-g)
  • Build: Fix build failures with RNGP due to AGP 9.0.0-alpha05 (69dc655005 by @cortinico)
  • Dev Menu: Fix displaying dev menu items in light mode (269b0bd877 by @coado)
  • React Native DevTools: Fix SoLoader race condition in InspectorNetworkRequestListener (6c874f25e2 by @vzaidman)
  • Hermes: Read the Hermes V1 opt-in flag from the apps properties when building from source (813b9441ca by @j-piasecki)
  • Permissions: Fix request permission not always resolving in Android 16 (39ede95921 by @lukmccall)
  • Fabric: Do not crash inside getEncodedScreenSizeWithoutVerticalInsets if SurfaceMountingManager is null (f59a6f9508 by @cortinico)
  • Runtime: Request layout on attached surfaces when font scale changes (417e068220 by @j-piasecki)
  • ScrollView: Controller-driven scroll events now honor paging/snap alignment (ed75963c0d by @Abbondanzo)
  • ScrollView: Focused scroll into view behaviors for nested vertical scroll views (26502c6319 by @rozele)
  • ScrollView: Issue with restarting scroll in maintainVisibleContentPosition (a034841fd6 by @rozele)
  • Text: Fix text not scaling down when system fontScale < 1.0 (642f086b8c by @kdwkr)
  • View: Defers focus until View is attached (9d498f676d by @rozele)
  • View: Resolves an int overflow in findNextFocusableElement (363d297260 by @rozele)

iOS specific

v0.82.1

Fixed

Android specific

  • Fixed representation of transforms when view is originally zero-sized (a81e94a40c by @javache)

iOS specific

  • Fixed issue when using gnu coreutils cp command when using precompiled binaries causing compilation error (068ec39aea by @chrfalch)

v0.82.0

Breaking

  • Appearance.setColorScheme: Appearance.setColorScheme no longer accepts a nullable value (a4581ecd8b by @huntie)
  • CxxSharedModuleWrapper: Removed CxxSharedModuleWrapper (fafbee2402 by @javache)
  • DOM API: Enable DOM APIs in host component refs (2ad845ccb2 by @rubennorte)
  • Error Handling: Unhandled promises are now handled by ExceptionsManager.handleException, instead of being swallowed as Logbox Warnings. (c4082c9ce2 by @krystofwoldrich)
  • InteractionManager: InteractionManager has been deprecated and no longer respects interaction handles. Instead, it is now recommended to avoid executing long-running JavaScript tasks by breaking them up into smaller tasks and scheduling them using requestIdleCallback(). (03d9f34a82 by @yungsters)
  • shouldEmitW3CPointerEvents: Migrate shouldPressibilityUseW3CPointerEventsForHover to common private feature flags and remove shouldEmitW3CPointerEvents flag. (fb4587780e by @coado)
  • TurboModuleUtils: Remove unused ReactCommon/TurboModuleUtils functions #deepCopyJSIObject and #deepCopyJSIArray (ead669ade3 by @christophpurrer)
  • TurboModules: Delete old location of CallbackWrapper.h / LongLivedObject.h by (cb94e71 @christophpurrer)

Android specific

  • Deps: Gradle to 9.0 (7f93b664b4 by @cortinico)
  • Image Prefetching: Android: Image Prefetching send ImageResizeMode as enum value (e30f34eda6 by @christophpurrer)
  • New Architecture: Remove possibility to newArchEnabled=false in 0.82 (d5d21d0614 by @cortinico)
  • reactNativeHost: Throw Exception if ReactApplication.reactNativeHost is not overriden (0d3791ca0a by @mdvacca)
  • ViewManagerInterfaces: Migrate ViewManagerInterfaces to kotlin. Some types in code generated ViewManagerInterfaces might differ. e.g. this will start enforcing nullability in parameters of viewManagerInterface methods (e.g. String commands parameters are not nullable, view params are not nullable in any method, etc) (79ca9036d3 by @mdvacca)

iOS Specific

Added

Android specific

  • Build Type: Create a debugOptimized buildType for Android (eb2461c7c9 by @cortinico)
  • DevMenu: Add long-press back as an option to open the DevMenu for devices that lack menu & fast-forward. (32d37f03ad by @sbuggay)
  • DevTools: DevSupportManager::openDebugger now supports an optional panel param determining the starting panel (7eb3536728 by @huntie)
  • DevTools: Adds a landing view parameter to opening RNDT, enabling arbitrary view focus on launch. (635c707eec by @sbuggay)
  • Hermes V1: Added opt-in to use the new Hermes (3e9990f860 by @j-piasecki)
  • HWInput: Channel up/down hardware events. (c2a3e4420e by @sbuggay)
  • Manifest: Add support to specify a single Manifest rather than 2 (main/debug) by using the usesCleartextTraffic manifest placeholder which is autoconfigured by RNGP. (d89acc1596 by @cortinico)

iOS specific

Changed

Android specific

Deprecated

  • APIs: Deprecate legacy javascript react native apis (e7aeea26bd by @RSNara)
  • StyleSheet: StyleSheet.absoluteFillObject is deprecated in favor of StyleSheet.absoluteFill (equivalent). (83e19813ff by @huntie)
  • Deprecate all the c++ classes not used by interop, or the new architecture. (9539cd2626 by @RSNara)

Android specific

  • DevMenu: Remove bridge mode string from React Native Dev Menu title (1c838f32a9 by @sbuggay)
  • New Architecture: DefaultDevSupportManagerFactory.create() method used for Old Arch (026e22bb8d by @cortinico)
  • New Architecture: Deprecate BridgelessReactContext.getCatalystInstance() method (4583fbe052 by @cortinico)
  • New Architecture: Deprecate legacy architecture classes ReactInstanceManager and ReactInstanceManagerBuilder, these classes will be deleted in a future release (fb84932e48 by @mdvacca)
  • New Architecture: Depreacate CoreModulesPackage and NativeModuleRegistryBuilder legacy architecture classes, these classes unused in the new architecture and will be deleted in the future (d3bbbd893a by @mdvacca)
  • New Architecture: Deprecate Legacy Architecture ViewManagers, these classes are not used as part of the new architecture and will be deleted in the future (da74d5da2c by @mdvacca)
  • New Architecture: Deprecate LegacyArchitecture ShadowNode classes included in React Native (07091a9ae8 by @mdvacca)
  • New Architecture: Depreacte all LegacyArchitecture classes from the bridge package (c1f7c5e321 by @mdvacca)
  • New Architecture: Deprecate LegacyArchitecture class UIManagerProvider (b29b86f275 by @mdvacca)
  • New Architecture: Deprecate BridgeDevSupportManager and JSInstance (25c011eb4d by @mdvacca)
  • New Architecture: Deprecate NativeModuleRegistry Legacy Architecture class (22e4c25211 by @mdvacca)
  • New Architecture: Deprecate subset of LegacyArchitecture classes in com/facebook/react/bridge (78a3ff81eb by @mdvacca)
  • New Architecture: Deprecate LegacyArchitecture class FrescoBasedReactTextInlineImageShadowNode (25f466cc4d by @mdvacca)
  • New Architecture: Deprecate Legacy Architecture class CallbackImpl (718126fcf0 by @mdvacca)
  • New Architecture: Deprecate LegacyArchitecture class JavaMethodWrapper (19a99dd088 by @mdvacca)
  • New Architecture: Deprecate Legacy Architecture ShadowNode classes (c4715886a9 by @mdvacca)
  • New Architecture: Deprecate LegacyArchitecture UIManagerModules class (85610c8b43 by @mdvacca)
  • New Architecture: Deprecate LegacyArchitecture classes from com/facebook/react/uimanager (7f5b2b8f84 by @mdvacca)
  • New Architecture: Deprecate LegacyArchitecture classes from package com.facebook.react.uimanager (39d24bade3 by @mdvacca)
  • New Architecture: Deprecate LegacyArchitecture classes from LayoutAnimation package (f67078df07 by @mdvacca)
  • New Architecture: ReactPackageLogger is not supported in the new architecture and being deprecated (65671108f6 by @mdvacca)

iOS specific

  • DevMenu: Remove bridge mode title and description from React Native Dev Menu title (775daf5972 by @sbuggay)
  • New Architecture: Deprecate all the objc classes not used by interop, or the new architecture. (70f53ac4ea by @RSNara)

Removed

Android specific

  • DefaultReactHost: Delete unused DefaultReactHost.getDefaultReactHost() overload (d35ddb5e59 by @cortinico)
  • DefaultReactHost: Remove deprecated DefaultReactHost.getDefaultReactHost() overload - part 2 (bda6acf3b0 by @cortinico)
  • DefaultReactHost: Remove deprecated DefaultReactHost.getDefaultReactHost() overload - part 1 (474f455a75 by @cortinico)
  • Inspector: Removed unused Inspector public class from React Android (cf528526cc by @cortinico)
  • JSONArguments: Remove the com.facebook.react.bridge.JSONArguments class (04ae15d99b by @cortinico)
  • MessageQueueThreadPerfStats: Deprecated MessageQueueThreadPerfStats API and replaced with stub. (3bf5cb3d0e by @javache)

Fixed

  • Accessibility: Fix for setting the default value for accessibility props (586f5ba89c by Vineeth K)
  • Accessibility: aria-hidden support for Text, non-editable TextInput and Image (0f39fc3000 by @mdjastrzebski)
  • Build: Fixed babel plugin validation error when coverage instrumentation is enabled (191ddc1ec7 by Umar Mohammad)
  • Casting: Casting rawValue to int was incorrectly truncating (31b9f10364 by @javache)
  • Codegen: Help Codegen find library's package.json if some libraries using exports field in their package.json file and the ./package.json subpath is not explicitly defined (739dfd2141 by @RakaDoank)
  • Hermes: Change leftover references to hermes.framework to hermesvm.framework (7f051c5470 by @j-piasecki)
  • Hermes V1: Fixed coordinates for Hermes V1 artifacts (674fb77d93 by @j-piasecki)
  • Performance Panel: Fix typo in Performance.js type checking condition (6caf2dfa38 by @YangJonghun)
  • Performance Panel: Add default cases to switch statements in headers (323fe3a5d4 by @NSProgrammer)
  • ReactCommon: Bring back ContextContainer::Shared = std::shared_ptr alias (daeb6e99ab by @christophpurrer)
  • ReactCommon: Bring back SharedImageManager = std::shared_ptr alias (4718b35259 by @christophpurrer)
  • ReactCommon: Fixed Type Conversion Error in DynamicEventPayload (ff38d59cff by Harini Malothu)
  • ReactCommon: Fixed Type Conversion Error in CSSHexColor (2ca88a0069 by @anupriya13)
  • TestCallInvoker: Fix memory leak in TestCallInvoker (9f2fbc23e4 by @christophpurrer)

Android specific

  • Accessability: Stabilize custom accessibility action IDs to prevent "incompatible action" errors in TalkBack. (626568f9a3 by @leg234-png)
  • Build From Source: Fix build from source due to missing folder error on Gradle 9.0 (9fbce3eff1 by @cortinico)
  • Determinism: Turned off build IDs for native libraries, fixing issues with reproducibility (4b8dbe7642 by @Rexogamer)
  • DevTools: Fix stack trace linkifying failing when using Android emulator and other situations where the device and debugger have different bundle urls (794df48ad6 by @vzaidman)
  • Edge to Edge: Fix Dimensions window values on Android < 15 when edge-to-edge is enabled (3b185e4bce by @zoontek)
  • Fonts: Update font scale when recreating RootView (5cda3065ce by @j-piasecki)
  • Fonts: Fix incorrect positioning of inline view at the end of string when RTL text in LTR container (7f224941bb by @NickGerleman)
  • Hermes V1: Changed the coordinates of hermes artifacts when using Hermes V1 (d0fb33822d by @j-piasecki)
  • Locale: Use the first available locale instead of the default one to decide isDevicePreferredLanguageRTL (a03780d279 by Kaining Zhong)
  • New Architecture: Correctly account for insets on first render of Modals on New Arch (2e76fc8e8e by @cortinico)
  • Performance: Fix mounting is very slow on Android by shipping native transform optimizations (c557311ed8 by @cortinico)
  • Scroll: Fixed an issue where shadow tree and native tree layouts mismatch at the end of a scroll event (1828c53f85 by @Abbondanzo)
  • Start up: Fix wrong default for jsBundleAssetPath on DefaultReactHost (2246e2b82c by @cortinico)

iOS specific

Security

v0.81.6

Fixed

  • Assets: Handle unstable_path query param in asset URLs (42986f27a0 by @tido64)
  • Codegen: Update generate-artifacts-executor script to account for optional output path (716303362a by @kitten)

Android specific

  • Legacy Architecture: Fix legacy architecture Android freeze on metro refresh (e7ed0b1347 by @robhogan)

iOS specific

  • Codegen: Fix outputs when iOS artifacts generator is run from Xcode script phase (c0290329cd by @kitten)
  • Events: Raised the maximum number of pointers tracked at the same time to 17 (58bd51e7e2 by @j-piasecki)

v0.81.5

Fixed

Android specific

iOS specific

  • Fix RCTDeviceInfo crash when application.delegate.window is nil in modern iOS app architectures (968909488a by @25harsh)

v0.81.4

Fixed

iOS specific

  • Fix regression that skips artifacts code generation (f6f5ea0b2e by @kitten)
  • Reapplied "Use autolinking-generated react-native-config output in second step of cocoapods linking that generates artifacts and generated source" (bb73315a3f by @kitten)

v0.81.3

Fixed

iOS specific

  • Reverted "Use autolinking-generated react-native-config output in second step of cocoapods linking that generates artifacts and generated source" (537e3ad930 by @gabrieldonadel)

v0.81.2

Added

Android specific

  • Create a debugOptimized buildType for Android (5e3edafec6 by @cortinico)
  • Add useNativeEqualsInNativeReadableArrayAndroid and useNativeTransformHelperAndroid feature flag to the experimental channel. This should alleviate some of the perf issue users are seeing on Android + Reanimated + NewArch on 0.81(a346096da8 by @cortinico)

Fixed

iOS specific

  • Fix Node scripts related to prebuilt tarball extraction for paths containing whitespaces (366f2ad505 by @kitten)
  • Use autolinking-generated react-native-config output in second step of cocoapods linking that generates artifacts and generated source (a2eb29e5e7 by @kitten)

v0.81.1

Added

iOS specific

  • Prebuild: Added setting SWIFT_ENABLE_EXPLICIT_MODULES=NO when using precompiled to support Xcode 26 (939a75b5ce by @chrfalch)

Fixed

iOS specific

  • TextInput: Setting maxLength to 0 in TextInput now correctly blocks typing (c5956da8c0 by @riteshshukla04)
  • Switch: Fix Switch layout to work with iOS 26 (ba51aeaa90 by @cipolleschi)
  • C++: Fix import RuntimeExecutor.h with USE_FRAMEWORKS (dacd8f26fd by @sharifhh)
  • Infra: Fix scripts for paths containing whitespaces (94623ca8ec by @kitten)
  • Prebuild: Fixed how we copy and build the Symbols folder when precompiling ReactNativeDependencies (a843119ff1 by @chrfalch)
  • Prebuild: Fixed wrong jsi symbols in use when using React.xcframework (8a2e7efe01 by @chrfalch)
  • Prebuild: Fixed copying bundles correctly to xcframeworks when precompiling ReactNativeDependencies.xcframework (e3adf47214 by @chrfalch)
  • Prebuild: Aligned Symbols folder in React.xcframework symbols with ReactNativeDependencies.xcframework symbols. (8c444f773a by @chrfalch)
  • Prebuild: Fix "file exists" error in ReactNativeDependencies.podspec (4c570b5d31 by @vonovak)
  • Prebuild: added explicit handling of ReactCodegen (6526a98d68 by @cipolleschi)

v0.81.0

Breaking

  • APIs: All react-native/Libraries/BugReporting APIs have been removed (9d4d8dcb02 by @huntie)
  • APIs: Add public JS API breaking change detection under yarn diff-api-snapshot script. (6b40f35032 by @coado)
  • APIs: Community CLI users: user-defined resolver.resolveRequest and serializer.getModulesRunBeforeMainModule Metro config now takes precedence over CLI defaults (fe2bcbf4ba by @robhogan)
  • Error Handling: Improve messaging and add error stack trace for uncaught throws. (5ba0e1f97a by @vzaidman)
  • Flow: The react-native package no longer ships with the flow directory (38acb4c074 by @huntie)
  • Node: Minimum Node version is now bumped to Node.js 22.14.0 (df39eadc03 by @huntie)
  • View: View no longer sets any default accessibility props, which should not result in visible changes in behaviour but may affect snapshot tests. (039a333df5 by @javache)
  • View: Upgrade View component to React 19. (eedd60b9e6 by @EvanBacon)

Android specific

  • APIs: Cleanup and internalize FpsDebugFrameCallback (cf6569bc18 by @cortinico)
  • CMake: Correctly propagate RN_SERIALIZABLE_STATE to 3rd party CMake targets. Users with custom CMake and C++ code should update to use target_compile_reactnative_options inside their CMakeLists.txt files.(c059ae1b77 by @cortinico)
  • FabricUIManager: Remove FabricUIManager.measure overload which accepts attachment positions (2ba86caf18 by @NickGerleman)
  • Kotlin: Migrate ViewManagerInterfaces to kotlin. Some types in code generated ViewManagerInterfaces might differ. e.g. this will start enforcing nullability in parameters of viewManagerInterface methods (e.g. String commands parameters are not nullable, view params are not nullable in any method, etc) (76ff1aa5c6 by @mdvacca)
  • Kotlin: Migrate com.facebook.react.ReactDelegate to Kotlin. Some users implementing this class in Kotlin could have breakages. (50ea5b4380 by @mateoguzmana)
  • Kotlin: Convert to Kotlin and internalize MountingManager (f33fdca876 by @cortinico)
  • textAlignVertical: Move textAlignVertical to paragraph attributes instead of text attributes (55fd8b26f8 by @joevilches)
  • TextLayoutManager: Make Java Side TextLayoutManager Internal (e82a677c79 by @NickGerleman)

iOS specific

Added

  • APIs: Expose unstable_TextAncestorContext API (962a7dda44 by @huntie)
  • APIs: Expose additional *AnimationConfig types on the Animated namespace (11a1ad7a98 by @huntie)
  • APIs: InterpolationConfig is now exposed on the Animated namespace (b01a5f91fe by @huntie)
  • APIs: Expose ScrollViewImperativeMethods and ScrollViewScrollToOptions types to public API (f184b591cf by Antonio Pires)
  • APIs: Add --validate flag to build-types script for JS API snapshot validation. (f529fd6ba5 by @coado)
  • Bridging: Added support for bridging Class methods return types (e403b510d0 by @hoxyq)
  • Error Handling: Improve error messages when enum members are missing (12ced22f70 by Yannick Loriot)
  • Fantom: Add Fantom.getFabricUpdateProps for reading fabric update props scheduled via UIManager::updateShadowTree (cc442eb8c8 by @zeyap)
  • Flow: Add support for Flow opaque types in codegen for native modules (a15fc102e6 by @rubennorte)
  • HMR: Process HMR registerBundle calls from the same origin only (a9007ea586 by @jbroma)
  • IntersectionObserver: IntersectionObserver support for root with fixes for viewport offsets (c5b6716311 by @lunaleaps)
  • ReactNativeFeatureFlags: Allow Custom ReactNativeFeatureFlags for Shell 2.0 (bbc1e121c7 by Maddie Lord)
  • ScrollView: Added more Pending Decleration for ScrollView (a6908ad1a5 by @riteshshukla04)
  • ShadowNode: Added cloneMultiple to ShadowNode class. (1161fb4fcd by @bartlomiejbloniarz)
  • Typescript: Add pressRetentionOffset prop to be recognised by typescript in Text.d.ts (d94f4d8c9d by @iamAbhi-916)
  • URLSearchParams: Added size property to URLSearchParams implementation (9b1a8ffac4 by @louix)

Android specific

  • BaseViewManager: Adds support for onFocus / onBlur event dispatching logic to all native views that implement BaseViewManager (e960a28af7 by @Abbondanzo)
  • Edge To Edge: Add Android edge-to-edge opt-in support (09ef774ff6 by @zoontek)
  • RNGP: RNGP- Add support for exclusiveEnterpriseRepository to specify an internal Maven mirror. (6cb8dc37c7 by @cortinico)
  • RNTester: Added explicit build tool version to RNTester build.gradle to avoid automatic installation of Android SDK Build Tools. (35dba09724 by @mojavad)
  • ScrollView: Allow fadingEdgeLength to be set independently on the start and end of the ScrollView (a21a4b87c3 by Mark Verlingieri)
  • View: Support for onFocus and onBlur function calls in View components (af0a76cf5f by @Abbondanzo)

iOS specific

Changed

  • API: NewAppScreen no longer internally handles device safe area, use optional safeAreaInsets prop (aligned in 0.81 template) (732bd12dc2 by @huntie)
  • Animated: Animated now always flattens props.style, which fixes an error that results from props.style objects in which AnimatedNode instances are shadowed (i.e. flattened to not exist in the resulting props.style object). (da520848c9 by @yungsters)
  • Animated: Creates a feature flag that changes Animated to no longer produce invalid props.style if every AnimatedNode instance is shadowed via style flattening. (5c8c5388fc by @yungsters)
  • Animated: Enabled a feature flag that optimizes Animated to reduce memory usage. (2a13d20085 by @yungsters)
  • Babel: Added support to react-native/babel-preset for a hermesParserOptions option, that expects an object that enables overriding hermes-parser options. (0508eddfe6 by @yungsters)
  • Error handling: Errors will no longer have the "js engine" suffix. (a293925280 by @yungsters)
  • Fibers: Reduces memory usage, by improving memory management of parent alternate fibers. (Previously, a parent fiber might retain memory associated with shadow nodes from a previous commit.) (0411c43b3a by @yungsters)
  • infoLog: Removed infoLog from react-native package (8a0cfec815 by @coado)
  • IntersectionObserver: Fixed IntersectionObserver#observe to avoid retaining memory for unmounted child nodes of observed views. (d945c5863a by @yungsters)
  • Jest: Improved default mocking for Jest unit tests. (1fd9508ecc by @yungsters)
  • LegacyArchitecture: Raise loglevel for assertion of LegacyArchitecture classes (38a4b62211 by @mdvacca)
  • LegacyArchitecture: Raise logLevel of LegacyArchitecture classes when minimizing of legacy architecture is enabled (0d1cde7f36 by @mdvacca)
  • Metro: Metro to ^0.83.1 (e247be793c by @motiz88)
  • React DevTools: Bumped React DevTools to 6.1.5 (c302902b1d by @hoxyq)
  • RuntimeExecutor: RuntimeExecutor: Remove noexcept from sync ui thread utils (7ef278af50 by @RSNara)
  • Typescript: Bump types/react to 19.1 (3ae9328571 by @gabrieldonadel)

Android specific

iOS specific

Deprecated

  • hasTVPreferredFocus: Deprecate hasTVPreferredFocus (cfb6c968dd by @Abbondanzo)
  • SafeAreaView: Deprecate SafeAreaView due to its iOS-only support and incompatibility with Android 15 edge-to-edge behavior; recommend using react-native-safe-area-context instead. (73133a31d5 by @kikoso)
  • ShadowNode: ShadowNode::Shared is now deprecated. Use std::shared_ptr<const ShadowNode> instead. (0e175ce5b6 by @sammy-SC)
  • ShadowNode: Deprecate type aliases ShadowNode::Unshared and ShadowNode::Weak in favour of std::shared_ptr<ShadowNode> and std::weak_ptr<ShadowNode> (12fb101e30 by @sammy-SC)

iOS specific

  • RCTFollyConvert: RCTFollyConvert.h is deprecated please use /ReactCommon/react/utils/platform/ios/react/utils/FollyConvert.h instead (685a60e6b4 by @sammy-SC)

Removed

  • Yoga: Remove YogaLayoutableShadowNode::cleanLayout() and Fix ParagraphShadowNode Font Size Invalidation Logic (7979c7ce06 by @NickGerleman)

Android specific

  • APIs: Internalize NetworkingModule's UriHandler, RequestBodyHandler, and ResponseHandler APIs (987e3f8c00 by @huntie)
  • DeveloperSettings: Remove deprecated isStartSamplingProfilerOnInit from DeveloperSettings (ccb9edc717 by @cortinico)
  • JSC: Remove 1st party JSC support (8174d02811 by @cortinico)
  • JSEngineResolutionAlgorithm: Remove and cleanup JSEngineResolutionAlgorithm (0954c1db45 by @cortinico)

iOS specific

Fixed

  • APIs: Renamed argument names in the onContentSizeChange callback's type definition (0386b9bd51 by @pchalupa)
  • BindingsInstallerHolder: Fixed deprecation message for BindingsInstallerHolder (4a8fda83e3 by @tomekzaw)
  • C++: Add default: case to avoid warnings/errors for targets that compile with -Wswitch-enum and -Wswitch-default enabled (22b8b53c77 by @NSProgrammer)
  • C++: Add default: case to avoid warnings/errors for targets that compile with -Wswitch-enum and -Wswitch-default enabled (9079b53c6f by @NSProgrammer)
  • C++: Fix clang tidy for react-native (3e49d17f58 by @RSNara)
  • Color APIs: Fix the serialization of the alpha channel in the rgba() color string format. (1cc12ce7fd by @piaskowyk)
  • Color APIs: Fix incorrect flattening / non-rendering of views with backgroundColor set to rgba(255, 255, 255, 127/256) (b1e8729f4d by @rubennorte)
  • Fantom: Support viewport offsets for Fantom root and fix getBoundingClientRect to respect viewport offsets (b5c62f52d1 by @lunaleaps)
  • IntersectionObserver: Fix potential leak inside IntersectionObserver (a55f430daa by @RSNara)
  • LogBox: Remove LogBox patch, de-duplicating errors (e0797d0e03 by @rickhanlonii)
  • ScrollView: Expose ScrollView.getNativeScrollRef on the type definition to allow accessing the underlying HostInstance. (4b91b63094 by @zbauman3)
  • Typescript: Add ImageSource type to TypeScript (42ca46b95c by @okwasniewski)
  • Typescript: Devtools TS Types (8f189fce03 by @krystofwoldrich)
  • Yoga: Fix possible invalid measurements with width or height is zero pixels (5cc4d0a086 by @NickGerleman)
  • Yoga: Fixed nodes with display: contents set being cloned with the wrong owner (d4b36b0300 by @j-piasecki)

Android specific

iOS specific

  • Gradient: Gradient interpolation for transparent colors (097d482446 by @intergalacticspacehighway)
  • Package.swift: Add missing React-RCTSettings to Package.swift (e40c1d265a by @chrfalch)
  • Package.swift: Fixed defines in Package.swift (e2f6ce4ddf by @chrfalch)
  • Podspec: Fixed premature return in header file generation from podspec globs (f2b064c2d4 by @chrfalch)
  • Podspec: Fixed issue with RNDeps release/debug switch failing (4ee2b60a1e by @chrfalch)
  • Podspec: Fixed missing script for resolving prebuilt xcframework when switching between release/debug (2e55241a90 by @chrfalch)
  • Prebuild: Fixed wrong path in prebuild hermes check (be11f2ee77 by @chrfalch)
  • Prebuild: Fixed resolving build type when downloading hermes artifacts (9371e20192 by @chrfalch)
  • RCTImage: Allow for consuming RCTImage in Swift codebase by enabling "Defines Module" option (1d80586730 by @kkafar)
  • RCTImageComponentView: Fix RCTImageComponentView image loading after source props change with no layout invalidation (cd5d74518b by Nick Lefever)
  • RCTScreenSize: Make RCTScreenSize take horizontal orientation into account (50ce8c77a7 by @okwasniewski)
  • TextInput: Fixed blank space at the bottom of multiline TextInput on iOS (2da4a6059a by @tomekzaw)
  • Turbo Modules: Turbo Modules- Fixes dictionary stripped out when value is null (4a4fd1cb8b by @zhongwuzw)

v0.80.3

Fixed

Android specific

iOS specific

v0.80.2

Added

Android specific

iOS specific

  • Cocoapods: Add the ENTERPRISE_REPOSITORY env var to let user consume artifacts from their personal maven mirror (183be8e12c by @cipolleschi)

Fixed

Android specific

  • InteropLayer: Fix ConcurrentModificationException in InteropUIBlockListener (d8b5a5570e by @jkoutavas)

v0.80.1

Added

Fixed

Android specific

v0.80.0

Breaking

  • APIs: Subpath imports to the internal react-native/virtualized-lists package are not allowed. (be8393c41b by @iwoplaza)
  • APIs: The react-native package now defines package.json "exports". (319ba0afd2 by @huntie)
  • C++: Dispatch folly::dynamic events with r-value instead of l-value (12e5df844b by @rozele)
  • C++: Introduce beforeload callback arg into ReactInstance::loadScript (061174c150 by @RSNara)
  • deps: Updated eslint-config-react-native to depend on eslint-plugin-react-hooks v5.2.0 from v4.6.0. This includes a breaking change in which ESLint will no longer recognize component names that start with 1 or more underscores followed by a capital letter. (https://github.com/facebook/react/pull/25162) (4de592756b by @yungsters)
  • NewAppScreen: The NewAppScreen component is redesigned and moved to the react-native/new-app-screen package (3cf0102007 by @huntie)

Android specific

  • APIs: Deleting ChoreographerCompat, Use Choreographer.FrameCallback instead (f8b2956437 by @mdvacca)
  • APIs: Deleting deprecated StandardCharsets (40b38d0a44 by @mdvacca)
  • APIs:: Make DeviceInfoModule internal (f02607badb by @mateoguzmana)
  • APIs:: Make ModuleDataCleaner internal (6fa1864d52 by @mateoguzmana)
  • DevX: Removed loadSplitBundleFromServer from DevSupportManager interface (86cd31eb6b by @javache)
  • Kotlin: Convert ColorPropConverter to Kotlin (57768bfbcd by @fabriziocucci)
  • Kotlin: Convert DevSupportManagerBase to Kotlin. If you're subclassing this class, you will have to adjust some of the parameters as types have changed during the migration. (9da485b54c by @cortinico)
  • Kotlin: Convert NetworkModule to Kotlin, mark methods as final (8726e26348 by @Abbondanzo)
  • Kotlin: Convert ReactEditText to Kotlin. If you're subclassing this type you'll need to adjust your signatures. (cac27d15be by @cortinico)
  • Kotlin: Convert ReactInstanceDevHelper to Kotlin. Some users implementing this class in Kotlin could have breakages. As this is a devtools/frameworks API we're not marking this as breaking. (09492075e8 by @cortinico)
  • Kotlin: Convert ReactTextInputManager to Kotlin (ab47834eb1 by @cortinico)

iOS specific

Added

Android specific

  • Accessibility: Expose Android's screenReaderFocusable prop (4ce093154d by @jorge-cab)
  • Animated: Create UIManagerNativeAnimatedDelegate to potentially drive per frame NativeAnimated update (8d6098a645 by @zeyap)
  • APIs: Collections DSL functions for Kotlin(buildReadableMap, buildReadableArray) (78dbbaafdd by @l2hyunwoo)
  • C++: Allow invoking synchronouslyUpdateViewOnUIThread from c++ via UIManager (4912958812 by @zeyap)
  • infra: Generate keep.xml to prevent resource shrinking (864833fca9 by @jakex7)
  • NewArch: Add a legacyWarningsEnabled property to enable Legacy Warnings on NewArch (7ca2811750 by @cortinico)
  • NewArch: Warn Legacy Arch users if they use a Component with a ShadowNode with YogaMeasureFunction.measure() function. That Component will stop working on NewArch. (9345c88a61 by @cortinico)
  • StyleSheet: Adds android changes for radial gradient (a2409941c2 by @intergalacticspacehighway)
  • TextInput: Add new prop for filtering drag and drop targeting to text inputs (d10dd7130c by @Abbondanzo)

iOS specific

Changed

  • Animated: Animated components' ref will now only reattach when receiving new props if the new props contain different AnimatedValue or AnimatedEvent instances. (Previously, Animated components' ref would always reattach when receiving new props.) (eeab47e61a by @yungsters)
  • Animated: When an Animated component is unmounted, any completion callbacks will now be called in a microtask instead of during the commit phase. (da1bf8d1d1 by @yungsters)
  • APIs: InteractionManager is deprecated and will be removed in a future release. Its behavior has been changed to be the same as setImmediate, and callers should migrate away from it. (a8a4ab10d0 by @yungsters)
  • Codegen: Changed react-native-codegen to support types under CodegenTypes namespace (5349b7c7b5 by @j-piasecki)
  • deps: Bump minimum Metro from 0.81.0 to ^0.81.3 || ^0.82.0 (6606a1da84 by @robhogan)
  • deps: Bump React to 19.1 (0e11e6a28b by @cipolleschi)
  • deps: Replace hsr_core dependency for react profiling with hz_tracing dependency (0f55ef7754 by @metaadrianstone)
  • deps: Update debugger-frontend from bc635fa...343405b (647af1c4ca by @huntie)
  • deps: Update Metro to ^0.82.0 (0ad192003e by @robhogan)
  • Flow: Changed Flow for the React Native monorepo, so that React no longer has to be in scope when using JSX. (1bb7446993 by @yungsters)
  • Hermes: Configured Hermes Parser for Metro to target React 19, resulting in Component Syntax no longer producing forwardRef calls. (f2518d4374 by @yungsters)
  • Hermes: Configured Hermes Parser for ReactNative to target React 19, resulting in Component Syntax no longer producing forwardRef calls. (68cad5d2d3 by @yungsters)
  • JS: eslint-config-react-native now respects rules disabled by eslint-config-prettier. (6346689c3d by @yungsters)
  • JS: Replaced let with const where applicable for better code standards and micro-optimization. (38fefb2771 by @sanjaiyan-dev)
  • TypeScript: Re-expose src/* subpaths when not using the Strict TypeScript API (1a46b203b8 by @huntie)
  • TypeScript: Replace deprecated React.ElementRef usages to React.ComponentRef (12147e3bee by @mateoguzmana)

Android specific

iOS specific

  • CocoaPods: Enable DEFINES_MODULE in React-jsc.podspec (473e42bbc3 by @krozniata)
  • Image: Update RCTImageLoader.mm to cast loadHandler to RCTImageLoaderLoggable before calling shouldEnablePerfLogging (2562440385 by Aaron Coplan)
  • ScrollView: Overwrite betterHitTest in RCTScrollViewComponentView instead of changing layout metrics of the container view (850760ab61 by @j-piasecki)
  • Text: Replace a workaround for measuring multiline text with maximumNumberOfLines on iOS with a proper solution (77cdaa8733 by @j-piasecki)

Deprecated

  • Events: Deprecate *EventData types on Image, Switch, TextInput components. These can be substituted for *Event, e.g. NativeSyntheticEvent<ImageLoadEventData> becomes ImageLoadEvent. (701859b397 by @huntie)

Android specific

  • APIs: Correctly deprecate ReactContextBaseJavaModule.getCurrentActivity() method (1408c69fd8 by @cortinico)
  • APIs: Deprecate UIManagerType.DEFAULT, replaced by UIManagerType.LEGACY (a8668319ad by @mdvacca)

iOS specific

  • Image: Deprecate loadImageForURL in favor of new signature which uses completionHandlerWithMetadata (43c9a609de by Aaron Coplan)
  • NewArch: Deprecate the RCT_NEW_ARCH_ENABLED and the RCTSetNewArchEnabled (6dd721b258 by @cipolleschi)

Removed

Android specific

iOS specific

Fixed

  • Alert: Add missing type variation {login: string, password: string} to AlertType type definition to properly support login-password prompt callbacks (c6a075bcc7 by @assynu)
  • C++: Add explicit folly/dynamic.h include where it is actually used (0b1d0e84ee by @mzlee)
  • Codegen: Do not generate Apple specific files for Android (e83ece0d17 by @cipolleschi)
  • Codegen: Fixed codegen breaking when a subset of modulesConformingToProtocol fields was specified or when the value was string (e4ef685dd7 by @j-piasecki)
  • CompatCheck: Allow union changes when the new element is in the middle of the union (69ccbc3943 by @elicwhite)
  • DevSupport: Made DevServerHelper and its method open so that they can be overridden. (2a0c1e6a9e by @chrfalch)
  • Kotlin: Made function removeView open in Kotlin class (9d11dcd3b0 by @chrfalch)
  • NewAppScreen: Fix Networking URL in New app screen (89e6c72fd4 by @riteshshukla04)
  • PullToRefresh: Fixed crash in RCTPullToRefreshViewComponentView#updateProps (fab7fa88e3 by @javache)
  • Runtime: Align timer IDs and timer function argument error handling with web standards. (480a4642e5 by @kitten)
  • StyleSheet: Outline now takes into account outline-offset to calculate its border-radius, same as web. (b47bfcef5f by @jorge-cab)
  • StyleSheet: Wrong borderBottomEndRadius on RTL (68d6ada448 by @riteshshukla04)
  • Switch: Fixed switches correctly reverting to controlled state (aa8c072870 by @javache)
  • Text: Fix New Arch handling of inline views when text truncated (99f962627f by @NickGerleman)
  • Text: Fixed text not updating correctly after changing font scale in settings (c008604e0a by @j-piasecki)
  • TurboModules: Throw ParsingException when ReactModule doesn't conform to TurboModule invariants (c5132f485f by @GijsWeterings)
  • TypeScript: Fix TS docs for contentInsetAdjustmentBehavior (24ba7dfe6f by @steinalex)
  • TypeScript: Fix generated types in react-native/virtualized-lists being used without opt-in (c9f2055097 by @j-piasecki)
  • TypeScript: Fixed the generated type definitions for Animated.FlatList and Animated.SectionList to correctly infer item types. (9be5ac1010 by @j-piasecki)
  • TypeScript: Reference global.d.ts using path so they can be resolved by TSC (6399caef63 by @krystofwoldrich)
  • VirtualizeSectionList: Fix VirtualizeSectionList generic arguments (44b0f5560b) by @coado
  • VirtualizedList: Skip cloning Fragments in ListEmptyComponent to avoid onLayout warning (2b0189b964 by @mateoguzmana)

Android specific

iOS specific

  • Accessibility: RCTDeviceInfo: fix crash due to failure to get AccessibilityManager (ac23323da1 by Adam Ernst)
  • Animated: Fix Recycling of Animated Images (1a9adfba16 by @NickGerleman)
  • API: Remove deprecated ATOMIC_VAR_INIT macro in RCTProfile.m (21bf7cf6cf by @rmaz)
  • C++: Avoid build failure on Catalyst (x86_64) (0f534293af by @cipolleschi)
  • CocoaPods: Corrected the path from "$(PODS_ROOT)/fas_float/include" to "$(PODS_ROOT)/fast_float/include" in the HEADER_SEARCH_PATHS configuration. (01881017d3 by @DorianMazur)
  • CocoaPods: Put back the folly_compiler_flag function to make libraries install pods (3b17cdb643 by @cipolleschi)
  • Codegen: Fix codegen crawling all library code with componentProvider defined in config (65aa819811 by @kkafar)
  • Codegen: Fix codegen extracting .class from complex component classes (f2b19608cc by @gabrieldonadel)
  • Codegen: Generate ReactCodegen.podspec only for apps. (18a7c8d57c by @cipolleschi)
  • Codegen: Skip codegen for selectively disabled libraries in react-native.config.js (7681036537 by @aattola)
  • Codegen: Skip codegen for selectively disabled libraries in react-native.config.js (be8595b18a by @ismarbesic)
  • Image: Fix animated images missing from offscreen render (d1a090b0af by @NickGerleman)
  • Image: Fixed accessible prop no-opts on Image components (e3f7c8f456 by @jorge-cab)
  • infra: Avoid race condition crash in RCTDataRequestHandler invalidate (44810f7498 by @zhongwuzw)
  • infra: Check .pnpm folder when looking for third-party components. (91d034533e by @kirill3333)
  • infra: Fix bug: unstable_hasComponent(*) = true for unregistered components for n > 1th call. (f4d99d6a23 by @RSNara)
  • infra: Fix bug: unstable_hasComponent(*) = true for unregistered components for n > 1th call. (fa9d082747 by @RSNara)
  • infra: Ignore build/ and DerivedData/ directories when reading .plist files. (c783128f6e by @tjzel)
  • infra: Properly check for debug schemes when building hermes from source (bef5cc1007 by @WoLewicki)
  • InteropLayer: Fixed adding child views to a native view using the interop layer (d53a60dd23 by @chrfalch)
  • LogBox: Fix disappearing redbox on initial load of an invalid bundle. (4cc9db1cd5 by @aleqsio)
  • ScrollView: Fixed touch events not being dispatched to ScrollView's children when they overflow the content container (6ecd9a43f1 by @j-piasecki)
  • StyleSheet: Box shadows on iOS are faster (52173ab701 by @joevilches)
  • Swift: Make fmt and SocketRocket Swift friendly (3f41fe2948 by @cipolleschi)
  • Switch: Fix "on" and "off" announcements on Switch (db6e000023 by @joevilches)
  • Text: ParagraphState is correctly deallocated when recycling Text (a5a71f115f by @javache)
  • Text: Allow links that encorporate entire to be keyboard accessible (83fae860df by @joevilches)
  • Text: Correctly announce "link" on nested text if its the entire text element (bffb414291 by @joevilches)
  • Text: Selection range not respected when changing text or selection when selection is forced (d32ea66e6a by Olivier Bouillet)
  • TextInput: Fix TextInput onContentSizeChange event being dispatched only once on iOS on the new architecture (5fd5188172 by @j-piasecki)

v0.79.7

See CHANGELOG-0.7x

v0.79.6

See CHANGELOG-0.7x

v0.79.5

See CHANGELOG-0.7x

v0.79.4

See CHANGELOG-0.7x

v0.79.3

See CHANGELOG-0.7x

v0.79.2

See CHANGELOG-0.7x

v0.79.1

See CHANGELOG-0.7x

v0.79.0

See CHANGELOG-0.7x

v0.78.3

See CHANGELOG-0.7x

v0.78.2

See CHANGELOG-0.7x

v0.78.1

See CHANGELOG-0.7x

v0.78.0

See CHANGELOG-0.7x

v0.77.3

See CHANGELOG-0.7x

v0.77.2

See CHANGELOG-0.7x

v0.77.1

See CHANGELOG-0.7x

v0.77.0

See CHANGELOG-0.7x

v0.76.9

See CHANGELOG-0.7x

v0.76.8

See CHANGELOG-0.7x

v0.76.7

See CHANGELOG-0.7x

v0.76.6

See CHANGELOG-0.7x

v0.76.5

See CHANGELOG-0.7x

v0.76.4

See CHANGELOG-0.7x

v0.76.3

See CHANGELOG-0.7x

v0.76.2

See CHANGELOG-0.7x

v0.76.1

See CHANGELOG-0.7x

v0.76.0

See CHANGELOG-0.7x

v0.75.5

See CHANGELOG-0.7x

v0.75.4

See CHANGELOG-0.7x

v0.75.3

See CHANGELOG-0.7x

v0.75.2

See CHANGELOG-0.7x

v0.75.1

See CHANGELOG-0.7x

v0.75.0

See CHANGELOG-0.7x

v0.74.7

See CHANGELOG-0.7x

v0.74.6

See CHANGELOG-0.7x

v0.74.5

See CHANGELOG-0.7x

v0.74.4

See CHANGELOG-0.7x

v0.74.3

See CHANGELOG-0.7x

v0.74.2

See CHANGELOG-0.7x

v0.74.1

See CHANGELOG-0.7x

v0.74.0

See CHANGELOG-0.7x

v0.73.11

See CHANGELOG-0.7x

v0.73.10

See CHANGELOG-0.7x

v0.73.9

See CHANGELOG-0.7x

v0.73.8

See CHANGELOG-0.7x

v0.73.7

See CHANGELOG-0.7x

v0.73.6

See CHANGELOG-0.7x

v0.73.5

See CHANGELOG-0.7x

v0.73.4

See CHANGELOG-0.7x

v0.73.3

See CHANGELOG-0.7x

v0.73.2

See CHANGELOG-0.7x

v0.73.1

See CHANGELOG-0.7x

v0.73.0

See CHANGELOG-0.7x

v0.72.17

See CHANGELOG-0.7x

v0.72.16

See CHANGELOG-0.7x

v0.72.15

See CHANGELOG-0.7x

v0.72.14

See CHANGELOG-0.7x

v0.72.13

See CHANGELOG-0.7x

v0.72.12

See CHANGELOG-0.7x

v0.72.11

See CHANGELOG-0.7x

v0.72.10

See CHANGELOG-0.7x

v0.72.9

See CHANGELOG-0.7x

v0.72.8

See CHANGELOG-0.7x

v0.72.7

See CHANGELOG-0.7x

v0.72.6

See CHANGELOG-0.7x

v0.72.5

See CHANGELOG-0.7x

v0.72.4

See CHANGELOG-0.7x

v0.72.3

See CHANGELOG-0.7x

v0.72.2

See CHANGELOG-0.7x

v0.72.1

See CHANGELOG-0.7x

v0.72.0

See CHANGELOG-0.7x

v0.71.19

See CHANGELOG-0.7x

v0.71.18

See CHANGELOG-0.7x

v0.71.17

See CHANGELOG-0.7x

v0.71.16

See CHANGELOG-0.7x

v0.71.15

See CHANGELOG-0.7x

v0.71.14

See CHANGELOG-0.7x

v0.71.13

See CHANGELOG-0.7x

v0.71.12

See CHANGELOG-0.7x

v0.71.11

See CHANGELOG-0.7x

v0.71.10

See CHANGELOG-0.7x

v0.71.9

See CHANGELOG-0.7x

v0.71.8

See CHANGELOG-0.7x

v0.71.7

See CHANGELOG-0.7x

v0.71.6

See CHANGELOG-0.7x

v0.71.5

See CHANGELOG-0.7x

v0.71.4

See CHANGELOG-0.7x

v0.71.3

See CHANGELOG-0.7x

v0.71.2

See CHANGELOG-0.7x

v0.71.1

See CHANGELOG-0.7x

v0.71.0

See CHANGELOG-0.7x

v0.70.15

See CHANGELOG-0.7x

v0.70.14

See CHANGELOG-0.7x

v0.70.13

See CHANGELOG-0.7x

v0.70.12

See CHANGELOG-0.7x

v0.70.11

See CHANGELOG-0.7x

v0.70.10

See CHANGELOG-0.7x

v0.70.9

See CHANGELOG-0.7x

v0.70.8

See CHANGELOG-0.7x

v0.70.7

See CHANGELOG-0.7x

v0.70.6

See CHANGELOG-0.7x

v0.70.5

See CHANGELOG-0.7x

v0.70.4

See CHANGELOG-0.7x

v0.70.3

See CHANGELOG-0.7x

v0.70.2

See CHANGELOG-0.7x

v0.70.1

See CHANGELOG-0.7x

v0.70.0

See CHANGELOG-0.7x

v0.69.12

See CHANGELOG-0.6x

v0.69.11

See CHANGELOG-0.6x

v0.69.10

See CHANGELOG-0.6x

v0.69.9

See CHANGELOG-0.6x

v0.69.8

See CHANGELOG-0.6x

v0.69.7

See CHANGELOG-0.6x

v0.69.6

See CHANGELOG-0.6x

v0.69.5

See CHANGELOG-0.6x

v0.69.4

See CHANGELOG-0.6x

v0.69.3

See CHANGELOG-0.6x

v0.69.2

See CHANGELOG-0.6x

v0.69.1

See CHANGELOG-0.6x

v0.69.0

See CHANGELOG-0.6x

v0.68.7

See CHANGELOG-0.6x

v0.68.6

See CHANGELOG-0.6x

v0.68.5

See CHANGELOG-0.6x

v0.68.4

See CHANGELOG-0.6x

v0.68.3

See CHANGELOG-0.6x

v0.68.2

See CHANGELOG-0.6x

v0.68.1

See CHANGELOG-0.6x

v0.68.0

See CHANGELOG-0.6x

v0.67.5

See CHANGELOG-0.6x

v0.67.4

See CHANGELOG-0.6x

v0.67.3

See CHANGELOG-0.6x

v0.67.2

See CHANGELOG-0.6x

v0.67.1

See CHANGELOG-0.6x

v0.67.0

See CHANGELOG-0.6x

v0.66.5

See CHANGELOG-0.6x

v0.66.4

See CHANGELOG-0.6x

v0.66.3

See CHANGELOG-0.6x

v0.66.2

See CHANGELOG-0.6x

v0.66.1

See CHANGELOG-0.6x

v0.66.0

See CHANGELOG-0.6x

v0.65.3

See CHANGELOG-0.6x

v0.65.2

See CHANGELOG-0.6x

v0.65.1

See CHANGELOG-0.6x

v0.65.0

See CHANGELOG-0.6x

v0.64.4

See CHANGELOG-0.6x

v0.64.3

See CHANGELOG-0.6x

v0.64.2

See CHANGELOG-0.6x

v0.64.1

See CHANGELOG-0.6x

v0.64.0

See CHANGELOG-0.6x

v0.63.5

See CHANGELOG-0.6x

v0.63.4

See CHANGELOG-0.6x

v0.63.3

See CHANGELOG-0.6x

v0.63.2

See CHANGELOG-0.6x

v0.63.1

See CHANGELOG-0.6x

v0.63.0

See CHANGELOG-0.6x

v0.62.3

See CHANGELOG-0.6x

v0.62.2

See CHANGELOG-0.6x

v0.62.1

See CHANGELOG-0.6x

v0.62.0

See CHANGELOG-0.6x

v0.61.5

See CHANGELOG-0.6x

v0.61.4

See CHANGELOG-0.6x

v0.61.3

See CHANGELOG-0.6x

v0.61.2

See CHANGELOG-0.6x

v0.61.1

See CHANGELOG-0.6x

v0.61.0

See CHANGELOG-0.6x

v0.60.6

See CHANGELOG-0.6x

v0.60.5

See CHANGELOG-0.6x

v0.60.4

See CHANGELOG-0.6x

v0.60.3

See CHANGELOG-0.6x

v0.60.2

See CHANGELOG-0.6x

v0.60.1

See CHANGELOG-0.6x

v0.60.0

See CHANGELOG-0.6x

v0.59.10

See CHANGELOG-0.5x

v0.59.9

See CHANGELOG-0.5x

v0.59.8

See CHANGELOG-0.5x

v0.59.5

See CHANGELOG-0.5x

v0.59.4

See CHANGELOG-0.5x

v0.59.3

See CHANGELOG-0.5x

v0.59.2

See CHANGELOG-0.5x

v0.59.1

See CHANGELOG-0.5x

v0.59.0

See CHANGELOG-0.5x

v0.58.6

See CHANGELOG-0.5x

v0.58.5

See CHANGELOG-0.5x

v0.58.4

See CHANGELOG-0.5x

v0.58.3

See CHANGELOG-0.5x

v0.58.2

See CHANGELOG-0.5x

v0.58.1

See CHANGELOG-0.5x

v0.58.0

See CHANGELOG-0.5x

v0.57.8

See CHANGELOG-0.5x

v0.57.7

See CHANGELOG-0.5x

v0.57.6

See CHANGELOG-0.5x

v0.57.5

See CHANGELOG-0.5x

v0.57.4

See CHANGELOG-0.5x

v0.57.3

See CHANGELOG-0.5x

v0.57.2

See CHANGELOG-0.5x

v0.57.1

See CHANGELOG-0.5x

v0.57.0

See CHANGELOG-0.5x

v0.56.0

See CHANGELOG-0.5x

v0.55.0

See CHANGELOG-0.5x

v0.54.0

See CHANGELOG-0.5x

v0.53.0

See CHANGELOG-0.5x

v0.52.0

See CHANGELOG-0.5x