NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3386 most downloaded on npm
Babel preset for React Native applications
Last release today
17 Sep 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
1174 releases · first in 2023
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
SwiftPM: Added hard fail and clear error message when an autolinking plugin host is referenced as a dependency ( 90a539c92d by @chrfalch )
Animated.Value.addListener() types its callback payload as {value: number} rather than any (3eab03df4c by @huntie)Animated.event() is typed as an event handler rather than any (3eb330a365 by @huntie)add_rn_third_party_dependencies (71c6bfbfdc by @Kudo)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.
You can file issues or pick requests against this release here.
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.
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)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)'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)NativeDialogManagerAndroid export is removed. (a793d21a7e by @huntie)Touchable root export (undocumented) is removed. If you are extending Touchable as a type, please use ViewProps instead. (6fbf3062f9 by @huntie)react-native/rn-get-polyfills is removed — please use react-native/js-polyfills (package) (b6a535afee by @huntie)react-native/jest-preset is removed — all projects must now migrate to react-native/jest-preset (package) (9ee21ddd9b by @huntie)LogBox to avoid layout breaking (4aef2b0126 by @pchalupa)react-devtools package via WebSocket. Use React Native DevTools instead. (f1971caa44 by @huntie)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 keyboardShouldPersistTaps (5bf3e38db2 by @zoontek)StatusBar backgroundColor / translucent / networkActivityIndicatorVisible props and setBackgroundColor / setTranslucent / setNetworkActivityIndicatorVisible methods (6b45e579d6 by @zoontek)NativeMethods and NativeMethodsMixin types (b724611aec by @huntie)customConditions: ["react-native-legacy-deep-imports"] to opt out. (c948b61c05 by @huntie)useNativeDriver under featureflag animatedForceNativeDriver (9cf30b6e4b by @zeyap)useNativeDriver under featureflag animatedForceNativeDriver (cffe14ff57 by @zeyap)optimizedAnimatedPropUpdates feature flag (ed96b22af2 by Bartlomiej Bloniarz)react-native/asset-utils package (relocates Android path utils for libraries/frameworks) (41d52189e2 by @huntie)'react-native/Libraries/Core/InitializeCore'. Use 'react-native/setup-env' instead. (bfa679f0ea by @huntie)RCT_REMOVE_LEGACY_COMPONENT_INTEROP (9885fe95ef by @christophpurrer)RCT_REMOVE_LEGACY_COMPONENT_INTEROP (8b959b46ea by @christophpurrer)RCT_REMOVE_LEGACY_MODULE_INTEROP (3278f309e2 by @christophpurrer)IntBuffer and DoubleBuffer entry types to MapBuffer for compact homogeneous int/double arrays (e7cadaf9f3 by @javache)Systrace.trace helper that wraps a function with begin/end events using try/finally (e6c7a269d2 by @rubennorte)Page.addScriptToEvaluateOnNewDocument and Page.removeScriptToEvaluateOnNewDocument CDP methods in the modern inspector (bc20ec88eb by @GijsWeterings)barStyle="auto" to follow the current color scheme (61c8b040bf by @zoontek)Animated.Numeric (6206b0b01f by @huntie)*Instance ref types for all built-in components (a3827f32f4 by @huntie)textAlign: 'start' and textAlign: 'end'. (ca29d38537 by @SJvaca30)textDecorationStyle (solid, double, dotted, dashed, wavy) (87184c8fba by @quantizor)ArrayBuffer support to C++ TurboModules (226ef2e7c5 by @paradowstack)selection to TextInputChangeEventData in TypeScript types (e745c41a6b by @nsbarsukov)AccessibilityActionInfo, ImageResizeMode, EdgeInsetsProp, and TextInputBlurEvent types (ee36c67a27 by @huntie)Promise.try + Promise.withResolvers typescript types (b99ddaf606 by @retyui)cause property (abcb7821b1 by @gimi-anders)YGErrataMinSizeUndefinedInsteadOfAuto errata bit on YGConfig. (b766986387 by @adityasharat)YGErrataMinSizeUndefinedInsteadOfAuto errata bit on YGConfig. Adds YGNodeSetMinContentWidth/Height for static contributions and YGMinContentMeasureFunc for dynamic ones.' (7f396d1116 by @adityasharat)compileSdk and buildTools to 37 (3e8dfb1e64 by @alanjhughes)MapBufferList type to MapBuffer for ordered lists of nested MapBuffers (6a957746f6 by @javache)ACCESS_LOCAL_NETWORK to PermissionsAndroid and request it so the dev server stays reachable on Android 17 (SDK 37) (2bc2c8d7e6 by @alanjhughes)ReactContext.getRuntimeExecutor() (dc9043e940 by @javache)RCTDidInitializeModuleNotificationModuleKey constant for RCTDidInitializeModuleNotification userInfo (217ee52d4f by Eapen George)enableIOSCompressedTextFrameAdjustment feature flag for Text rendering adjustments. (b933d45276 by @sbuggay)textDecorationStyle: 'dotted' and 'dashed' for <Text> render with custom CoreGraphics paths instead of UIKit pattern bits, matching browser geometry more closely (9d037509bf by @quantizor)animatedShouldDebounceQueueFlush) by default (5c197fb303 by @zeyap)abort-controller with fork version from react-native (6f3375a140 by @retyui)EventTarget methods enumerable by spec (25c25b3c7c by @retyui)experimental.instance_t_objkit_fix across fbsource roots (71fee907fb by @SamChou19815)in/out (9f558a4d6a by @marcoww6)IntersectionObserverEntry as a global (4deb32a507 by @rubennorte)window global non-writable and non-configurable, and the navigator global non-writable (347f8d081e by @rubennorte)interface declarations, enabling module augmentation by libraries like Uniwind (preserve compatibility) (2574863642 by @huntie)interface declarations, enabling module augmentation by libraries like NativeWind and Expo (preserve compatibility) (db89600b56 by @huntie)flattenStyle avoid extra intermediate objects when flattening nested style arrays. (d26f7b338d by @tarikfp)experimental_ prefix from backgroundImage (58688bf176 by @intergalacticspacehighway)useTurboModules ReactNativeFeatureFlags flag is now true (db4c6ee3b6 by @mdvacca)ReactHorizontalScrollView from Java to Kotlin (5c680995bd by @cortinico)ReactScrollView and ReactNestedScrollView from Java to Kotlin (9d65e6c497 by @cortinico)ReactShadowNode interface from Java to Kotlin (f07c7cceee by @cortinico)UIManagerModule from Java to Kotlin (21dfc2a855 by @cortinico)UIViewOperationQueue from Java to Kotlin (7a8344c037 by @cortinico)BridgeReactContext from Java to Kotlin (6720760faf by @cortinico)ReactNativeHost from Java to Kotlin (no behavioral changes) (7eb11331b6 by @cortinico)arc lint --take KTFMT (f9ba09d60e by generatedunixname1430061942044674)ViewManager#measure (63683f091c by @javache)s.dependency on RCT-Folly/glog/boost/etc. via dependency-only facade pods (a8156acf8b by @chrfalch)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)BeforeWaiting main run loop observer instead of dispatching each merge as a separate main-queue block (d80377cd60 by @j-piasecki)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)Appearance.setColorScheme('unspecified') is deprecated, use 'auto' instead. (91702e50fe by @huntie)react-native/assets-registry. Use AssetRegistry from react-native and react-native/asset-utils instead. (715eeaad69 by @huntie)ImageBackground, use a View with an absolutely positioned Image instead (2361189716 by @zoontek)UTFSequence module as deprecated (549e4e2d8d by @retyui)UTFSequence module as deprecated (fd49bf2e2c by @retyui)NativeMethods interface is deprecated. Use HostInstance instead. (19f5691e39 by @huntie)DrawerLayoutAndroid, use react-native-drawer-layout instead (5c5e6cd8ce by @zoontek)UIBlock interface and UIManagerModule.addUIBlock/prependUIBlock methods. Use UIManagerListener or View Commands instead. (29a76918a9 by @cortinico)enableVirtualViewDebugFeatures feature flag and the associated FlingItemOverlay / FlingDebugItemOverlay debug surfaces. (083fd99ba4 by @javache)disableMaintainVisibleContentPosition feature flag from ReactNativeFeatureFlags (661ce06e02 by generatedunixname1608173377072046)useLISAlgorithmInDifferentiator feature flag and LIS algorithm code from the Differentiator (9f4513c751 by @javache)InteractionManager (use requestIdleCallback instead) (ed893f7d98 by @rubennorte)Modal animated prop (fd10410d51 by @zoontek)PublicScrollViewInstance and PublicModalInstance types. Use ScrollViewInstance and ModalInstance instead. (74fdfd1eab by @huntie)useTurboModules feature flag. TurboModules are now always enabled. (b4a715ca1f by @mdvacca)DevServerHelper.websocketProxyURL property (legacy remote JS debugger) (9cb2e63c87 by @huntie)DisplayMetricsHolder.getWindowDisplayMetrics, setWindowDisplayMetrics, and getDisplayMetricsWritableMap (82536f230f by @zoontek)UIImplementation. This class was already non-functional (all methods were empty stubs). (cf28e6b73c by @cortinico)UIImplementation. This class was already non-functional (all methods were empty stubs). (0825f21171 by @cortinico)logMarkerBridgeless and logTaggedMarkerBridgeless in favor of logMarker and logTaggedMarker (319610d328 by @javache)TimingModule; will be removed in a future React Native release (b0a6386995 by @christophpurrer)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)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.slice() for negative start offsets and inverted ranges (b29dc966a4 by @durvesh1992)AbortSignal.any() process its input signals in multiple passes to match the DOM specification (1136e41bd8 by @rubennorte)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)FileReader readyState to LOADING during a read so abort() correctly emits abort/loadend (c00813c6ee by @durvesh1992)react-native/scripts/* imports are now mandated; explicit .js import specifiers are rejected. (97727ba67f by @huntie)memcpy(_, nullptr, 0) UB in MapBufferBuilder::build for empty / scalar-only MapBuffers (34ccf4f331 by @javache)JCxxInspectorPackagerConnectionDelegateImpl::connectWebSocket to prevent null dereference (fa05b8c88b by @shubhamksavita)ReactCxxPlatform's ReactHost (ac81869f05 by @etodanik)setProp: automaticallyAdjustKeyboardInsets, dynamicTypeRamp, writingDirection, experimental_accessibilityOrder, transformOrigin, and the full borderCurves cascaded set. (15b1f5529a by @javache)HMRClient.setup() redbox) because the environment setup module was dropped from the bundle (eb987ef550 by @cipolleschi)textAlignVertical prop on <TextInput> (e04ff69ab3 by @huntie)pointerEvents prop to Text component (a2e042f76a by @huntie)getNativeScrollRef return type across ScrollView, FlatList, and SectionList (535b844680 by @huntie)| undefined for exactOptionalPropertyTypes compatibility (0fc76bb527 by @zeyap)React.Fragment style warning when used as a child of TouchableHighlight (d7b5314bd8 by @qflen)onPointerOver, onPointerOut, onGotPointerCapture, onLostPointerCapture, and their *Capture variants) to the TypeScript types (20931fe975 by @ahmdshrif)FlatList.getNativeScrollRef return type definition to allow accessing the underlying HostInstance. (5162816e03 by @janpe)AccessibilityInfo TypeScript definitions (4255f9bd89 by @huntie)PropsAnimatedNode.updateView when a mapped node is removed during an in-flight native animation (53369ed321 by @shashank-bhatotia)Image.getSize() failing for local drawable resource URIs including VectorDrawables (aea8785d66 by @Abbondanzo)enableAccumulatedUpdatesInRawPropsAndroid is not enabled. (bcadedaba4 by @j-piasecki)ReactInstanceManager.mHasStartedDestroyingLock instead of using ReactInstanceManager.mHasStartedDestroying (f500f4239c by @Yqwed)IllegalArgumentException crash in statusBarShow/statusBarHide when the window decorView is detached (a54b04e94b by @alanleedev)IllegalArgumentException crash in StatusBarModule when activity is destroyed before the UI thread runnable executes (732b848a8e by @alanleedev)borderEndStartRadius and borderStartEndRadius. (ad2cf4d1d7 by @nikhilpakhloo)textDecorationColor is not set (2da0244c16 by @cortinico)TextInput placeholder staying on multiple lines after multiline is toggled from true back to false (df6de4f758 by @Abbondanzo)includesGeneratedCode: true (c789880517 by @satya164)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)You can file issues or pick requests against this release here.
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.
You can file issues or pick requests against this release here.
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.
You can file issues or pick requests against this release here.
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.
You can file issues or pick requests against this release here.
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.
> This is a release candidate. It is not intended for production use.
[!WARNING] This is a release candidate. It is not intended for production use.
Install:
npm install react-native@0.87.0-rc.0
Report issues: https://github.com/react/react-native/issues
StatusBar backgroundColor / translucent / networkActivityIndicatorVisible props and setBackgroundColor / setTranslucent / setNetworkActivityIndicatorVisible methods (6b45e579d6 by @zoontek)ScrollView keyboardShouldPersistTaps (5bf3e38db2 by @zoontek)LogBox to avoid layout breaking (4aef2b0126 by @pchalupa)'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)NativeMethods and NativeMethodsMixin types (b724611aec by @huntie)NativeDialogManagerAndroid export is removed. (a793d21a7e by @huntie)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)react-devtools package via WebSocket. Use React Native DevTools instead. (f1971caa44 by @huntie)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)react-native/asset-utils package (relocates Android path utils for libraries/frameworks) (41d52189e2 by @huntie)IntBuffer and DoubleBuffer entry types to MapBuffer for compact homogeneous int/double arrays (e7cadaf9f3 by @javache)textAlign: 'start' and textAlign: 'end'. (ca29d38537 by @SJvaca30)selection to TextInputChangeEventData in TypeScript types (e745c41a6b by @nsbarsukov)Animated.Numeric (6206b0b01f by @huntie)AccessibilityActionInfo, ImageResizeMode, EdgeInsetsProp, and TextInputBlurEvent types (ee36c67a27 by @huntie)useNativeDriver under featureflag animatedForceNativeDriver (9cf30b6e4b by @zeyap)Page.addScriptToEvaluateOnNewDocument and Page.removeScriptToEvaluateOnNewDocument CDP methods in the modern inspector (bc20ec88eb by @GijsWeterings)useNativeDriver under featureflag animatedForceNativeDriver (cffe14ff57 by @zeyap)Promise.try + Promise.withResolvers typescript types (b99ddaf606 by @retyui)RCT_REMOVE_LEGACY_COMPONENT_INTEROP (9885fe95ef by @christophpurrer)textDecorationStyle (solid, double, dotted, dashed, wavy) (87184c8fba by @quantizor)RCT_REMOVE_LEGACY_COMPONENT_INTEROP (8b959b46ea by @christophpurrer)YGErrataMinSizeUndefinedInsteadOfAuto errata bit on YGConfig. (b766986387 by @adityasharat)*Instance ref types for all built-in components (a3827f32f4 by @huntie)RCT_REMOVE_LEGACY_MODULE_INTEROP (3278f309e2 by @christophpurrer)YGErrataMinSizeUndefinedInsteadOfAuto errata bit on YGConfig. Adds YGNodeSetMinContentWidth/Height for static contributions and YGMinContentMeasureFunc for dynamic ones.' (7f396d1116 by @adityasharat)barStyle="auto" to follow the current color scheme (61c8b040bf by @zoontek)cause property (abcb7821b1 by @gimi-anders)Systrace.trace helper that wraps a function with begin/end events using try/finally (e6c7a269d2 by @rubennorte)ArrayBuffer support to C++ TurboModules (226ef2e7c5 by @paradowstack)optimizedAnimatedPropUpdates feature flag (ed96b22af2 by Bartlomiej Bloniarz)MapBufferList type to MapBuffer for ordered lists of nested MapBuffers (6a957746f6 by @javache)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)compileSdk and buildTools to 37 (3e8dfb1e64 by @alanjhughes)ReactContext.getRuntimeExecutor() (dc9043e940 by @javache)enableIOSCompressedTextFrameAdjustment feature flag for Text rendering adjustments. (b933d45276 by @sbuggay)RCTDidInitializeModuleNotificationModuleKey constant for RCTDidInitializeModuleNotification userInfo (217ee52d4f by Eapen George)textDecorationStyle: 'dotted' and 'dashed' for <Text> render with custom CoreGraphics paths instead of UIKit pattern bits, matching browser geometry more closely (9d037509bf by @quantizor)window global non-writable and non-configurable, and the navigator global non-writable (347f8d081e by @rubennorte)abort-controller with fork version from react-native (6f3375a140 by @retyui)animatedShouldDebounceQueueFlush) by default (5c197fb303 by @zeyap)EventTarget methods enumerable by spec (25c25b3c7c by @retyui)flattenStyle avoid extra intermediate objects when flattening nested style arrays. (d26f7b338d by @tarikfp)experimental_ prefix from backgroundImage (58688bf176 by @intergalacticspacehighway)IntersectionObserverEntry as a global (4deb32a507 by @rubennorte)useTurboModules ReactNativeFeatureFlags flag is now true (db4c6ee3b6 by @mdvacca)interface declarations, enabling module augmentation by libraries like Uniwind (preserve compatibility) (2574863642 by @huntie)interface declarations, enabling module augmentation by libraries like NativeWind and Expo (preserve compatibility) (db89600b56 by @huntie)ReactHorizontalScrollView from Java to Kotlin (5c680995bd by @cortinico)ReactScrollView and ReactNestedScrollView from Java to Kotlin (9d65e6c497 by @cortinico)ViewManager#measure (63683f091c by @javache)ReactShadowNode interface from Java to Kotlin (f07c7cceee by @cortinico)UIManagerModule from Java to Kotlin (21dfc2a855 by @cortinico)UIViewOperationQueue from Java to Kotlin (7a8344c037 by @cortinico)BridgeReactContext from Java to Kotlin (6720760faf by @cortinico)ReactNativeHost from Java to Kotlin (no behavioral changes) (7eb11331b6 by @cortinico)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)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)BeforeWaiting main run loop observer instead of dispatching each merge as a separate main-queue block (d80377cd60 by @j-piasecki)react-native/assets-registry. Use AssetRegistry from react-native and react-native/asset-utils instead. (715eeaad69 by @huntie)ImageBackground, use a View with an absolutely positioned Image instead (2361189716 by @zoontek)UTFSequence module as deprecated (549e4e2d8d by @retyui)UTFSequence module as deprecated (fd49bf2e2c by @retyui)NativeMethods interface is deprecated. Use HostInstance instead. (19f5691e39 by @huntie)Appearance.setColorScheme('unspecified') is deprecated, use 'auto' instead. (91702e50fe by @huntie)DrawerLayoutAndroid, use react-native-drawer-layout instead (5c5e6cd8ce by @zoontek)UIBlock interface and UIManagerModule.addUIBlock/prependUIBlock methods. Use UIManagerListener or View Commands instead. (29a76918a9 by @cortinico)Modal animated prop (fd10410d51 by @zoontek)PublicScrollViewInstance and PublicModalInstance types. Use ScrollViewInstance and ModalInstance instead. (74fdfd1eab by @huntie)InteractionManager (use requestIdleCallback instead) (ed893f7d98 by @rubennorte)enableVirtualViewDebugFeatures feature flag and the associated FlingItemOverlay / FlingDebugItemOverlay debug surfaces. (083fd99ba4 by @javache)useTurboModules feature flag. TurboModules are now always enabled. (b4a715ca1f by @mdvacca)disableMaintainVisibleContentPosition feature flag from ReactNativeFeatureFlags (661ce06e02 by generatedunixname1608173377072046)useLISAlgorithmInDifferentiator feature flag and LIS algorithm code from the Differentiator (9f4513c751 by @javache)logMarkerBridgeless and logTaggedMarkerBridgeless in favor of logMarker and logTaggedMarker (319610d328 by @javache)UIImplementation. This class was already non-functional (all methods were empty stubs). (cf28e6b73c by @cortinico)DisplayMetricsHolder.getWindowDisplayMetrics, setWindowDisplayMetrics, and getDisplayMetricsWritableMap (82536f230f by @zoontek)UIImplementation. This class was already non-functional (all methods were empty stubs). (0825f21171 by @cortinico)DevServerHelper.websocketProxyURL property (legacy remote JS debugger) (9cb2e63c87 by @huntie)TimingModule; will be removed in a future React Native release (b0a6386995 by @christophpurrer)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)textAlignVertical prop on <TextInput> (e04ff69ab3 by @huntie)memcpy(_, nullptr, 0) UB in MapBufferBuilder::build for empty / scalar-only MapBuffers (34ccf4f331 by @javache)AbortSignal.any() process its input signals in multiple passes to match the DOM specification (1136e41bd8 by @rubennorte)Blob.slice() for negative start offsets and inverted ranges (b29dc966a4 by @durvesh1992)FileReader readyState to LOADING during a read so abort() correctly emits abort/loadend (c00813c6ee by @durvesh1992)setProp: automaticallyAdjustKeyboardInsets, dynamicTypeRamp, writingDirection, experimental_accessibilityOrder, transformOrigin, and the full borderCurves cascaded set. (15b1f5529a by @javache)onPointerOver, onPointerOut, onGotPointerCapture, onLostPointerCapture, and their *Capture variants) to the TypeScript types (20931fe975 by @ahmdshrif)pointerEvents prop to Text component (a2e042f76a by @huntie)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)ReactCxxPlatform's ReactHost (ac81869f05 by @etodanik)React.Fragment style warning when used as a child of TouchableHighlight (d7b5314bd8 by @qflen)getNativeScrollRef return type across ScrollView, FlatList, and SectionList (535b844680 by @huntie)AccessibilityInfo TypeScript definitions (4255f9bd89 by @huntie)JCxxInspectorPackagerConnectionDelegateImpl::connectWebSocket to prevent null dereference (fa05b8c88b by @shubhamksavita)ReactInstanceManager.mHasStartedDestroyingLock instead of using ReactInstanceManager.mHasStartedDestroying (f500f4239c by @Yqwed)IllegalArgumentException crash in statusBarShow/statusBarHide when the window decorView is detached (a54b04e94b by @alanleedev)PropsAnimatedNode.updateView when a mapped node is removed during an in-flight native animation (53369ed321 by @shashank-bhatotia)borderEndStartRadius and borderStartEndRadius. (ad2cf4d1d7 by @nikhilpakhloo)TextInput placeholder staying on multiple lines after multiline is toggled from true back to false (df6de4f758 by @Abbondanzo)textDecorationColor is not set (2da0244c16 by @cortinico)IllegalArgumentException crash in StatusBarModule when activity is destroyed before the UI thread runnable executes (732b848a8e by @alanleedev)Image.getSize() failing for local drawable resource URIs including VectorDrawables (aea8785d66 by @Abbondanzo)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)includesGeneratedCode: true (c789880517 by @satya164)enableAccumulatedUpdatesInRawPropsAndroid is not enabled. (bcadedaba4 by @j-piasecki)RCTImageLoader loader and decoder lazy initialization that could crash with EXC_BAD_ACCESS (7ed17c9d09 by Miklós Fazekas)RCT_REMOVE_LEGACY_COMPONENT_INTEROP guard to LegacyViewManagerInteropComponentDescriptor (510cc0c5ec by @christophpurrer)RCT_DEV_MENU) to connect to Metro via "Change Bundle Location" (94380cb4ad by @fmacinator)RCTBridgeProxy and post RCTJavaScriptDidLoadNotification, so native startup-perf consumers work in bridgeless (9568de5a2d by @fkgozali)script_phases.sh (f14207f9bd by @fallintoplace)xmldom/xmldom, fast-xml-parser, yaml, fast-uri, and addressable transitive dependencies (284035b21d by @cortinico)arc lint --take KTFMT (f9ba09d60e by generatedunixname1430061942044674)experimental.instance_t_objkit_fix across fbsource roots (71fee907fb by @SamChou19815)in/out (9f558a4d6a by @marcoww6)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Hermes: Bump hermes-v1 to 250829098.0.17 ( 3fd71f07c3 by @cipolleschi )
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)Hermes dSYMS:
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.
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)⚠️ React Native 0.86.1 has not been published because of an issue with Maven. ⚠️
⚠️ React Native 0.86.1 has not been published because of an issue with Maven. ⚠️
display: contents nodes having hasNewLayout set incorrectly (36f69eff0d by j-piasecki)ReactInstanceManager.mHasStartedDestroyingLock instead of using ReactInstanceManager.mHasStartedDestroying (cdfba520fa by jingjing2222)java.lang.Boolean. (821045a24f by Yqwed)Hermes dSYMS:
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.
display: contents nodes having hasNewLayout set incorrectly (36f69eff0d by @j-piasecki)ReactInstanceManager.mHasStartedDestroyingLock instead of using ReactInstanceManager.mHasStartedDestroying (cdfba520fa by @jingjing2222)java.lang.Boolean. (@821045a24f by Yqwed)This release got burned because of an issue with Maven
Dependencies: Bumped fast-xml-parser from 4.5.0 to 4.5.4 to fix CVE-2026-25896 (56908a74c7 by @balajacatherin)
global.__BUNDLE_LOADER_REPORTER__, if given, during dev-mode bundler loads from Metro (1e0c1f886b by @robhogan)Emulation.setEmulatedMedia (11a5432cb2 by @huntie)unstable_getViewTransitionInstance to UIManagerBinding (d8820a403b by @zeyap)LayoutContext (d38c756529 by @paradowstack)boxShadow and textWithLinkRole (b172f46f0d by @NickGerleman)mixBlendMode plus-lighter (aaa0684045 by @bigcupcoffee)BackHandler hardwareBackPress events to access timeStamp from native event. (bf277cb6d4 by @rubennorte)android_ripple now accepts PlatformColor (60d8b282ea by @adrcotfas)ExtraWindowEventListener interface to allow native modules to react to window creation / destruction (e.g. Modal dialogs) (58fec1fa8d by @zoontek)TextInput autoComplete autofill hint support and bump androidx.autofill to 1.3.0. (ac598aff2b by @radko93)mach_absolute_time() API in the React-timing module (2ae6c8940d by @rubennorte)isPackagerRunningAsync that does not block the UI thread waiting on the request to DevServer ("Packager") validating that it is running (dd056d9b4c by @vzaidman)RCTSetCustomMultipartDataTaskRequestInterceptor API to allow custom modification of multipart data task requests before they are sent (59b8886bb8 by @cipolleschi)LogBoxData tests to Jest modern timers (dea2136a49 by @chicio)applyViewTransitionName (d17ecca3c9 by @zeyap)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)getNullableViewState in SurfaceMountingManager::updateProps and log a soft exception instead (bbf7004935 by Bartlomiej Bloniarz)DefaultTurboModules::get to end of TurboModuleManager (6b32971f46 by @zeyap)AnimationBackendChoreographer doesn't guard the ReactChoreographer post/remove with synchronized(paused) (22d327595d by Bartlomiej Bloniarz)enforceNavigationBarContrast attribute (dfddcc9796 by @zoontek)RCTHTTPRequestInterceptor for selective HTTP request modification (0c7d780aa0 by @cipolleschi)SRWebSocketProvider for selective WebSocket header injection (f3aa8c21d1 by @cipolleschi)AppRegistry.setComponentProviderInstrumentationHook as it's not usable by apps. Passed stub that warns when used. (64116117c0 by @rubennorte)AccessibilityInfo.isDarkerSystemColorsEnabled unresolved (never ending) promise (8fbf2fab47 by @chicio)AccessibilityInfo.isHighTextContrastEnabled unresolved (never ending) promise (5c9a5717c1 by @chicio)AccessibilityInfo.prefersCrossFadeTransitions unresolved (never ending) promise (57c073f0d7 by @chicio)NativeAnimatedNodesManager for event-driven animations by processing the animation graph synchronously on every scroll event, matching the Java implementation behavior (0517fb552d by Mark Verlingieri)AnimatedInterpolation error messages (a8b39a237c by @Nedunchezhiyan-M)scripts/js-api/README.md (d823f5b1cc by @Nedunchezhiyan-M)StyleSheet.absoluteFillObject. (fdbe0d0b63 by @jingjing2222)style prop to Modal's inner container View with correct precedence so consumer styles are applied without overriding transparent or backdropColor (f8fa76f94c by @AnuMessi10)InspectorPackagerConnection reconnect loop to prevent heap fragmentation crashes (32d3eafdc4 by @shubhamksavita)VIEW_EVENT_CASE entries in BaseViewProps::setProp for Click, PointerDown, PointerUp, GotPointerCapture, LostPointerCapture and their Capture variants (offsets 30-37) (8d5482dd94 by Harini Malothu)PerformanceObserver: observe({type: 'event'}) now correctly defaults durationThreshold to 104ms per the W3C Event Timing spec instead of reporting all events. (65c561e195 by @rubennorte)scaleX: 0 or scaleY: 0) no longer receive touches on Android or iOS. (1e8e182410 by @qflen)display: contents is used in absolutely positioned subtrees (f2f92098dd by @j-piasecki)ReactViewGroup.addChildrenForAccessibility against transient non-descendant accessibility traversal crashes. (e681736e18 by @erickreutz)rootProject.file (8a8f1b801c by @etodanik)HermesSamplingProfiler.disable() JNI registration calling enable() instead of disable() (7f2a58e46c by @elirangoshen)Image.getSize and Image.getSizeWithHeaders now return the true source dimensions instead of Fresco's downsampled values (8823a8009b by @zoontek)createBitmap() (c20a58ab6b by @zeyap)onHostPause crash in ReactInstanceManager without feature flag (3aa8a043de by @shubhamksavita)LogBoxDialogSurfaceDelegate when using bridgeless mode (f10cded1f8 by Ilya Kovalyov)OutOfMemoryError in NetworkingModule response processing to prevent app crashes (0c153e2971 by @shubhamksavita)Cookie header passed via the WebSocket constructor's headers option (24b51db75b by @psjostrom)Dimensions window values on Android < 15 when edge-to-edge is enabled (44a4b1ba5d by @zoontek)KeyboardAvoidingView on Android 15+ / with edgeToEdgeEnabled (4a6c933cce by @zoontek)measureInWindow returning incorrect coordinates when edge-to-edge is enabled (9d183675e9 by @zoontek)printMountItem calls in MountItemDispatcher error handlers behind enableFabricLogs() to prevent OOM crash (7a546f98a7 by @JakobFelixJulius)edgeToEdgeEnabled gradle property but enforced by the OS (Android 15+) (c2280e3201 by @zoontek)HeadlessJsTaskSupportModule in CoreReactPackage (2d78a39b3e by 贾太滨)DISPATCH_UI choreographer queue, before dispatching events (b63efbfc6b by @j-piasecki)isBoring() returns negative width (d527f2d663 by @NickGerleman)setAutoCapitalize stripping numeric TextInput flags (TYPE_NUMBER_FLAG_SIGNED/DECIMAL), affecting minus sign input on Samsung keyboards (863f76bd49 by @lukeharvey)zIndex with props 2.0 enabled (93b37350af by @hannojg)borderStyle to undefined (9e058db4c8 by @hannojg)ReactInternal compatible with Swift (fc5cc2821f by @rmaz)PODFILE_DIR as $(SRCROOT)-relative so project.pbxproj is portable across machines (44bb83bd84 by @zoontek)REACT_NATIVE_PATH resolution when Pods/ is a symlink (ea383822b7 by @huntie)use_frameworks! due to missing React-featureflags header path (fb0d28c6fd by @radko93)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)React-use-frameworks.modulemap across replace-rncore-version.js runs (ada39220a0 by @Insik-Han)createJSRuntimeFactory and skip Hermes pods when USE_THIRD_PARTY_JSC is enabled (2d8143794d by @tux2nicolae)RCTWebSocketModule when delegate callbacks fire after module invalidation (587ef059a2 by @lukeharvey)NSRangeException crash in RCTBackedTextInputDelegateAdapter when text range is out of bounds (19350b1c8c by @lukeharvey)removeClippedSubviews (91e3f773b7 by @javache)fast-xml-parser from 4.5.0 to 4.5.4 to fix CVE-2026-25896 (56908a74c7 by @balajacatherin)minimatch to fix CVE-2026-27903, CVE-2026-27904 (c019a50a4c by @balajacatherin)Hermes dSYMS:
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.
React Native DevTools: Bump Hermes V1 to 250829098.0.14 to fix missing JavaScript samples in the Performance panel timeline on Apple platforms (cd5b3b
Hermes dSYMS:
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.
Your coding agent can read these notes before it upgrades. Set up the MCP server →