Breaking
- Codegen: Separate component array types and command array types (825492b199 by @elicwhite)
- React Native devTools: The
FuseboxClient.setClientMetadata
CDP method is removed. Instead, useReactNativeApplication.enable
. (1a9780f0e3 by @huntie)
Android specific
- APIs: Changed visibility of
FrescoBasedReactTextInlineImageViewManager
to internal (d5f33c19cb by @alanleedev) - APIs: Migrating pointerEvents API breaks compatibility for kotlin usages of this api as a val (45e4a3afce by @mdvacca)
- APIs: Convert
RootView
to Kotlin (21c9491926 by @fabriziocucci) - APIs: Delete unused abstract class
GuardedResultAsyncTask
(67bff8734f by @mdvacca) - APIs: Delete deprecated class
FabricViewStateManager
(b25b65ba19 by @mdvacca) - APIs: Removed
ComponentNameResolver
from public API (a4849cb3d6 by @mdvacca)
iOS specific
- Image: Change Image load event size info from logical size to pixel (09995fc874 by @zhongwuzw)
Added
- C++: Added
RawValue(Runtime*, jsi::Value&)
constructor to make aRawValue
from ajsi::Value
. (03d2186ace by @hannojg) - Codegen: Include cxx modules in codegen schema (cf5ab03d43 by @elicwhite)
- Deps: Add
jest-diff v29.7.0
to devDependencies (b27bd00a38 by @andrewdacenko) - Logging: Add support for the second parameter of
console.table
to specify a list of columns to print in the table. (fd0894b1c7 by @rubennorte) - Logging: Add "jsEngine: hermes" to JS runtime Error prototype (85bdd75828 by Maddie Lord)
- Metro: Add opt in for legacy Metro log streaming via
--client-logs
flag (86db4fa90b by @huntie) - Text: Added
pointerEvents
toTextProps
type. (3efbe33ce0 by @hyochan)
Android specific
- ActivityIndicator: setting
resource-id
from thetestID
prop (87b1bad45e by @mateoguzmana) - Codegen: Fixing schema types for component command params of Arrays (25c673e357 by @elicwhite)
- Gradle: Make the addition of JitPack repository configurable (a98528e609 by @cortinico)
- Logging: SoftException categories (c832f94cf7 by Thomas Nardone)
- Logging: Add logging in ReactInstanceManager.onHostPause when activity is incorrectly null (c2fd35a442 by Maddie Lord)
- Runtime: Added
getState
method forStateWrapperImpl
(ed36e896ac by @hannojg)
iOS specific
- Codegen: Add the
source
parameter to generate-codegen-artifacts to avoid generating files not needed by libraries. (98b8f17811 by @cipolleschi) - Initialization: Implement ReactNativeFactory (081be01a5d by @okwasniewski)
- Text: Support system font families (system-ui, ui-sans-serif, ui-serif, ui-monospace, and ui-rounded) on iOS (1763321c89 by @cxa)
- TextInput: Integrate a new property -
disableKeyboardShortcuts
. It can disable the keyboard shortcuts on iPads. (0154372b93 by @rezkiy37)
Changed
- Deps: Bump Hermes (0c8e15e8bb by @cipolleschi)
- Flow: Improved types in
BoxInspector
and refactored a code (f832c450a5 by @coado) - Flow: Improved types in StyleInspector and refactored a code (49e5c58c59 by @coado)
- Flow: Improved types in ElementBox and refactored a code (2959d49e8d by @coado)
- Flow: Improve types on BorderBox (48a7840919 by @coado)
- Flow: Improve types on DrawerLayoutAndroid (b5155fba89 by @huntie)
- Logging: Improved formatting of values logged via
console.table
(including Markdown format). (7154c62afb by @rubennorte) - Runtime: Mark
intersectionRect
required inNativeIntersectionObserverEntry
to reflect native logic. (8681fc2ab2 by @lunaleaps) - Runtime: (9aa21b5e87 by @lunaleaps)
- TypeScript: Upgrading
typescript-config
module version toesnext
(5370347f54 by @mateoguzmana) - VirtualizedList: Fix item disappearing with scroll in VirtualizedList (df7b6ae092 by @Tom910)
- Yoga: Update YGNodeStyleGetGap to return YGValue (331d99a941 by @heoblitz)
Android specific
- APIs: Introduce new public API
ViewManagerInterface
(40a0cdbc99 by @mdvacca) - Deps: Bumped Android Gradle Plugin (AGP) to 8.8.0 (4c7c836ebf by @cortinico)
- Deps: Bump Gradle to 8.12 (5e6478954c by @cortinico)
- Deps: Update Fresco to 3.6.0 (819b5c2c8d by @Abbondanzo)
- Deps: Migrate jsc-android to mavenCentral (e42a3a6b84 by @Kudo)
- Image: Replaced custom XML decoder with Fresco's built-in decoder (6feb90bb29 by @Abbondanzo)
- Kotlin: Migrate
ComponentNameResolver
to kotlin (385b9f4265 by @mdvacca) - Kotlin: Migrate
ReactSwitchManager
to Kotlin (b886bc4db9 by @krozniata)
iOS specific
- Accessibility: Reduce memory allocations when computing
accessibilityLabel
(74bdab8bd8 by @sparga) - CocoaPods: Properly inherit OTHER_CPLUSPLUSLAGS (fa03840e68 by @WoLewicki)
- CocoaPods: Pin 'concurrent-ruby' to a working version (198adb47af by @cipolleschi)
Removed
Android specific
- APIs: Made
ReactCookieJarContainer
internal. (18ebea533d by @javache) - Config: Remove as_const option (on by default) in fbsource (e5a526ff44 by @panagosg7)
- Flow: Remove comment syntax from ReactNativeTypes (a80baac58e by @hoxyq)
- Metro: Removed
JSCHeapCapture
module, deprecated PackagerCommandListener#onCaptureHeapCommand (e06fa5d102 by @javache)
Fixed
- Animations: Removed unnecessary state updates in React to reflect the current state of looping animations. (6059660c60 by @rubennorte)
- Animations: Animation.stop() executes when
animatedShouldUseSingleOp
is enabled. (746d584a23 by @javache) - Animations: Fix buttons becoming unresponsive when transform is animated (2204ec94d4 by @sammy-SC)
- C++:
JSBigFileString
fails for non-zero offset arguments (7d0338cb0b by @jwajgelt) - Config: Disable
react-in-jsx-scope
rule in eslint config (ea56c432b7 by @matinzd) - Deps: Fix peer dependencies on React types to React 19 (4368368ef5 by @cipolleschi)
- Deps: Add missing
invariant
dependency (ee8088b615 by @tido64) - Fantom: Fix a bug when fantom tests could not be run in parallel, e.g. in a stress-test. (8696b79f73 by @mijay)
- Logging: Modified
console.table
to avoid mutating the received argument. (caa77fbe2b by @rubennorte) - Text: Fixed
adjustsFontSizeToFit
not working for text with a single character (47822e9048 by @j-piasecki) - Text: Fix
maxFontSizeMultiplier
prop onText
andTextInput
components in Fabric / New Architecture (ea49d4d1b01107a5ecbbbd4904f1d935e51d6b32 by @RickardZrinski)
Android specific
- APIs Re-introduce the deprecated constructor on ReactModuleInfo (734730df75 by @cortinico)
- Dialog:
FLAG_SECURE
not respected in Modal dialog (7e029b0dcf by @mateoguzmana) - Events: Fix crash for
setEventEmitterCallback
NoSuchMethodError on API lvl 26 (7dcbc799eb by @cortinico) - Gradle: Fixed build issue when including mapbuffer jni headers in library code (ecf17666ad by @hannojg)
- InteropLayer: Fix execution of early InteropEvents (4ed2b35bf6 by @mdvacca)
- JSC: Fix JSC Debug instacrashing (b10491a3c4 by @cortinico)
- **JSC:**Fix JSC by avoiding use of unavailable
str.replaceAll()
(b5b9e032c2 by @robhogan) - Modal: Setting
resource-id
fromtestID
prop (52b6592559 by @mateoguzmana) - Networking: ReactOkHttpNetworkFetcher – cache control headers getting overwritten by the rest of the headers (81cb166d10 by @mateoguzmana)
- React Native DevTools: Pass the bundle URL protocol when setting up HMR client on Android (32fe244744 by @byCedric)
- Runtime: Fix BackHandle callback undefined cause crash issue (44705fe11b by @BleemIs42)
- Runtime: Support Long values in WritableMap and WritableArray (e7f943de2f by @WoLewicki)
- Runtime:
SetColorScheme
should be called on the UI thread (2aa79979d3 by lihaitao) - Style: Fix background getting clipped when border-radius is set (6d235853fb by @jorge-cab)
- Testing: Handling
testID
correctly for horizontal scroll view (81c74cd35f by @mateoguzmana) - TextInput: Fix incorrect height of single line TextInputs without definite size (9b646c8b7b by @NickGerleman)
iOS specific
- C++: Exclude Android HorizontalScrollContentView cxx component code (4adaacb4f7 by @zhongwuzw)
- Ccache: Fix ccache not found error exporting ccache binary path as Xcode user-defined setting to be used by ccache scripts (d31ac832c5 by @ste7en)
- CocoaPods: Resolve "Your project does not explicitly specify the CocoaPods master specs repo"
pod install
warning (2f2281718a by @noway) - Image: Load images even when the extension is implicit (b9f418e9bc by @cipolleschi)
- Initialization: Allow multiple RN instances to run at the same time (444c7d4eff by @cipolleschi)
- InteropLayer: Avoid crashing the app when the InteropLayer can't find some methods in the native implementation (3bd3f101b9 by @cipolleschi)
- InteropLayer: Properly handle
null
value in TurboModule Interop layer (ebfd7057af by @cipolleschi) - JSC: Fix Direct Debugging with JSC (b04d17afca by @Saadnajmi)
- Keyboard: Enable/disable keyboard shortcuts only on iOS (8b0af4542e by @okwasniewski)
- RefreshControl: Fix app becoming unresponsive when
RefreshControl
is used inside of (6cb2684b43 by @sammy-SC) - React Native DevTools: Restore "Paused in debugger" overlay icon (f30c46efbd by @robhogan)
- Runtime: Emit
didUpdateDimensions
correctly (920867d949 by TobiasH) - Runtime: Fix
applicationDidEnterBackground
not being called (adaceba546 by @alextoudic) - Runtime: Fixed problem with accessory view & 3rd party libs (5fc582783d by @kirillzyusko)
- Style: Dashed & dotted borders now work with overflow: hidden (1b88c5b429 by @joevilches)
- Style: Fixed
centerContent
losing taps and causing jitter (fe7e97a2fd by @gaearon) - Xcode: Properly escape paths in Xcode build script used when bundling an app. (2fee13094b by @kraenhansen)
Hermes 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.