PackageTrack

npm · #4034

@react-native/babel-plugin-codegen

0.87.1react/react-native

Babel plugin to generate native module and view manager code for React Native.

Release timeline

1147 releases since 2021
20222023202420252026

Releases

  1. 0.88.0-nightly-20260826-ea06a319126 Aug 2026pre-release

    Nothing published for this version

  2. 0.88.0-nightly-20260825-5a29c68af25 Aug 2026pre-release

    Nothing published for this version

  3. 0.88.0-nightly-20260824-0c7f63a4e24 Aug 2026pre-release

    Nothing published for this version

  4. 0.88.0-nightly-20260823-0c7f63a4e23 Aug 2026pre-release

    Nothing published for this version

  5. 0.88.0-nightly-20260822-091ac613c22 Aug 2026pre-release

    Nothing published for this version

  6. 0.88.0-nightly-20260821-26f70745221 Aug 2026pre-release

    Nothing published for this version

  7. 0.88.0-nightly-20260820-6c4cf296820 Aug 2026pre-release

    Nothing published for this version

  8. 0.88.0-nightly-20260819-4338af05119 Aug 2026pre-release

    Nothing published for this version

  9. 0.88.0-nightly-20260818-11f9a7f4418 Aug 2026pre-release

    Nothing published for this version

  10. 0.88.0-nightly-20260817-376b99ff117 Aug 2026pre-release

    Nothing published for this version

  11. 0.88.0-nightly-20260816-d07bd6f8316 Aug 2026pre-release

    Nothing published for this version

  12. 0.88.0-nightly-20260815-d07bd6f8315 Aug 2026pre-release

    Nothing published for this version

  13. 0.88.0-nightly-20260814-88043334e14 Aug 2026pre-release

    Nothing published for this version

  14. 0.88.0-nightly-20260813-a4733b1ca13 Aug 2026pre-release

    Nothing published for this version

  15. 0.88.0-nightly-20260812-22cfb5cae12 Aug 2026pre-release

    Nothing published for this version

  16. 0.88.0-nightly-20260810-8415753e210 Aug 2026pre-release

    Nothing published for this version

  17. 0.88.0-nightly-20260809-db662caea9 Aug 2026pre-release

    Nothing published for this version

  18. 0.88.0-nightly-20260808-85a81818c8 Aug 2026pre-release

    Nothing published for this version

  19. 0.88.0-nightly-20260807-5fb3ebce17 Aug 2026pre-release

    Nothing published for this version

  20. 0.88.0-nightly-20260806-65008fcdd6 Aug 2026pre-release

    Nothing published for this version

  21. 0.88.0-nightly-20260805-f2188610c5 Aug 2026pre-release

    Nothing published for this version

  22. 0.88.0-nightly-20260804-3a95e0e934 Aug 2026pre-release

    Nothing published for this version

  23. 0.88.0-nightly-20260803-63e9c15443 Aug 2026pre-release

    Nothing published for this version

  24. 0.88.0-nightly-20260802-8e995e8da2 Aug 2026pre-release

    Nothing published for this version

  25. 0.88.0-nightly-20260801-c7d62a1251 Aug 2026pre-release

    Nothing published for this version

  26. 0.88.0-nightly-20260730-8e744641230 Jul 2026pre-release

    Nothing published for this version

  27. 0.88.0-nightly-20260729-ca750feef29 Jul 2026pre-release

    Nothing published for this version

  28. 0.88.0-nightly-20260728-6f6efed3e28 Jul 2026pre-release

    Nothing published for this version

  29. 0.88.0-nightly-20260727-c1843c4db27 Jul 2026pre-release

    Nothing published for this version

  30. 0.88.0-nightly-20260726-c1843c4db26 Jul 2026pre-release

    Nothing published for this version

  31. 0.88.0-nightly-20260725-f46ace87825 Jul 2026pre-release

    Nothing published for this version

  32. 0.88.0-nightly-20260724-a8f68dac724 Jul 2026pre-release

    Nothing published for this version

  33. 0.88.0-nightly-20260723-e46189e1e23 Jul 2026pre-release

    Nothing published for this version

  34. 0.88.0-nightly-20260722-eb4d3892a22 Jul 2026pre-release

    Nothing published for this version

  35. 0.88.0-nightly-20260721-7bb31ff7b21 Jul 2026pre-release

    Nothing published for this version

  36. 0.88.0-nightly-20260720-e6402786520 Jul 2026pre-release

    Nothing published for this version

  37. 0.88.0-nightly-20260719-9f3108d6119 Jul 2026pre-release

    Nothing published for this version

  38. 0.88.0-nightly-20260718-b587763f418 Jul 2026pre-release

    Nothing published for this version

  39. 0.88.0-nightly-20260717-b33de750b17 Jul 2026pre-release

    Nothing published for this version

  40. 0.88.0-nightly-20260716-dd5dc6b2316 Jul 2026pre-release

    Nothing published for this version

  41. 0.88.0-nightly-20260715-ef54f74de15 Jul 2026pre-release

    Nothing published for this version

  42. 0.88.0-nightly-20260714-a016e94b514 Jul 2026pre-release

    Nothing published for this version

  43. 0.88.0-nightly-20260713-b31ba29d213 Jul 2026pre-release

    Nothing published for this version

  44. 0.88.0-nightly-20260712-1790c61ac12 Jul 2026pre-release

    Nothing published for this version

  45. 0.88.0-nightly-20260711-042833e6911 Jul 2026pre-release

    Nothing published for this version

  46. 0.88.0-nightly-20260710-102fde7b610 Jul 2026pre-release

    Nothing published for this version

  47. 0.88.0-nightly-20260709-24e4b2cae9 Jul 2026pre-release

    Nothing published for this version

  48. 0.87.126 Aug 2026
    Release notes

    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)

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
    Additional notes

    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)
    Open source →
  49. 0.87.011 Aug 2026
    Release notes

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
    Additional notes

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
    Additional notes

    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](htt
    Open source →
  50. 0.87.0-rc.44 Aug 2026pre-release
    Release notes

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
    Additional notes

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
  51. 0.87.0-rc.327 Jul 2026pre-release
    Release notes

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
    Additional notes

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
  52. 0.87.0-rc.220 Jul 2026pre-release
    Release notes

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
    Additional notes

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
  53. 0.87.0-rc.115 Jul 2026pre-release
    Release notes

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
    Additional notes

    Hermes V1 dSYMS:

    ReactNativeDependencies dSYMs:

    ReactNative Core dSYMs:


    You can file issues or pick requests against this release here.


    To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


    View the whole changelog in the CHANGELOG.md file.

    Open source →
  54. 0.87.0-rc.07 Jul 2026pre-release
    Release notes

    [!WARNING] This is a release candidate. It is not intended for production use.

    Changelog

    Full Changelog


    Install:

    npm install [email protected]
    

    Report issues: https://github.com/react/react-native/issues

    Open source →
    Additional notes

    Warning

    This is a release candidate. It is not intended for production use.

    Changelog

    Full Changelog


    Install:

    npm install [email protected]

    Report issues: https://github.com/react/react-native/issues

    Open source →
    Additional notes

    Breaking

    • Remove deprecated StatusBar backgroundColor / translucent / networkActivityIndicatorVisible props and setBackgroundColor / setTranslucent / setNetworkActivityIndicatorVisible methods (6b45e579d6 by @zoontek)
    • Remove deprecated boolean values support for ScrollView keyboardShouldPersistTaps (5bf3e38db2 by @zoontek)
    • Set max font scaling in LogBox to avoid layout breaking (4aef2b0126 by @pchalupa)
    • Remove RawPropsKey prefix and suffix (67381e157f by @javache)
    • 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)
    • Compile out RuntimeScheduler_Legacy under RCT_REMOVE_LEGACY_ARCH (d205267a5f by @christophpurrer)
    • Strict TypeScript API: Remove legacy NativeMethods and NativeMethodsMixin types (b724611aec by @huntie)
    • The NativeDialogManagerAndroid export is removed. (a793d21a7e by @huntie)
    • 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)
    • Remove support for connecting to the standalone react-devtools package via WebSocket. Use React Native DevTools instead. (f1971caa44 by @huntie)
    • Require Node.js >= 22.13.0 (a0d39e7a9c by @huntie)
    • Remove Legacy Hermes from C++ code (f9476256bd by @cipolleschi)
    • Fix return type of useColorScheme() hook (now ColorSchemeName | null) (ef6463c25d by @huntie)
    • useColorScheme() no longer returns 'unspecified' (this was always the case, but is a breaking type change) (8ac88f481a by @huntie)

    Android specific

    iOS specific

    Added

    • Introduce react-native/asset-utils package (relocates Android path utils for libraries/frameworks) (41d52189e2 by @huntie)
    • Add IntBuffer and DoubleBuffer entry types to MapBuffer for compact homogeneous int/double arrays (e7cadaf9f3 by @javache)
    • Add support for textAlign: 'start' and textAlign: 'end'. (ca29d38537 by @SJvaca30)
    • Strict TypeScript API: Component and API doc comment coverage has been significantly improved (701de4ec3d by @huntie)
    • Add selection to TextInputChangeEventData in TypeScript types (e745c41a6b by @nsbarsukov)
    • Strict TypeScript API: Export Animated.Numeric (6206b0b01f by @huntie)
    • Export AccessibilityActionInfo, ImageResizeMode, EdgeInsetsProp, and TextInputBlurEvent types (ee36c67a27 by @huntie)
    • Support native driven AnimatedValue interpolation easing (57ce6bc585 by @zeyap)
    • Remove useNativeDriver under featureflag animatedForceNativeDriver (9cf30b6e4b by @zeyap)
    • Implement the Page.addScriptToEvaluateOnNewDocument and Page.removeScriptToEvaluateOnNewDocument CDP methods in the modern inspector (bc20ec88eb by @GijsWeterings)
    • Remove useNativeDriver under featureflag animatedForceNativeDriver (cffe14ff57 by @zeyap)
    • Add Promise.try + Promise.withResolvers typescript types (b99ddaf606 by @retyui)
    • Gate shared C++ and Android Java/Kotlin legacy view manager interop behind RCT_REMOVE_LEGACY_COMPONENT_INTEROP (9885fe95ef by @christophpurrer)
    • Text decorations honor textDecorationStyle (solid, double, dotted, dashed, wavy) (87184c8fba by @quantizor)
    • Gate legacy view manager interop behind RCT_REMOVE_LEGACY_COMPONENT_INTEROP (8b959b46ea by @christophpurrer)
    • Add CSS Flexbox §4.5 automatic minimum sizing. Opt in by clearing the new YGErrataMinSizeUndefinedInsteadOfAuto errata bit on YGConfig. (b766986387 by @adityasharat)
    • Strict TypeScript API: Add *Instance ref types for all built-in components (a3827f32f4 by @huntie)
    • Changelog: [GENERAL][ADDED] Gate legacy TurboModule interop behind RCT_REMOVE_LEGACY_MODULE_INTEROP (3278f309e2 by @christophpurrer)

    • 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)
    • StatusBar: support barStyle="auto" to follow the current color scheme (61c8b040bf by @zoontek)
    • Add TypeScript support for Error cause property (abcb7821b1 by @gimi-anders)
    • Add Systrace.trace helper that wraps a function with begin/end events using try/finally (e6c7a269d2 by @rubennorte)
    • Add ArrayBuffer support to C++ TurboModules (226ef2e7c5 by @paradowstack)
    • Add All Animated Props example to the rn-tester Animation Backend section (e2e655385c by Bartlomiej Bloniarz)
    • Add Performance Test example to the rn-tester Animation Backend section (09e55cb7c6 by Bartlomiej Bloniarz)
    • Add optimizedAnimatedPropUpdates feature flag (ed96b22af2 by Bartlomiej Bloniarz)

    Android specific

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

    iOS specific

    • Add enableIOSCompressedTextFrameAdjustment feature flag for Text rendering adjustments. (b933d45276 by @sbuggay)
    • Add ArrayBuffer support to ObjC TurboModules (54b88d9dea by @paradowstack)
    • Export RCTDidInitializeModuleNotificationModuleKey constant for RCTDidInitializeModuleNotification userInfo (217ee52d4f by Eapen George)
    • Added comment to clarify why i18nManager.isRTL may not return the expected value (e4a5ed3c6d by @scarlac)
    • textDecorationStyle: 'dotted' and 'dashed' for <Text> render with custom CoreGraphics paths instead of UIKit pattern bits, matching browser geometry more closely (9d037509bf by @quantizor)

    Changed

    • Make the window global non-writable and non-configurable, and the navigator global non-writable (347f8d081e by @rubennorte)
    • Metro to 0.86.0 (2b0107e0aa by @robhogan)
    • Change default transform profile to 'hermes-stable' (a2cd37f828 by @retyui)
    • React Native DevTools: Expose new options in the app menu (24e370096e by @huntie)
    • Replace abort-controller with fork version from react-native (6f3375a140 by @retyui)
    • Fix missing VERSION_NATIVE_FB in commit artifacts (c6f29a2173 by @javache)
    • React Native DevTools: Add macOS 26/27 app icon (fa371d156d by @huntie)
    • Enable Animated flush-queue debouncing (animatedShouldDebounceQueueFlush) by default (5c197fb303 by @zeyap)
    • Make EventTarget methods enumerable by spec (25c25b3c7c by @retyui)
    • 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)
    • Flip cxxNativeAnimatedEnabled featureflag default to true (fc7dc741d2 by @zeyap)
    • Make flattenStyle avoid extra intermediate objects when flattening nested style arrays. (d26f7b338d by @tarikfp)
    • Remove experimental_ prefix from backgroundImage (58688bf176 by @intergalacticspacehighway)
    • Mark parent dirty when child is freed (4adca58f4c by @harsha-cpp)
    • Expose IntersectionObserverEntry as a global (4deb32a507 by @rubennorte)
    • The default value of the useTurboModules ReactNativeFeatureFlags flag is now true (db4c6ee3b6 by @mdvacca)
    • 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)
    • Clarify Android AppState background API documentation. (b09fce6db5 by @federicobartoli)
    • Simplified build JS Hermes infrastructure for the Release (d49aac6b65 by @cipolleschi)
    • Bump Hermes V1 to 250829098.0.13 (0175449606 by @robhogan)

    Android specific

    iOS specific

    • 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)
    • 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)
    • 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)

    Deprecated

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

    Android specific

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

    iOS specific

    Removed

    • 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)
    • Removed RCTDefaultCxxLogFunction (2b6f605b3c by @javache)
    • Remove deprecated InteractionManager (use requestIdleCallback instead) (ed893f7d98 by @rubennorte)
    • Remove unused enableVirtualViewDebugFeatures feature flag and the associated FlingItemOverlay / FlingDebugItemOverlay debug surfaces. (083fd99ba4 by @javache)
    • Remove the useTurboModules feature flag. TurboModules are now always enabled. (b4a715ca1f by @mdvacca)
    • Remove the experimental native View prop transformation feature flag. (2c2cd9ef54 by @sammy-SC)
    • Removed the unused disableMaintainVisibleContentPosition feature flag from ReactNativeFeatureFlags (661ce06e02 by generatedunixname1608173377072046)
    • Remove unused useLISAlgorithmInDifferentiator feature flag and LIS algorithm code from the Differentiator (9f4513c751 by @javache)

    Android specific

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

    iOS specific

    Fixed

      • [General][Breaking] - 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)
    • Strict TypeScript API: Add missing textAlignVertical prop on <TextInput> (e04ff69ab3 by @huntie)
    • Fixed potential revision drop during merge (c65845cde2 by @j-piasecki)
    • Preserve doc comments on root API symbols in the generated TypeScript types (642273788b by @huntie)
    • Avoid memcpy(_, nullptr, 0) UB in MapBufferBuilder::build for empty / scalar-only MapBuffers (34ccf4f331 by @javache)
    • Fix a surface-stop race in the C++ Animated shared backend that could permanently leak per-surface animated state (d9d2502b61 by Bartlomiej Bloniarz)
    • Make AbortSignal.any() process its input signals in multiple passes to match the DOM specification (1136e41bd8 by @rubennorte)
    • Fix Blob.slice() for negative start offsets and inverted ranges (b29dc966a4 by @durvesh1992)
    • Set FileReader readyState to LOADING during a read so abort() correctly emits abort/loadend (c00813c6ee by @durvesh1992)
    • Fix a race in the C++ Animated render-callback lifecycle that could leave stale callbacks running on every frame (e442c496b7 by Bartlomiej Bloniarz)
    • 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)
    • Add eventCount to TextInputKeyPressEventData type (886faee2d1 by @pchalupa)
    • Include a node's padding and border in its automatic minimum size when it has a measure function (91886f7c88 by @adityasharat)
    • Removed wrong changelog entry in 0.83.2 (ef38ba4050 by @chrfalch)
    • Crash: YogaLayoutableShadowNode.cpp: function layout: assertion failed (YGNodeGetOwner(childYogaNode) == &yogaNode_) https://github.com/react/react-native/issues/52349 (6fa330693f by @5ZYSZ3K)
    • Base64-encode binary (arraybuffer/blob) response bodies in the C++ NetworkingModule so they are not corrupted when delivered to JS (1127e54d53 by @sathoshik)
    • Fix asyncArrayBufferBorrowNativeBackedTest unconditional skip on Hermes (9d54391814 by @christophpurrer)
    • Add missing pointer event handler types (onPointerOver, onPointerOut, onGotPointerCapture, onLostPointerCapture, and their *Capture variants) to the TypeScript types (20931fe975 by @ahmdshrif)
    • Fix text measurements being incorrectly reused across pixel density changes (d53c7b52a6 by @jehartzog)
    • Update ImageSource.d.ts see reference URL to reflect current repository structure (6eb07a813d by @ergenekonyigit)
    • Strict TypeScript API: Add missing pointerEvents prop to Text component (a2e042f76a by @huntie)
    • 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)
    • Expose Modal native ref prop in TypeScript declarations (7cc8c76e83 by @ya-nsh)
    • Fixed a regression that causes crashes on reload for ReactCxxPlatform's ReactHost (ac81869f05 by @etodanik)
    • Suppress React.Fragment style warning when used as a child of TouchableHighlight (d7b5314bd8 by @qflen)
    • React Native DevTools will no longer briefly flash in the system dock/taskbar when starting Metro (6aa7e35ec3 by @huntie)
    • Parse Image srcSet density descriptors consistently (e4cf0a1cc3 by @ya-nsh)
    • Align TypeScript accessibility role definitions with supported React Native accessibility roles (75e1f06b66 by @ya-nsh)
    • Fix hover out timeout stored in wrong variable in Pressability (74b1a4d026 by @w3di)
    • Fix missing format specifier in renderApplication invariant (bc1a31fb16 by @w3di)
    • Strict TypeScript API: Update getNativeScrollRef return type across ScrollView, FlatList, and SectionList (535b844680 by @huntie)
    • Changelog:[GENERAL] [FIXED] - Change FlatList.getNativeScrollRef return type definition to allow accessing the underlying HostInstance. (5162816e03 by @janpe)

    • Re-enabled VirtualizedList "retains batch render region when an item is appended" tes (c0bf1549c2 by @chicio)
    • Fix missing and incorrect types in AccessibilityInfo TypeScript definitions (4255f9bd89 by @huntie)
    • Add null check on JNI return value in JCxxInspectorPackagerConnectionDelegateImpl::connectWebSocket to prevent null dereference (fa05b8c88b by @shubhamksavita)

    Android specific

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

    iOS specific

    • Prevent Alert and Modal from rendering in the top-left corner (859bdb89e5 by @zoontek)
    • Fix a data race in RCTImageLoader loader and decoder lazy initialization that could crash with EXC_BAD_ACCESS (7ed17c9d09 by Miklós Fazekas)
    • Fix React-RCTAnimatedModuleProvider build by adding the missing Yoga dependency and a missing space between compiler flags (08ef7b18d2 by @zoontek)
    • Add an explicit wake up call to the main loop hen scheduling a React revision merge (0cdb59f1b4 by @j-piasecki)
    • Add missing RCT_REMOVE_LEGACY_COMPONENT_INTEROP guard to LegacyViewManagerInteropComponentDescriptor (510cc0c5ec by @christophpurrer)
    • Always return true in RCTTurboModuleEnabled (aee4a2586e by @christophpurrer)
    • Deprecate RCTTurboModuleEnabled() and RCTEnableTurboModule() (feede1422b by @christophpurrer)
    • Allow iOS apps with the dev menu enabled (RCT_DEV_MENU) to connect to Metro via "Change Bundle Location" (94380cb4ad by @fmacinator)
    • Expose the bridgeless performance logger via RCTBridgeProxy and post RCTJavaScriptDidLoadNotification, so native startup-perf consumers work in bridgeless (9568de5a2d by @fkgozali)
    • Fix codegen script phase error logging in script_phases.sh (f14207f9bd by @fallintoplace)
    • Fixed percentage-based border radius (b4966128af by @j-piasecki)
    • Remove unsafe window manipulation in RCTLogBoxView dealloc to prevent crash with SceneDelegate (4f825d3469 by @aswinandro)
    • Fix TypeError crash in ResponderTouchHistoryStore when changedTouches is undefined (2c6cb27f88 by generatedunixname1608173377072046)

    Security

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

    Android specific

    iOS specific

    Unknown

    Android Unknown

    iOS Unknown

    Failed to parse

    Open source →
  55. 0.87.0-nightly-20260708-b67b7ba628 Jul 2026pre-release

    Nothing published for this version

  56. 0.87.0-nightly-20260707-b67b7ba627 Jul 2026pre-release

    Nothing published for this version

  57. 0.87.0-nightly-20260706-e04ff69ab6 Jul 2026pre-release

    Nothing published for this version

  58. 0.87.0-nightly-20260705-e04ff69ab5 Jul 2026pre-release

    Nothing published for this version

  59. 0.87.0-nightly-20260704-e04ff69ab4 Jul 2026pre-release

    Nothing published for this version

  60. 0.87.0-nightly-20260703-dfab628f83 Jul 2026pre-release

    Nothing published for this version