Skip to content

Releases: react/react-native

0.88.1

Choose a tag to compare

@react-native-bot react-native-bot released this 27 Oct 17:39

Added

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

iOS specific

  • Build: Compile React Native's C/C++/Objective-C code with -O2 instead of -Os in Release, and Yoga and glog with -O2 in all builds, to match Android (60c817e925 by @chrfalch)
  • SwiftPM: spm add and spm update write React Native's build settings to ReactNativeSPM/ReactNativeSPM.xcconfig and its build scripts to ReactNativeSPM/Scripts/, so a version bump no longer changes project.pbxproj. A configuration that uses its own xcconfig must now #include the generated file, and a target setting that hides React Native's value must add $(inherited). spm prints 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

Android specific

  • Text: Fix text measured with the wrong width when fontVariationSettings are re-applied to a reused Paint (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: StatusBar style and visibility work on iOS 27 for apps built with the iOS 27 SDK when UIViewControllerBasedStatusBarAppearance is YES. Custom root view controllers must return the RCTStatusBarAppearance values. (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 update once 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

Choose a tag to compare

@react-native-bot react-native-bot released this 15 Oct 22:37

Added

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

Android specific

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

iOS specific

  • Text: Add fontVariationSettings support on iOS (8415753e21 by @evankatz14)
  • Assets: Use asset catalog for ios images (26769a00b2 by @janicduplessis)
  • CocoaPods: Add a React-cxxstableapi dependency to third-party New Architecture pods so they can resolve React Native's C++ API guard headers (d3daf111e0 by @coado)
  • Legacy Architecture: Allow consumers to opt into RCT_REMOVE_LEGACY_MODULE_INTEROP and RCT_REMOVE_LEGACY_COMPONENT_INTEROP from CocoaPods and SwiftPM. Both default to off and will become the default in a future release (b933d18177 by @christophpurrer)
  • SceneDelegate: Add SceneDelegate lifecycle support (7bfe32fd33 by @artus9033)
  • Styles: Print warning advice when using shadow* styles without providing a solid background color (eb4d3892ab by @hannojg)

Changed

  • Babel: Platform.OS and Platform.select(...) inlining in react-native/babel-preset now requires the inlinePlatform option in addition to platform (f63b2a1cb5 by @robhogan)
  • Babel: Inline Platform.OS and Platform.select(...) for React Native Platform imports during the Babel preset, covering some cases that were previously left un-inlined. (40c06121a1 by @robhogan)
  • Build: Add React Native Maven pull-through cache fallback for prebuilt artifacts. (3bfb277fec by @coado)
  • 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)
    ...
Read more

0.88.0-rc.6

0.88.0-rc.6 Pre-release
Pre-release

Choose a tag to compare

@react-native-bot react-native-bot released this 27 Oct 17:42

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

0.88.0-rc.5 Pre-release
Pre-release

Choose a tag to compare

@react-native-bot react-native-bot released this 12 Oct 23:40

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

0.88.0-rc.4 Pre-release
Pre-release

Choose a tag to compare

@react-native-bot react-native-bot released this 07 Oct 08:09

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.disabled resets from true, which left Pressable partly 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

0.88.0-rc.3 Pre-release
Pre-release

Choose a tag to compare

@react-native-bot react-native-bot released this 28 Sep 13:34

Changed

  • Hermes: Bump to 260318099.0.4, which avoids a quadratic reserve() in ConsecutiveStringStorage during lazy compilation (993be7d6c6 by @fabriziocucci)

Fixed

  • Metro: Fix the package-exports warning caused by react-native/virtualized-lists importing an unexported React Native subpath (a506ed66cc by @giaBaoJS)

Android specific

  • SurfaceMountingManager: Bump androidx.collection to 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

0.88.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@react-native-bot react-native-bot released this 22 Sep 08:52

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 RCTArrayBuffer codegen change, restoring NSMutableData * for ObjC TurboModule methods that take or return an ArrayBuffer. 0.88 is a non-breaking release, and the change stopped modules that adopted ObjC ArrayBuffer support in 0.87 from compiling (639cdedb50, 19a3184981 by @fabriziocucci)
  • TurboModules: Revert the rejection of ArrayBuffer as a TurboModule EventEmitter payload. C++ TurboModules could declare EventEmitter<ArrayBuffer> in 0.87 and it generated working code, so rejecting it at codegen time broke those builds (070af03ab3 by @fabriziocucci)
  • TypeScript: Restore the .js fallback for legacy deep imports of untyped modules, so react-native/Libraries/* specifiers resolve again under the react-native-legacy-deep-imports condition (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

0.88.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@react-native-bot react-native-bot released this 16 Sep 09:35

Added

  • EventTarget: Enable the imperative EventTarget API (addEventListener, removeEventListener, dispatchEvent) on native view refs in canary (8480b86820 by @rubennorte)

Changed

Fixed

iOS specific

  • Codegen: No longer crawls node_modules or follows symlinks when discovering components (39751d864d by @gabrieldonadel)
  • SwiftPM: Generated manifests derive their iOS platform floor from the app's IPHONEOS_DEPLOYMENT_TARGET instead 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

0.88.0-rc.0 Pre-release
Pre-release

Choose a tag to compare

@react-native-bot react-native-bot released this 08 Sep 17:26

Breaking

  • Touchable: The Touchable root export (undocumented) is removed. If you are extending Touchable as a type, please use ViewProps instead. (0015d1e4f9 by @huntie)

iOS specific

  • TurboModules: Add RCTArrayBuffer, the ObjC representation of a JS ArrayBuffer for TurboModules, with an explicit byte-ownership contract (11f9a7f449 by Kamil Paradowski)

Added

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

Android specific

  • Feature Flags: Add enableMountingCoordinatorPullModelAndroid feature flag (ece0efe837 by @coado)
  • Network Inspection: Expose network event reporting to third-party networking stacks as an unstable API (83d0be8958 by @huntie)
  • Networking: Send app name and version as the default User-Agent header for network requests, matching iOS (04e50d540d by Calvin Liu)
  • Renderer: Add inert Java plumbing (PullTransactionMountItem, FabricUIManager.onTransactionAvailable) for the pull model (6515647d94 by @coado)
  • Renderer: Wire the pull-model mounting path in C++ behind enableMountingCoordinatorPullModelAndroid (9da1a01153 by @coado)
  • Text: Add fontVariationSettings support for <Text> (19f7d144b9 by @evankatz14)
  • TextInput: Add fontVariationSettings support for TextInput (a688608090 by @evankatz14)
  • TurboModules: Add ArrayBuffer, the Java representation of a JS ArrayBuffer for TurboModules, with an explicit byte-ownership contract (5bb9639594 by Kamil Paradowski)
  • TurboModules: Add ArrayBuffer support to Java TurboModules (5fb3ebce1a by Kamil Paradowski)

iOS specific

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

Changed

  • Accessibility: Automatically set accessible prop when role prop is set (except none/presentation) (4043e818f1 by @mdjastrzebski)
  • Babel: Platform.OS and Platform.select(...) inlining in react-native/babel-preset now requires the inlinePlatform option in addition to platform (f63b2a1cb5 by @robhogan)
  • Babel: Inline Platform.OS and Platform.select(...) for React Native Platform imports during the Babel preset, covering some cases that were previously left un-inlined. (40c06121a1 by @robhogan)
  • Build: Add React Native Maven pull-through cache fallback for prebuilt artifacts. (3bfb277fec by @coado)
  • Hermes: Bump hermes-v1 to 260318099.0.1 (b113cf5864 by @fabriziocucci)
  • Legacy Architecture: Core components (ActivityIndicatorView, ModalHostView, PullToRefreshView, SafeAreaView, Switch) no longer report legacy RCT-prefixed names in their view configs ([9048120]...
Read more

0.87.1

Choose a tag to compare

@react-native-bot react-native-bot released this 26 Aug 16:37

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.

⌂ Proxy