Repository navigation
Releases: react/react-native
Release list
0.88.1
Added
- JSI: Forward createValueFromJsonUtf8 in RuntimeDecorator (b5eec4e4f3 by @mrousavy)
- JSI: Run the With hooks around WithRuntimeDecorator::createArrayBuffer (82def6ea4c by @mrousavy)
- JSI: Forward String::length in RuntimeDecorator and WithRuntimeDecorator (be567d270c by @mrousavy)
- Yoga: Fix flex shrink explosion when the shrink total is a positive float residual (24a3be5f99 by @intergalacticspacehighway)
iOS specific
- SwiftPM: the build stops with a clear error when precompiled plugin frameworks and the Xcode project disagree, and the error says what to run. (a920e5db46 by @chrfalch)
Changed
- JSI: Use createError in JSError and forward it in RuntimeDecorator (0cca3a1f77 by @mrousavy)
iOS specific
- Build: Compile React Native's C/C++/Objective-C code with
-O2instead of-Osin Release, and Yoga and glog with-O2in all builds, to match Android (60c817e925 by @chrfalch) - SwiftPM:
spm addandspm updatewrite React Native's build settings toReactNativeSPM/ReactNativeSPM.xcconfigand its build scripts toReactNativeSPM/Scripts/, so a version bump no longer changesproject.pbxproj. A configuration that uses its own xcconfig must now#includethe generated file, and a target setting that hides React Native's value must add$(inherited).spmprints the exact fix in both cases. (cd89e98949 by @chrfalch) - Text: Text without a background color no longer draws a transparent background (0bd33261d1 by @hryhoriiK97)
Fixed
- LogBox: Fix bottom notification appearance/touch targets on iPhone Duo (88a8bd23e8 by @huntie)
- Yoga: Keep the measured pixel size of text nodes when rounding to the pixel grid (fd5392494f by @intergalacticspacehighway)
Android specific
- Text: Fix text measured with the wrong width when
fontVariationSettingsare re-applied to a reusedPaint(96518a8fb9 by @jkadamczyk) - Text: Skip empty and fully hidden text decoration ranges (dbd5b3b770 by @Abbondanzo)
- Text: Fix crash drawing text decoration (underline/strikethrough) when a nested Text's span extends past a numberOfLines-truncated layout (ca8504b1ca by @lazerg)
iOS specific
- Image: Image no longer shows the image of a previous source after its native view is recycled (53bf98bf40 by @mattijsf)
- SafeArea: Fix views with a filter having their content offset by the safe area insets (fea820fa9b by @intergalacticspacehighway)
- StatusBar:
StatusBarstyle and visibility work on iOS 27 for apps built with the iOS 27 SDK whenUIViewControllerBasedStatusBarAppearanceisYES. Custom root view controllers must return theRCTStatusBarAppearancevalues. (bd08dafc98 by @alanjhughes) - SwiftPM: a project set up with skipped codegen no longer fails package resolution on
ReactAppHeaders(e3aa9a1e19 by @chrfalch) - SwiftPM: the build-time sync now runs again when a watched path that did not exist at the last sync appears. (c89f4120ac by @chrfalch)
- SwiftPM: keep line breaks in the scheme pre-action script so that the "Sync SPM Autolinking" pre-action runs. Run
npx react-native spm updateonce to rewrite an existing scheme. (b8df948fd4 by @chrfalch)
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.
0.88.0
Added
- C++: Add
<React/FeatureFlags.h>umbrella header as the public entry point forreact/featureflags(f970054a8a by @j-piasecki) - C++: Add
<React/RendererBridging.h>umbrella header as the public entry point forreact/renderer/bridging(5b680c5f9f by @j-piasecki) - C++: Add
<React/Timing.h>umbrella header as the public entry point forreact/timing(70f172d29f by @j-piasecki) - C++: Added missing mutex include in HostTarget.h (3f8f5c216a by @etodanik)
- EventTarget: Enable the imperative EventTarget API (
addEventListener,removeEventListener,dispatchEvent) on native view refs in canary (8480b86820 by @rubennorte) - Feature Flags: Add
enableImageTransparentTintColorfeature flag (c5bd054983 by @coado) - JavaScript API: Deprecate
'react-native/Libraries/Core/InitializeCore'. Use'react-native/setup-env'instead. (554baba159 by @huntie) - PlatformColor: Support a lazy raw color fallback for PlatformColor when native tokens fail to resolve (65008fcdd0 by @Abbondanzo)
- React Native DevTools: Experimental performance screenshots support and
Page.captureScreenshotis added to theEXPERIMENTALchannel (4be68ef785 by @huntie) - React Native DevTools: Support for inspecting WebSocket events in the Network panel is added to the
CANARYchannel (713ae6b1b9 by @huntie) - React Native DevTools: Users and agents can now capture app screenshots via the
Page.captureScreenshotcommand (00efc0a440 by @huntie) - Text: Add object syntax for
fontVariationSettings(376b99ff14 by @evankatz14) - TypeScript: Add
isInstalled()andclearAllLogs()to theLogBoxTypeScript declarations (a69badd468 by @Abbondanzo) - TypeScript: Add missing strictMode prop to FlatList TypeScript types (3e2403327c by @drhops)
- TypeScript: Add TypeScript declarations for
requestIdleCallbackandcancelIdleCallback(c086431a4b by @Critteros) - VirtualizedList: Add missing ListItemComponent type to VirtualizedList props (5306e9229c by @aravi365)
Android specific
- Feature Flags: Add
enableMountingCoordinatorPullModelAndroidfeature flag (ece0efe837 by @coado) - Network Inspection: Expose network event reporting to third-party networking stacks as an unstable API (83d0be8958 by @huntie)
- Networking: Send app name and version as the default
User-Agentheader for network requests, matching iOS (04e50d540d by Calvin Liu) - Renderer: Add inert Java plumbing (
PullTransactionMountItem,FabricUIManager.onTransactionAvailable) for the pull model (6515647d94 by @coado) - Renderer: Wire the pull-model mounting path in C++ behind
enableMountingCoordinatorPullModelAndroid(9da1a01153 by @coado) - Text: Add
fontVariationSettingssupport for<Text>(19f7d144b9 by @evankatz14) - TextInput: Add
fontVariationSettingssupport forTextInput(a688608090 by @evankatz14) - TurboModules: Add
ArrayBuffer, the Java representation of a JSArrayBufferfor TurboModules, with an explicit byte-ownership contract (5bb9639594 by Kamil Paradowski) - TurboModules: Add ArrayBuffer support to Java TurboModules (5fb3ebce1a by Kamil Paradowski)
- TurboModules: Borrowed
ArrayBufferbytes are scoped to the synchronous call that received them.ArrayBuffer.bytesandArrayBuffer.sizethrowIllegalStateExceptionafterwards, and aByteBufferalready obtained frombytesis unchecked and reads freed memory, so copy withArrayBuffer.arrayBufferWithCopiedBytesto keep them (d84c13d511 by @christophpurrer)
iOS specific
- Text: Add
fontVariationSettingssupport on iOS (8415753e21 by @evankatz14) - Assets: Use asset catalog for ios images (26769a00b2 by @janicduplessis)
- CocoaPods: Add a
React-cxxstableapidependency to third-party New Architecture pods so they can resolve React Native's C++ API guard headers (d3daf111e0 by @coado) - Legacy Architecture: Allow consumers to opt into
RCT_REMOVE_LEGACY_MODULE_INTEROPandRCT_REMOVE_LEGACY_COMPONENT_INTEROPfrom CocoaPods and SwiftPM. Both default to off and will become the default in a future release (b933d18177 by @christophpurrer) - SceneDelegate: Add SceneDelegate lifecycle support (7bfe32fd33 by @artus9033)
- Styles: Print warning advice when using
shadow*styles without providing a solid background color (eb4d3892ab by @hannojg)
Changed
- Babel:
Platform.OSandPlatform.select(...)inlining inreact-native/babel-presetnow requires theinlinePlatformoption in addition toplatform(f63b2a1cb5 by @robhogan) - Babel: Inline
Platform.OSandPlatform.select(...)for React NativePlatformimports during the Babel preset, covering some cases that were previously left un-inlined. (40c06121a1 by @robhogan) - Build: Add React Native Maven pull-through cache fallback for prebuilt artifacts. (3bfb277fec by @coado)
- Events: Enabled Web-based event dispatching refactor (31d33ce91b by @rubennorte)
- Hermes: Bump Hermes to 260318099.0.3 (79024f7c59 by @fabriziocucci)
- Hermes: Bump Hermes to 260318099.0.4 (993be7d6c6 by @fabriziocucci)
- Hermes: Bump hermes-v1 to 260318099.0.1 (b113cf5864 by @fabriziocucci)
...
0.88.0-rc.6
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.
0.88.0-rc.5
This release contains no changes over 0.88.0-rc.4.
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.
0.88.0-rc.4
Changed
- TypeScript: Allow module augmentation to extend generated props and style types (447ccd1ddb by @zoontek)
Fixed
Android specific
- Accessibility: Properly re-enable a view after
accessibilityState.disabledresets fromtrue, which leftPressablepartly untappable (357b6998c4 by @bigcupcoffee)
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.
0.88.0-rc.3
Changed
- Hermes: Bump to
260318099.0.4, which avoids a quadraticreserve()inConsecutiveStringStorageduring lazy compilation (993be7d6c6 by @fabriziocucci)
Fixed
- Metro: Fix the package-exports warning caused by
react-native/virtualized-listsimporting an unexported React Native subpath (a506ed66cc by @giaBaoJS)
Android specific
- SurfaceMountingManager: Bump
androidx.collectionto 1.4.4 to fix view registry entries getting lost (d6a5f159c6 by @pawicao)
iOS specific
- SwiftPM: Stop autolinking from recreating library package roots on every sync, which broke Xcode builds of apps using libraries that ship their own
Package.swift(97cc934dc7 by @chrfalch)
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.
0.88.0-rc.2
Changed
- Metro: Bump the minimum Metro version to 0.87.1, so upgrading projects resolve the same Metro as freshly created ones (f2439a83cf by @robhogan)
Fixed
- TurboModules: Revert the
RCTArrayBuffercodegen change, restoringNSMutableData *for ObjC TurboModule methods that take or return anArrayBuffer. 0.88 is a non-breaking release, and the change stopped modules that adopted ObjCArrayBuffersupport in 0.87 from compiling (639cdedb50, 19a3184981 by @fabriziocucci) - TurboModules: Revert the rejection of
ArrayBufferas a TurboModuleEventEmitterpayload. C++ TurboModules could declareEventEmitter<ArrayBuffer>in 0.87 and it generated working code, so rejecting it at codegen time broke those builds (070af03ab3 by @fabriziocucci) - TypeScript: Restore the
.jsfallback for legacy deep imports of untyped modules, soreact-native/Libraries/*specifiers resolve again under thereact-native-legacy-deep-importscondition (579212e15c by @fabriziocucci)
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.
0.88.0-rc.1
Added
- EventTarget: Enable the imperative EventTarget API (
addEventListener,removeEventListener,dispatchEvent) on native view refs in canary (8480b86820 by @rubennorte)
Changed
- Events: Enabled Web-based event dispatching refactor (31d33ce91b by @rubennorte)
- Hermes: Bump Hermes to 260318099.0.3 (79024f7c59 by @fabriziocucci)
- React: Sync React 19.3.0 into React Native (b0b71421c1 by @rubennorte)
Fixed
iOS specific
- Codegen: No longer crawls
node_modulesor follows symlinks when discovering components (39751d864d by @gabrieldonadel) - SwiftPM: Generated manifests derive their iOS platform floor from the app's
IPHONEOS_DEPLOYMENT_TARGETinstead of hardcoding iOS 15, so dependencies with a higher minimum (e.g. Expo, 16.4) can be autolinked (92564f33fd by @chrfalch) - SwiftPM: Read the SwiftPM name from the podspec and store it in package.json when scaffolding (1cfc5f29a0 by @chrfalch)
- SwiftPM: Run generated build scripts under bash instead of /bin/sh, so they don't break on a host where /bin/sh isn't bash (25f48bd72f by @lazerg)
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.
0.88.0-rc.0
Breaking
- Touchable: The
Touchableroot export (undocumented) is removed. If you are extendingTouchableas a type, please useViewPropsinstead. (0015d1e4f9 by @huntie)
iOS specific
- TurboModules: Add
RCTArrayBuffer, the ObjC representation of a JSArrayBufferfor TurboModules, with an explicit byte-ownership contract (11f9a7f449 by Kamil Paradowski)
Added
- C++: Add
<React/FeatureFlags.h>umbrella header as the public entry point forreact/featureflags(f970054a8a by @j-piasecki) - C++: Add
<React/RendererBridging.h>umbrella header as the public entry point forreact/renderer/bridging(5b680c5f9f by @j-piasecki) - C++: Add
<React/Timing.h>umbrella header as the public entry point forreact/timing(70f172d29f by @j-piasecki) - C++: Added missing mutex include in HostTarget.h (3f8f5c216a by @etodanik)
- Feature Flags: Add
enableImageTransparentTintColorfeature flag (c5bd054983 by @coado) - JavaScript API: Deprecate
'react-native/Libraries/Core/InitializeCore'. Use'react-native/setup-env'instead. (554baba159 by @huntie) - PlatformColor: Support a lazy raw color fallback for PlatformColor when native tokens fail to resolve (65008fcdd0 by @Abbondanzo)
- React Native DevTools: Experimental performance screenshots support and
Page.captureScreenshotis added to theEXPERIMENTALchannel (4be68ef785 by @huntie) - React Native DevTools: Support for inspecting WebSocket events in the Network panel is added to the
CANARYchannel (713ae6b1b9 by @huntie) - React Native DevTools: Users and agents can now capture app screenshots via the
Page.captureScreenshotcommand (00efc0a440 by @huntie) - Text: Add object syntax for
fontVariationSettings(376b99ff14 by @evankatz14) - TypeScript: Add
isInstalled()andclearAllLogs()to theLogBoxTypeScript declarations (a69badd468 by @Abbondanzo) - TypeScript: Add missing strictMode prop to FlatList TypeScript types (3e2403327c by @drhops)
- TypeScript: Add TypeScript declarations for
requestIdleCallbackandcancelIdleCallback(c086431a4b by @Critteros) - VirtualizedList: Add missing ListItemComponent type to VirtualizedList props (5306e9229c by @aravi365)
Android specific
- Feature Flags: Add
enableMountingCoordinatorPullModelAndroidfeature flag (ece0efe837 by @coado) - Network Inspection: Expose network event reporting to third-party networking stacks as an unstable API (83d0be8958 by @huntie)
- Networking: Send app name and version as the default
User-Agentheader for network requests, matching iOS (04e50d540d by Calvin Liu) - Renderer: Add inert Java plumbing (
PullTransactionMountItem,FabricUIManager.onTransactionAvailable) for the pull model (6515647d94 by @coado) - Renderer: Wire the pull-model mounting path in C++ behind
enableMountingCoordinatorPullModelAndroid(9da1a01153 by @coado) - Text: Add
fontVariationSettingssupport for<Text>(19f7d144b9 by @evankatz14) - TextInput: Add
fontVariationSettingssupport forTextInput(a688608090 by @evankatz14) - TurboModules: Add
ArrayBuffer, the Java representation of a JSArrayBufferfor TurboModules, with an explicit byte-ownership contract (5bb9639594 by Kamil Paradowski) - TurboModules: Add ArrayBuffer support to Java TurboModules (5fb3ebce1a by Kamil Paradowski)
iOS specific
- Assets: Use asset catalog for ios images (26769a00b2 by @janicduplessis)
- CocoaPods: Add a
React-cxxstableapidependency to third-party New Architecture pods so they can resolve React Native's C++ API guard headers (d3daf111e0 by @coado) - Legacy Architecture: Allow consumers to opt into
RCT_REMOVE_LEGACY_MODULE_INTEROPandRCT_REMOVE_LEGACY_COMPONENT_INTEROPfrom CocoaPods and SwiftPM. Both default to off and will become the default in a future release (b933d18177 by @christophpurrer) - SceneDelegate: Add SceneDelegate lifecycle support (7bfe32fd33 by @artus9033)
- Styles: Print warning advice when using
shadow*styles without providing a solid background color (eb4d3892ab by @hannojg) - SwiftPM:
npx react-native spmcommand + SwiftPM package-generation tooling (opt-in; CocoaPods stays supported) (47fad096a4 by @chrfalch) - TurboModules: Reject
ArrayBufferas a TurboModuleEventEmitterpayload on all platforms (ab2ea649e6 by @christophpurrer)
Changed
- Accessibility: Automatically set
accessibleprop whenroleprop is set (exceptnone/presentation) (4043e818f1 by @mdjastrzebski) - Babel:
Platform.OSandPlatform.select(...)inlining inreact-native/babel-presetnow requires theinlinePlatformoption in addition toplatform(f63b2a1cb5 by @robhogan) - Babel: Inline
Platform.OSandPlatform.select(...)for React NativePlatformimports during the Babel preset, covering some cases that were previously left un-inlined. (40c06121a1 by @robhogan) - Build: Add React Native Maven pull-through cache fallback for prebuilt artifacts. (3bfb277fec by @coado)
- Hermes: Bump hermes-v1 to 260318099.0.1 (b113cf5864 by @fabriziocucci)
- Legacy Architecture: Core components (
ActivityIndicatorView,ModalHostView,PullToRefreshView,SafeAreaView,Switch) no longer report legacyRCT-prefixed names in their view configs ([9048120]...
0.87.1
Added
iOS specific
- SwiftPM: Added hard fail and clear error message when an autolinking plugin host is referenced as a dependency (90a539c92d by @chrfalch)
Changed
- Hermes: Bump hermes-v1 to 250829098.0.17 (861e2d0bde by @cipolleschi)
Fixed
- Animated:
Animated.Value.addListener()types its callback payload as{value: number}rather thanany(3eab03df4c by @huntie) - Animated:
Animated.event()is typed as an event handler rather thanany(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.