React Native v0.71 released
React Native 0.71.0 brings significant updates and improvements. Key changes include the removal of AsyncStorage
and MaskedViewIOS
, updates to console logging behavior, and the addition of new features like flex gap support and custom layout for children. The release also includes numerous bug fixes and performance enhancements for both Android and iOS platforms.
The update focuses on improving developer experience and app performance. It introduces new APIs, enhances existing components, and addresses various issues reported by the community. The changes aim to provide more flexibility and better cross-platform consistency for React Native developers.
v0.71 on GitHub (npm)
Release blog post
Changelog
v0.71.19
Added
iOS Specific
- Add privacy manifest to pod install and hello world (d669ff7df8 by @philIip)
Changed
iOS Specific
- Bumped hermes to remove Apple's RR API that were unused. Hermes does not requires a PrivacyManifest now. (d8d096d995 by @cipolleschi)
v0.71.18
Fixed
- Fix component stacks for tsx, ts, and jsx files (631c013126 by @hurali97)
iOS specific
- Fix flipper for Xcode 15.3 (2944ca6554 by @cipolleschi)
v0.71.17
Security
- Update CLI to 10.2.7 (28998075d9 by @szymonrybczak)
v0.71.16
Changed
Android specific
- Cherry-picking 'Call super.onRequestPermissionsResult in ReactActivity (#42478)' onto 0.71 (8593306b34 by @LimAlbert)
Fixed
- Symbolication stack fix (0.71.x) (022a9f7835 by @joe-sam)
iOS specific
- Fix path to build-apple-framework (9d6a740bf7 by @hurali97)
- Disable bitcode for Hermes (d6fe029858 by @hurali97)
- Fix symbol not found _jump_fcontext with use_frameworks! (bb592ef0dd by @hurali97)
- Fix flags (c38cdb60ca by @cipolleschi)
v0.71.15
Fixed
Android specific
- Fix Android crash when apply PlatformColor to borders (265af222aa by @axinvd)
- Fixed crash occurring in certain native views when keyboard events are fired. (9497203957 by @kot331107)
iOS specific
- Migrate away from JFrog to download boost (ab19fd6aef by @cipolleschi)
- Fix overriding
EXCLUDED_ARCHS
when installing Hermes on RN v0.71 (16a605b6a3 by @ken0nek)
Changed
- Update node installation on debian (0.71) (bdc0ef3466 by @cipolleschi)
- Bump cli to 10.2.6 (0bc2dd03c1 by @hurali97)
- Fix version of react-native-codegen (c74602fe47 by @lunaleaps)
v0.71.14
Fixed
iOS specific
- Set the max version of Active support to 7.0.8 (ce39931bc2 by @cipolleschi)
- Xcode 15 patch (287482e57f by @fortmarek)
v0.71.13
Added
Android specific
- For targeting SDK 34 - Added RECEIVER_EXPORTED/RECEIVER_NOT_EXPORTED flag support in DevSupportManagerBase (177d97d8ea by @apuruni)
iOS specific
- Added support to inline the source map via RCTBundleURLProvider (f7219ec02d by @Saadnajmi)
Fixed
- Fix: mount devtools overlay only if react devtools are connected (b3c7a5d4cc by @hoxyq)
iOS specific
- Fix onChangeText not firing when clearing the value of TextInput with multiline=true on iOS (0c9c57a9f7 by @kkoudev)
v0.71.12
Fixed
- Prevent LogBox from crashing on very long messages (cd56347dca by @motiz88)
Android specific
- Added CSS logical properties by mapping layout props (2b06a75631 by @NickGerleman and @AlexanderEggers) to fix view flattening on Android.
iOS specific
- fix
pod install --project-directory=ios
failing (fc1abe1d69 by @tido64)
v0.71.11
Changed
- Bump CLI to 10.2.4 and Metro to 0.73.10 (69804c70cb by @kelset)
iOS specific
- Prefer
Content-Location
header in bundle response as JS source URL (671ea383fe by @robhogan)
Fixed
Android specific
- Fixed crash occurring in certain native views when handling keyboard events. (f7e35d4ef7 by @aleqsio)
- Prevent crash on OnePlus/Oppo devices in runAnimationStep (f2c05142 by @hsource)
- Revert "fix: border width top/bottom not matching the border radius" to fix border styling issues (fd8a19d by @kelset)
iOS specific
- Make 0.71 compatible with Xcode 15 (thanks to @AlexanderEggers for the commit in main) (5bd1a4256e by @kelset)
v0.71.10
Fixed
Android specific
- Bump RNGP to 0.71.19 (3be3a7d1a2 by @kelset)
- contains: RNGP dependency substitutions for fork with different Maven group (012e4bd654 by @douglowder)
v0.71.9
Fixed
- VirtualizedList scrollToEnd with no data (98009ad94b by @Andarius)
- Allow string
transform
style in TypeScript (2558c3d4f5 by @NickGerleman) - Fix autoComplete type for TextInput (94356e14ec by @iRoachie)
v0.71.8
Fixed
Android specific
- Read GROUP name in gradle-plugin dependency code (615d9aefc4 by @douglowder)
- Bump RNGP to 0.71.18 (4bf4c470fe by @kelset)
iOS specific
- Do not send extra onChangeText even wnen instantianting multiline TextView (a804c0f22b by @dmytrorykun)
v0.71.7
Fixed
iOS specific
- Address Hermes performance regression (9be2959 by @dmytrorykun)
Android specific
- Resolved bug with Text components in new arch losing text alignment state. (31a8e92cad by @javache)
- Mimimize EditText Spans 9/9: Remove
addSpansForMeasurement()
(92b8981499 by @NickGerleman) - Minimize EditText Spans 8/N: CustomStyleSpan (b384bb613b by @NickGerleman)
- Minimize EditText Spans 6/N: letterSpacing (5791cf1f7b by @NickGerleman)
- Minimize Spans 5/N: Strikethrough and Underline (0869ea29db by @NickGerleman)
- Minimize Spans 4/N: ReactForegroundColorSpan (8c9c8ba5ad by @NickGerleman)
- Minimize Spans 3/N: ReactBackgroundColorSpan (cc0ba57ea4 by @NickGerleman)
- Minimize Spans 1/N: Fix precedence (1743dd7ab4 by @NickGerleman)
- Fix measurement of uncontrolled TextInput after edit (8a0fe30591 by @NickGerleman)
v0.71.6
Fixed
iOS specific
- Fix React Codegen podspec to build on Xcode 14.3 (0010c3807d by @kelset)
v0.71.5
Changed
- Bump CLI to 10.2.2 and Metro to 0.73.9 (4c3bc24893 by @kelset), contains:
- CLI fix: correctly list ios devices and simulators (relevant PR)
- Metro fix: fix watching contents of new directories in NodeWatcher (ab86982 by @robhogan)
Android specific
- Bump RNGP to 0.71.17 (bf490d379f by @kelset), contains:
- Fix patch for codegen for 0.71 (ec3681143e by @kelset)
iOS specific
- Remove ruby-version from 0.71 (1d22e29146 by @cipolleschi)
Fixed
Android specific
iOS specific
- Give precedence to
textContentType
property for backwards compat as mentioned in https://github.com/facebook/react-native/issues/36229#issuecomment-1470468374 (c0abff11b6 by @lunaleaps) - Blob data is no longer prematurely deallocated when using blob.slice (36cc71ab36 by @awinograd)
v0.71.4
Changed
- Make FlatList permissive of ArrayLike data (c03de97fb4 by @NickGerleman)
- Bumping RNGP to
^0.71.16
(3df4a79c3d by @kelset) - Update CLI to 10.2.0, Metro to 0.73.8 (20a6fbd373 by @robhogan) - contains:
- fix: Source maps may have invalid entries when using Terser minification. ((
metro/#928
)[https://github.com/facebook/metro/pull/928]) - fix: Mitigate potential source map mismatches with concurrent transformations due to terser#1341. ((
metro/#929
)[https://github.com/facebook/metro/pull/929])
- fix: Source maps may have invalid entries when using Terser minification. ((
- Bump Hermes Version (291cc0af10) - contains:
Android specific
- Expose
rrc_root
via prefab. (3418f65d88 by @tomekzaw)
Fixed
- Fix touchable hitSlop type (23607aea68 by @bigcupcoffee)
- Fix TouchableOpacity componentDidUpdate causing an excessive number of pending callbacks (8b1f6e09c1 by @gabrieldonadel)
Android specific
- ENTRY_FILE should resolve relative paths from root (6dde1dc7cb by @cortinico)
- Better Monorepo support for New Architecture (0487108461 by @cortinico)
v0.71.3
Changed
- Bump package versions (4b84888a90 by @cipolleschi), (60f0a71060 by @cipolleschi), (a3f205a27b by @cipolleschi):
react-native-codegen
to0.71.5
react-native-gradle-plugin
to0.71.15
Fixed
Android specific
- Fixed jscexecutor crash on Android which is caused from NDK incompatibility (a232decbb1 by @Kudo)
- Used relative paths for gradle commands (bb02ccf13f by @shivenmian)
iOS specific
- fix
pod install --project-directory=...
(ad1ddc241a by @tido64)
v0.71.2
Added
- Added AlertOptions argument to the type definition for Alert.prompt to bring it into parity with the js code. (305ca337c0 by @paulmand3l)
- Added missing
accessibilityLabelledBy
TypeScript type (e162b07982 by @DimitarNestorov) - Added missing
accessibilityLanguage
TypeScript type (71c4f57baf by @DimitarNestorov)
Changed
- Bump
react-native-gradle-plugin
to^0.71.14
in core,@react-native-community/eslint-config
to^3.2.0
in starting template (785bc8d97b by @kelset)
Fixed
- Add
TextInput
'sinputMode
TypeScript types (fac7859863 by @eps1lon) - Fix crash by conditional value of aspectRatio style value (a8166bd75b by @mym0404)
- Fix TurboModuleRegistry TS type (c289442848 by @janicduplessis)
- Fix invariant violation when nesting VirtualizedList inside ListEmptyComponent (1fef376812 by @NickGerleman)
Android specific
- [RNGP] Properly set the
jsRootDir
default value (c0004092f9 by @cortinico) - Do not use WindowInsetsCompat for Keyboard Events (32f54877ff by @NickGerleman)
- Mitigation for Samsung TextInput Hangs (4650ef3 by @NickGerleman)
iOS specific
- Add Back dynamic framework support for the Old Architecture with Hermes (b3040ec624 by @cipolleschi)
- Add Back dynamic framework support for the old architecture (da270d038c by @cipolleschi)
v0.71.1
Added
Android specific
- Add
jsinspector
to the prefab target (a80cf96fc8 by @Kudo)
iOS specific
- Add
initialProps
property toRCTAppDelegate
(b314e6f147 by @jblarriviere)
Changed
- Bump CLI to 10.1.3 (b868970037 by @kelset)
- Bump RNGP to 0.71.13 (416463c406 by @cipolleschi)
Fixed
- Fix(cli,metro,babel): bump cli and metro and babel to fix Windows+Metro issue (df7c92ff4c by @kelset)
Android specific
- Fix ReactRootView crash when root view window insets are null (4cdc2c48e8 by @enahum)
- Fix for resources not correctly bundlded on release appbundles (60b9d8c2b9 by @cortinico)
- RNGP - Honor the --active-arch-only when configuring the NDK (470f79b617 by @cortinico)
- Fixed typo in template build.gradle (38e35df47c by @Titozzz)
iOS specific
- Exclude
react-native-flipper
whenNO_FLIPPER=1
to prevent iOS build fail (f47b5b8b5d by @retyui) - Fix RCTAlertController not showing when using SceneDelegate on iOS 13.0+. (0c53420a7a)
- Handle Null Exception to Validate input in RCTAlertController and in RCTDevLoadingView (79e603c5ab by @admirsaheta)
- Fixed the potential race condition when dismissing and presentating modal (e948c79bda by @wood1986)
- Fix build errors when inheriting RCTAppDelegate in Swift modules (5eb25d2186 by @Kudo)
- OnSelectionChange() is fired before onChange() on multiline TextInput (64475aeb3b by @s77rt)
- Build: remove deprecated File.exists() method from Hermes podspec. (38e5fa6a96 by @kelset)
v0.71.0
Read the announcement blogpost here.
⚠️ Git Bash users on Windows might experience "Unable to resolve" red boxes, because of an issue with Metro (silently fails without discovering any files). It will be fixed in 0.71.1 next week, in the meantime you can set resolver.useWatchman: false
in metro.config.js
.
Breaking Changes
- Changes to Console Logging:
LogBox.ignoreLog
no longer filters console logs. This means you will start seeing logs in the console that you have silenced in LogBox. See this comment for more details. - Removed AsyncStorage and MaskedViewIOS: These components have been deprecated since version 0.59, so it’s time we remove them entirely. For alternatives, please check React Native Directory for community packages that cover those use cases.
- JSCRuntime moved to react-jsc: react-jsi is now split into react-jsc and react-jsi. If you use JSCRuntime, you will need to add react-jsc as a dependency (facebook/react-native@6b129d8).
Added
- Add flex yoga bindings of
gap
,column-gap
androw-gap
(9f3a3e13cc by @intergalacticspacehighway) - Add back deprecated PropTypes (b966d29724 by @rickhanlonii)
- Make the
prepare_package_for_release
fail if there is already a git tag with that version (850f855eb6 by @cipolleschi) - Add a C++ only TurboModule example (for Android/iOS/macOS/Windows) (d07575b1c6 by @christophpurrer)
- Enable platform-specific Codegen Specs (ab7b4d4cd8 by @cipolleschi)
- Add "option" to available role values (e3e635ef84 by @gabrieldonadel)
- Added support
Promise.any
(475310dbba by @retyui) - Log Abnormal Closes to Metro Websocket (3982a2c6bd by @NickGerleman)
BlobModule
toRCTCoreModulesClassProvider
(279cfec55f by @andrestone)- Added
mixed
value foraria-checked
. (7a19af7fb6 by @ankit-tailor) - Concurrent rendering safe implementation of ScrollViewStickyHeader (925e81ab86 by @sammy-SC)
- Add DevToolsSettingsManager (0fac9817df by @rbalicki2)
- Add enum example to Android/iOS rn-tester TurboModule (02e4fcd825 by @christophpurrer)
- React-native-codegen: add Enum Type support for iOS/Android TurboModules (745f3ee8c5 by @christophpurrer)
- Parser interface to divide parser logic. (5940d25cc1 by @cipolleschi)
- Add role prop to Text component (20718e6b8c by @gabrieldonadel)
- Introduce
useAnimatedValue
hook to make it easier working withAnimated.Value
s in function components. (e22217fe8b by @fabriziocucci) - Highlight elements on hover while mouse down for React DevTools element inspection. (94429fb037)
- Implement method bindings for gap/row-gap/column-gap (803a2978e5 by @NickGerleman)
- Implement gap/row-gap/column-gap (within the C ABI) (1373a7057b by @NickGerleman and @jacobp100)
- Add destructuredArrayIgnorePattern to eslint config (0c5ef573fe by @fwcd)
- Add aria-modal prop to basic component (f353119113 by @dakshbhardwaj)
- Add support for ImageSource and ImageRequest in the State. (d7c41361dd by @cipolleschi)
- Generate custom Native State (7490ad4a21 by @cipolleschi)
- Add support for platform-specific specs (7680bdeb4f by @cipolleschi)
- Added suppression for warnings about unused parameters in 'publish
()' func (c1363984f1 by @inobelar) - Export YGInteropSetLogger method (d9a5c66baa by @KimDaeWook)
- Add instructions about how to add tests in the OSS (75b688fba8 by @cipolleschi)
- Add YGGutter Enum (87e7912b95 by @NickGerleman)
- Add string support for aspectRatio (14c91cdf59 by @gabrieldonadel)
- Add alt prop to Image component (71fda5e0c2 by @gabrieldonadel)
- Include
this.state.bottom
when calculating new keyboard height to fix android keyboard switching (f85e2ecc40 by @pfulop) - Implement custom Native State parsing in TypeScript (bbb2fb212d by @cipolleschi)
- Implement custom Native State parsing in Flow (925b15351f by @cipolleschi)
- Add string support to the transform property (34db2d4e93 by @gabrieldonadel)
- Add
types
folder to house TypeScript types. (6b2a511cbb) - Add additional Systrace support (9cb716ff76 by @christophpurrer)
- Add space-separated string support for fontVariant (09d420707f by @gabrieldonadel)
- Add aria-modal prop to basic component (095f19a681 by @dakshbhardwaj)
- Added support for number values in fontWeight. (f1c1f8116b by @ankit-tailor)
- Add
aria-label
prop toButton
,View
,Pressable
component (720cdbc658 by @Viraj-10) - Add
aria-valuemax
,aria-valuemin
,aria-valuenow
,aria-valuetext
as alias prop toTouchableOpacity
,View
,Pressable
TouchableHighlight
TouchableBounce
TouchableWithoutFeedback
TouchableOpacity
components (e8739e962d by @dakshbhardwaj) - Add support for objectFit style of Image. (b2452ab216 by @gedeagas)
- Added aria-live alias for accessibilityLiveRegion. (7ea54a4087 by @mayank-96)
- Add aria-disabled, aria-busy, aria-checked, aria-expanded and aria-selected prop to core components (98d84e571d by @ankit-tailor)
- Add support for
userSelect
style (fc42d5bbb9 by @dakshbhardwaj) - Added a check to if
scrollEnabled
is not false, if so then fire theVirtualizedList
error (62f83a9fad) - Add proper support for fractional scrollIndex in VirtualizedList (f44dfef923 by @NickGerleman)
- Add expanded support for CSS Colors (ac1fe3b7eb by @gabrieldonadel)
- Add aria-hidden prop to Pressable, View and Touchables components (ebdb23c6e0 by @gabrieldonadel)
- Added role alias for accessibilityRole. (a50e6fb341 by @madhav23bansal)
- Added pointerEvents style equivalent to pointerEvents prop (5c109b37a4 by @cyrus25)
- Added an overlay similar to Inspector.js that allows directly selecting elements on RN from React DevTools (c52df02f84 by @tyao1)
- Add tintColor prop to Image component (7a6f0e44b2 by @gabrieldonadel)
- Make babel-plugin-codegen work for TypeScript Spec files (df0b6900ec by @RSNara)
- Add inputMode prop to TextInput component (9fac88574e by @gabrieldonadel)
- React-native-codegen: Add Enum Type support for C++ TurboModules (b444f0e44e by @christophpurrer)
- Add enterKeyHint prop to TextInput component (8c882b4f3d by @dakshbhardwaj)
- React-native-codegen: Add Union Type support for C++ TurboModules (355feafff6 by @christophpurrer)
- Add readOnly prop to TextInput component (de75a7a22e by @gabrieldonadel)
- Added ability to construct ArrayBuffers from existing memory buffers. (3bae268782 by @neildhar)
- Add ability to store and retrieve a list of MapBuffer (fc065151ce by @sshic)
- SyncCallback/AsyncCallback/AsyncPromise bridging types in C++ now allow wrapping JSI types. (610bb7f688 by @nlutsenko)
- Add types for onFocusCapture/onBlurCapture (aabb5df7ec by @NickGerleman)
- Add
returnKeyAction
prop toTextInput
component and remove usages ofblurOnSubmit
in native code and convertblurOnSubmit
toreturnKeyAction
in the JavaScript conversion layer (1e3cb91707) - Re-add support for using Yoga without exceptions (793ebf6812 by @Yannic)
Android specific
- Added Flavor Support to React Native Gradle Plugin (RNGP) (8ad86c70b6 by @cortinico)
- Add ComponentWithState in Android (b24f60f729 by @cipolleschi)
- Add support for verticalAlign style (32b6f319ba by @gabrieldonadel)
- Add tabIndex prop to View component (621f4cf3b1 by @gabrieldonadel)
- Add rows prop to TextInput component (49c9ccd3f8 by @gabrieldonadel)
- Stop special-casing Android 11+ from large form-factor
keyboardShouldPersistTaps
behavior (ef77a4218d by @NickGerleman) - Provide defaults for TurboModuleManagerDelegate and JSIModulePackage (9a2eb9089f by @cortinico)
- Expose UI_MODE_TYPE_VR_HEADSET in PlatformConstants (77c256ca91 by @NickGerleman)
- Expose
globalEvalWithSourceUrl
in production builds. (333583bfbe by @EvanBacon) - Accessibility announcement for list and grid in FlatList (463af23753 by @fabriziobertoglio1987)
- Improve OSS systrace (ccbfdd7167 by @janicduplessis)
- Un-deprecate DisplayMetrics.getWindowDisplayMetrics() method (4cbd263173 by @mdvacca)
iOS specific
- Bring back JSIDynamic and JSI (3d7b53d456 by @cipolleschi)
- Add Dynamic Type support for iOS (Paper and Fabric) (11c8bf3137)
- Add support for parsing files w/
:
in filename (714b22bb43 by @shwanton) - Download Hermes from Maven while for -stables (44e8462a03 by @cipolleschi)
anchor
option support forShare
(aeab38357f by @zhumingcheng697)- Line break strategy for Text and TextInput components (048194849b by @bang9)
- Add more extension points for RCTAppDelegate (dd607a8f2d by @cipolleschi)
- Introduce sample component which work with the native state. (1a9cceb20b by @cipolleschi)
- Add new APIs to
react_native_pods.rb
to simplify app migration (34fafb2b88 by @cipolleschi) - Test iOS template with both architectures and configurations (4352459781 by @cipolleschi)
- Add new fontVariant values: stylistic-one(ss01) -> stylistic-twenty(ss20) (163636db75)
- Added the RCTAppDelegate library (7cc2d1a249 by @cipolleschi)
- Support setting an Alert button as "preferred", to emphasize it without needing to set it as a "cancel" button. (000bbe8013 by @robbie-c)
- Added
borderCurve
style prop for smooth border radius (squircle effect) (8993ffc82e by @eric-edouard) - Automatically detect when use frameworks is used (f7b35c0d43 by @cipolleschi)
- Add compiler flag for the new Arch when enabled. (5b32348add by @cipolleschi)
- Improve Codegen Cleanup (aaa795b by @cipolleschi)
Changed
- Bump CLI to 10.0.0 and Metro to 0.73.5 (e1bca8f98c by @thymikee)
- Upgrade to
deprecated-react-native-prop-types
3.0.1: changelog (3e91415696 by @yungsters) - Upgrade Jest in React Native to ^29.2.1 (45db65be7e by @robhogan), (8f337538ae by @kelset)
- Bump
@react-native/normalize-color
to 2.1.0,@react-native-community/eslint-plugin
to 1.3.0,@react-native/babel-plugin-codegen
to 0.71.1,@react-native-community/eslint-config
to 3.2.0 and@react-native-community/eslint-plugin-specs
to 1.3.0, (8183aac0b1) - Upgraded react-devtools-core dependency to 4.26.1 (48263b8daf)
- Bump
react-native-codegen
to^0.71.3
andreact-native-gradle-plugin
to0.71.12"
(a7792da695 by @cipolleschi) - Bump Hermes for 0.71 version (4e5fc68672 by @kelset)
- Simplify Template ESLint Configuration (68d6214a18 by @NickGerleman)
- Use
'react-native'
export conditions in Jest environment (0376aa4856 by @SimenB) - Move JSCRuntime into a separate pod/prefab (f3bf4d02ab by @cipolleschi)
- Improve version checks (f12b12c999 by @cipolleschi)
- Read
.ruby-version
file inGemfile
(cb7f1b1f0b by @dcangulo) - Remove React Native version from Hermes tarball name (e36c492ace by @cipolleschi)
- RNTester: Migrate Dimensions to hooks (745e26288c by @Marcoo09)
- Do not filter errors/warnings from console (fa2842d113 by @rickhanlonii)
- RNTester: Migrate ActivityIndicator to hooks (c868d5b26c by @Marcoo09)
- Refactor codegen: Dispatch props and events from a central place. (affcfa7bde by @ZihanChen-MSFT)
- Add "EarlyJsError: " as prefix of early js error's message (be6f65660f)
- Move Jest config to use a custom react-native Jest env (cb2dcd327c by @kelset)
- Add Metro health check files to the template's
.gitignore
(19715cf4fb by @motiz88) - Ship VirtualizedList_EXPERIMENTAL (971599317b by @NickGerleman)
- Typescript: update incorrect
SwitchChangeEvent
type (5dd2f2e4b7 by @retyui) - Make
yarn
andyarn jest react-native-codegen
works on Windows with git (c4f9556f7e by @ZihanChen-MSFT) - Refactor in turbo module TypeScript codegen: process
(T)
,T|U
,T|undefined
and related stuff in a central place (00b795642a by @ZihanChen-MSFT) - Move and rename
hermes-inspector-msggen
toreact-native/hermes-inspector-msggen
(530dae8a45 by @gabrieldonadel) - Fix interface support in turbo module TypeScript codegen (component only) (8dc6bec719 by @ZihanChen-MSFT)
- Place TS Declarations Alongside Source Files (8cdc9e7f04 by @NickGerleman)
- Handle (T) and undefined properly in turbo module component codegen (205cc9bc3b by @ZihanChen-MSFT)
- Update
Clipboard
mock path (2aba3522ab by @adrianha) - Fix ImageLoader.getSize jest mock (7be829f2c9 by @elliottkember)
- Correct execution context ID in Debugger.scriptParsed event. (545366aea3 by @aeulitz)
- Don't polyfill Promise in Jest setup (f1fdc8b9b6 by @robhogan)
- Codegen: support TypeScript type
(T)
for turbo module codegen (module only) (624bdc7ec6 by @ZihanChen-MSFT) - Unify TextInput autoComplete and textContentType props (73abcba40f by @gabrieldonadel)
- Added
crossOrigin
,referrerPolicy
,width
,height
andsrcSet
props to Image Component. (47a05bc26a by @dhruvtailor7) - Copied and refactored the current devtools highlighting code from Inspector into its own module and add to the top level
AppContainer
. The effect is that the highlight stills shows without Inspector opened. (a63204800a by @tyao1) - Minor change to PropTypes error message. (7783f88d71 by @yungsters)
- Set back the
DANGER_GITHUB_API_TOKEN
. (9344c7aa5a by @cipolleschi) - Run ESLint in CI (1bba59023d by @cipolleschi)
eslint-plugin-specs
package has prepack hook that changesPACKAGE_USAGE
variable ofreact-native-modules.js
totrue
. (ee9c1a5260 by @dmytrorykun)- Attach the
.hermes-cache-key-file
to the workspace to avoid race conditions for new PR landing on Hermes and changing the head commit between the time Hermes is built and the time it has to be consumed. (ccdf9ac985 by @cipolleschi) - Build hermes when in CI and not when there is a tarball (4b51207735 by @cipolleschi)
- Make sure we can build Hermes from source when PR are opened agains -stable (361d939afd by @cipolleschi)
- Update ktfmt component on FBS:master (47548c1149 by @cgrushko)
- Add explicit React useState annotations in xplat/js (ff14ff3d92 by @pieterv)
- Improve sample app (03cb5aca3f by @pieterv)
- Mirror fbcode directory structure for container targets (10ea6fb9a3)
- Update ktfmt component on FBS:master (0538f45e45 by @cgrushko)
- Rewrite CompactValue to avoid undefined behavior from the use of a union for type-punning (e7a8d21df5 by @htpiv)
Android specific
- Bump AGP to 7.3.1 (1f42ff0815 by @cortinico)
- Bump Android compile and target SDK to 33 (394486eec5 by @makovkastar)
- Bump Soloader to 0.10.4 (1237952d07 by @simpleton)
- Rename
POST_NOTIFICATION
toPOST_NOTIFICATIONS
(910a750fbc by @dcangulo) - Void the Maven coordinates for react-native and hermes-engine (55b1670aa6 by @cortinico)
- Provide easy registration of C++ TurboModules in rn-tester Android (9cb02613e6 by @christophpurrer)
- Add feature flag enableAtomicRegisterSegment (f207cfddf3)
- Update the template to load the correct JS engine at runtime (2097278d2a by @cortinico)
- Do not import/use the deprecated ReactFlipperPlugin (07252b81f6 by @cortinico)
- Update the template to use RNGP (c96c76eb91 by @cortinico)
- Let RNGP set buildConfigFields for New Architecture and Hermes (7d2f48c97d by @cortinico)
- Hide the C++/Cmake configuration from user space inside the framework (c9e6a6056d by @cortinico)
- Encapsulate the prefab configuration for consumers (b39e77b3d7 by @cortinico)
- Cleanup the Android template after prefab support (0b4417b43f by @cortinico)
- Simplify Accessibility Heading role implementation. (353b1b0f8b by @blavalla)
- Update the OnLoad.cpp to use the facebook::react namespace (aba82a503d by @cortinico)
- Remove internal buck rule arg for robolectric tests (59dc7f1b20)
- Further simplify the New App Template by don't requiring the dynamic library name (59ae0487ce by @cortinico)
- Update the template to Reduce the amount of C++ code in user space for New Architecture (b0aba1b6fa by @cortinico)
- Reduce the amount of C++ code in user space for New Architecture (e89bd4a375 by @cortinico)
- Move setRootViewTag to earlier when RootView is created (4d642a2250 by @sshic)
- Replace Folly with MapBuffer for passing js error data (e874e5facb by @sshic)
- Simplify the template for New Architecture using the .defaults package (33bd2f6eae by @cortinico)
- Enable -Wpedantic in OSS Android Targets (06b55a3d04 by @NickGerleman)
- Do not load Flipper via reflection (9214da1238 by @cortinico)
- Collapse catch blocks in template (a379879adf by @danilobuerger)
- Bump git checkout cache key (fourth time) (41a80f2ee2 by @kelset)
- Replace Toast with Log.w on ReactImageView when null URL specified (30411ae1a4)
- Views with overflow: hidden and borderRadius: >0 now render anti-aliased borders. (7708cdccef)
- Expose react_render_animations via prefab. (98ad3996c8 by @cortinico)
- Remove unnecessary repositories{} block from top level build.gradle (f65dfa86ab by @cortinico)
- Fix prefab prefix for fabricjni (621d901e10 by @cortinico)
- De-bump AGP to 7.3.1 and do not use addGeneratedSourceDirectory (caa79b7c01 by @cortinico)
iOS specific
- Fix imports in React Bridging for Old Arch and frameworks (c5de1eb1ba by @cipolleschi)
- Abort pod install if bad HERMES_ENGINE_TARBALL_PATH is set. (27e7295ca7)
- Hermes is integrated into Xcode build. (6b8e13f53c)
- Display a RedBox with the JS stack (instead of native stack) when an unhandled JS exceptions occurs (ff398e4e26 by @p-sun)
- Resolve JSI ODR violation, make hermes-engine the JSI provider when Hermes is enabled (a68c418082 by @hramos)
- The JSC Runtime is now provided by the React-jsc Pod instead of React-jsi. Libraries that declared a dependency on React-jsi in order to specifically create a JSC runtime (
makeJSCRuntime()
) will need to add React-jsc to their dependencies. (6b129d81ed by @hramos) - Moved JSIDynamic out of React-jsi and into React-jsidynamic (0db5178688 by @hramos)
- Do not load Hermes inspector in release builds (2a21d5a28e by @hramos)
- Remove debugger from Hermes when building for release (2fc44ac8e1 by @hramos)
- Use debug Hermes builds by default (ce4aa93173 by @hramos)
- Add function to simplify podspecs (82e9c6ad61 by @cipolleschi)
- Enable pedantic warnings in C++ podspecs (545c82b490 by @NickGerleman)
- Cleanup codegen build folder before installing the pods (0e316ec671 by @cipolleschi)
- Properly support both libraries and use_frameworks (c6fa633597 by @cipolleschi)
- Add link group label to talkios deps (b33961d7a0)
- Add link group label to fbios deps (065db683a2)
- Use an SDKRoot based Foundation framework (ee4ce2df2f by @chatura-atapattu)
Removed
- remove AsyncStorage from JS (20eeb1bfe3 by @hoxyq)
- Remove VirtualizedList
listKey
prop (010da67bef by @NickGerleman) - Remove MaskedViewIOS (a67360b0f3 by @sokolnickim)
- Back out parsing and generation of Custom Native State from Codegen (62da9b8ce2 by @cipolleschi)
- Back out components with native state in RNTester (aace6626c1 by @cipolleschi)
react-native/eslint-plugin
no longer provides theerror-subclass-name
rule. (4f83498462 by @yungsters)react-native/eslint-plugin
no longer provides theno-haste-imports
rule. (1ec69b1823 by @yungsters)- Remove listKey from TS typings (773615bc9d by @NickGerleman)
- Remove usages of listKey (bc5cb7cd79 by @NickGerleman)
- Remove unneed/obsolete job (8e3b62019e by @kelset)
- Remove flexlayout from react-native (bf05df1723 by @NickGerleman)
- Remove remaining TV_OS fragments (089684ee56 by @christophpurrer)
Android specific
- Removed
AsyncStorage
module (5738fe6426 by @hoxyq) - Deprecate react.gradle (af6aafff90 by @cortinico)
- Removed deprecated UIImplementationProvider (e7d7563195 by @javache)
- Cleanup Buck usages from New App Template (32fc551c55 by @cortinico)
iOS specific
- Removed
AsyncStorage
module (4de2aaba50 by @hoxyq) - Remove
HERMES_BUILD_FROM_SOURCE
flag (138af74e3f by @cipolleschi) - Removed
ImagePickerIOS
module native sources (d03a29ce5f by @hoxyq)
Fixed
- Fix TS Type for measureLayout optional parameter (5928144302 by @NickGerleman)
- Allow GNU coreutils to be used to build projects (f5e5274e6a by @shreeve)
- Reference App.tsx vs App.js in text of new typescript template (81e441ae8a by @mikehardy)
- Fix incorrect height when gap causes main axis to overflow and cross-axis is stretched (1aa157b196 by @NickGerleman)
- Codegen for C++ TurboModules of optional method arguments was incorrect (e81c98c842 by @javache)
- Fix incorrect height when gap causes main axis to overflow and cross-axis is stretched (1aa157b196 by @NickGerleman)
- Fixup TS Organization (5d26ceaa23 by @NickGerleman)
- Fixed typo syncronization -> synchronization (ad5e3f6b9a by @pruthvip)
- react-native-codegen : Add Map / indexed object support for TypeScript parser (87c356d56c by @christophpurrer)
- Add wanted dependencies to remove yarn warnings (cd25fb3240 by @kelset)
- Fixed crash when converting JS symbol to folly::dynamic (428feb2f76 by @kassens)
- Error reporting for module errors (af0e6cdae5 by @rickhanlonii)
- Support properly sending BigInts and Symbols over the Chrome DevTools Protocol. (7208d15dce)
- Fixed React DevTools element highlighting throwing redbox errors (c64f25ac85)
- Fix require cycle warning in VirtualizedList (49cb7f28c8 by @motiz88)
- Pressability for text with only
onPressIn
/onPressOut
props (f1f7824203) - Load react-native.config.js from correct path during codegen (74fda10702 by @krystofwoldrich)
- Remove usage of the codegen spec filtering until we publish a new version of the codegen. (ae3dd54fae by @cipolleschi)
- Fix nightly build issues (93c3effc72 by @Kudo)
- Properly parse negative values (f3c98c5fa2 by @cipolleschi)
- Fixup Yoga Enum Generator (5f9689a0d0 by @NickGerleman)
- Fix remaining NDK comment for new architecture (fb1f53f7dc by @ken0nek)
- Fixed missing Pressable hover props in typescript definition (6ba5fa946d by @Saadnajmi)
- Remove Android.mk from internal Gradle task (d0df6afe76 by @Sunbreak)
- In RN devtools, call that method, and then set component state to not inspecting. (bfb36c2163 by @tyao1)
- Enable the
react-native-codegen
tests in the OSS. (00458c9410 by @cipolleschi) - Make style pointerEvents take priority over pointerEvents prop. FIxes requested changes in https://github.com/facebook/react-native/issues/34586 (a789ead545 by @cyrus25)
- Change Wrapper of
InspectorPanel
fromView
toSafeAreaView
(afad68f1a8 by @raykle) - Typo in AssetSourceResolver (a45eeea17a by @dhruvtailor7)
- Run ExceptionsManager unit tests in both DEV and prod mode (a154207371 by @GijsWeterings)
- Avoid keypress event when text is pasted on macOS (477663cba8 by @christophpurrer)
- Flipper now supports custom Xcode build configuration names (1bc9ddbce3 by @scarlac)
- Make clang-format work in M1 (Apple Silicon) (377aa7a30f by @christophpurrer)
- Using SOURCEMAP_FILE during xcode build phase with Hermes enabled (a98da32229 by @kidroca)
- Remove compiler-specific syntax. (33dbb6c40c by @chiaramooney)
- Fix reload hang after debugger break and continue (60e7eb4d53 by @aeulitz)
- Fix FlatList not calling render items for nullish values when numColumns > 1 (cc19cdcdbe by @AntoineDoubovetzky)
- Fix macro errors for Windows. (fc26dbfce0 by @chiaramooney)
- Adding grid role to ViewAccessibility to fix flow errors. (5ddb9977e6 by @fabriziobertoglio1987)
- Fix: use REACT_NATIVE_CI instead of CI envvar (ed16fdbbb8 by @dmytrorykun)
- Bypass tag check in dry run (ba1a9defbb by @cipolleschi)
- Fix removal of version from Hermes tarball, part 2 (6107793fda by @kelset)
- Fix removal of version from Hermes tarball (e809e4b1ec by @kelset)
- Better fix for param (32931b19b1 by @kelset)
- Fix publish npm post strict (0f72abfc03 by @kelset)
- Fix some issues exposed when making function statics sealed (662115077a by @gkz)
- Fix measure inner dimensions (11f47432ff by @kinarobin)
- Annotate empty objects in xplat (abb21dd908 by @SamChou19815)
- Fix comment typo 'layed out' to 'laid out' (108c876206 by @lwyj123)
- Fix missing dll exports (619d115822 by @justjavac)
- Fix FillRateHelper Accessing -1 Frame (052617611d by @NickGerleman)
- Attempt fix #2 for
cellsAroundViewport
reaching out of bounds (0ef770587f by @NickGerleman) - Attempt fix for
cellsAroundViewport
reaching out of bounds (7aa203beda by @NickGerleman) - Reland D38460202 and fix tests (c4ddaa8fdb by @sshic)
- Add missing class annotations and lock xplat/js (0ccbe5f704 by @pieterv)
- Add missing class annotations xplat/js [suppressions] (2e649006f1 by @pieterv)
- Add missing class annotations xplat/js (ee3d3c248d by @pieterv)
- Apply lint updates from buildifier in xplat (a70354df12 by @chatura-atapattu)
- fix: remove gap if its last element in line (fix flex gap extra spacing when children determine parents main axis size)( by @intergalacticspacehighway)
- Add missing AccessibilityInfo Types to TS Typings (dc1b20d495 by @NickGerleman)
- Fix Errors with TypeScript Tests (ed08edd966 by @NickGerleman)
- Add missing VirtualizedList Imperative Types (de1136359c by @NickGerleman)
- Fix virtual list type (1bd3831cc5 by @aliakbarazizi)
- Add missing types for AppRegistry (213c26c23d by @NickGerleman)
- Add type for RootTagContext (fd28032be6 by @NickGerleman)
- Add missing types to PushNotificationIOS (f04f067aae by @NickGerleman)
- Fix missing animation type (CircleCI Break) (696f4b5c39 by @NickGerleman)
- Fix types for deprecated scrollTo fields (f9ab91c3ab by @NickGerleman)
- Fix Vibration.vibrate() allowing null params (9b7618856f by @NickGerleman)
- Mark scrollToEnd animated as optional (8770b2724a by @NickGerleman)
- Fix type for StyleSheet.compose() (754524ea9d by @NickGerleman)
- Remove testID from TS ViewStyle (172f23a2ee by @NickGerleman)
- Add missing type for AnimatedValue.resetAnimation() and AnimatedValue.animate() (1b5066c21d by @NickGerleman)
Android specific
findPackageJsonFile
should returnnull
ifpackage.json
does not exist (913ebd207c by @tido64)- Fix crash on initialize modal (15656342a8 by @alpha0010)
- Fix Android autolinking failing because of not expanded variable (4c1d5ad9c6 by @kkafar)
- On instance destroy, websockets are correctly closed (b5ea5a2c4d by @javache)
- Sets the namespace via Gradle and not via AndroidManifest (cec9a34f6c by @cortinico)
- RNGP - Do the .so cleanup using pickFirst and exclude (2ff08e8bd8 by @cortinico)
- Fixed an issue on Android API 31+ where modals would turn status bar icons white by default (5c5220a46d by @Abbondanzo)
- TextInputs may not get focused when switching inputs in a ScrollView (370bbd705b by @javache)
- Fix react.gradle's detectCliPath's for finding the path from Node (121184bb8f by @liamjones)
- Fix crash on release versions after AGP 7.3 bump (6125f1f866 by @cortinico)
- Gracefully handle crash if no WebView provider is found on the device (3f3394a566 by @rachitmishra)
- Text with onPress or onLongPress handler is not accessible with TalkBack (f3847eeec2 by @fabriziobertoglio1987)
- Align android image style / source logic with ios (6bdcb49966 by @danilobuerger)
- Emit the right bubbling event for ReactSliderEvent (b7e7e7ff1e)
- Typo in build.gradle (ed21a3e20f by @jeremybarbet)
- Border width top/bottom not matching the border radius (cd6a91343e by @hurali97)
- Re-implement accessibilityHint on Android to use AccessibililltyNodeInfo#setToolTipText instead of contentDescription (0b70b38547 by @fabriziobertoglio1987)
- Removed unused variable
NODE_MODULES_DIR
frombuild.gradle
in app template (50b1270298 by @tomekzaw) - AccessibilityLabelledBy use DynamicFromObject to parse String to Dynamic (9f4358142e by @fabriziobertoglio1987)
- Bug with view transforms when view recycling is enabled (e0be14a310 by @javache)
- Use WindowInsetsCompat for Keyboard Events (1e48274223 by @NickGerleman)
- Adding importantForAccessibility for Text, Button, ImageBackground (62021eb8d1 by @fabriziobertoglio1987)
- Fix regression when setting shadow node properties. (a142a78473 by @rshest)
- Fix occasionally incorrect ScrollView fling behavior (c7c263dda8 by @dhleong)
- Migrate
needsCustomLayoutForChildren
check to the new architecture (e24ce708ab by @grahammendick) - Remove extra indexOf call in BackHandler.removeEventListener (14c207d9e1 by @vitalii-tb)
- Fix such that when the scrollviews call
onChildStartedNativeGesture
, they appropriately callonChildEndedNativeGesture
to unlock the native gesture such thatJSTouchDispatcher
orJSPointerDispatcher
will continue to emit events. (143a0f74b8) - Fix
AttributedString
comparison logic for TextInput state updates (089c9a5c9c by @NickGerleman) - Invoke closeAndReleaseSonatypeStagingRepository in the publish gradle invocation (e4f23f4783 by @cortinico)
- Do not eat taps/clicks in ScrollView when soft-keyboard is detached from viewport (fd1e82a10f by @NickGerleman)
- Add missing class annotations xplat/js (c687dd3a77 by @pieterv)
iOS specific
- Don't use the internal
native_modules.rb
script yet, as it hides a hard-coded path (4df793f75b by @tido64) - Exclude redirector to
LongLivedObject.h
from ReactCommon podspec (dd0bf83481 by @cipolleschi) - Fix incorrect codegen CLI paths in monorepo projects (4a4cceef25 by @byCedric)
- Remove hermesc build dir for non-Hermes build. (c05e6c47df)
- Remove
Copy Hermes Framework
script phase for non-Hermes build. (7f60bcceac) - Make sure that the React-Codegen.podspec does not enforce specific versions of its dependencies. (bc074a300d by @cipolleschi)
- Various fixes for Hermes build-from-source behaviour. (5dd0f7327b)
- Correctly set -DCMAKE_BUILD_TYPE for Hermes on iOS (c63133202b by @cortinico)
- Https://github.com/facebook/react-native/pull/35047 reverted. (bbd432e999)
- Make sure that libraries created with
install_modules_dependencies
has the right C++ version. (40ad31eacf by @cipolleschi) - Make ManagedObjectWrapper compile on macOS (76c7ccaa60 by @christophpurrer)
- Map
accessibilityRole: grid
toUIAccessibilityTraitNone
(f3d9f2ea23 by @NickGerleman) - Remove unused #import <UIKit/UIGestureRecognizerSubclass.h> import which breaks macOS (84737e0069 by @christophpurrer)
- Fix Text.allowFontScaling prop in the new architecture (e9b89b5ff2 by @sammy-SC)
- Make the nightly work with the proper Hermes tarball (1546666a6d by @cipolleschi)
- Add MARKETING_VERSION to template project (33e140fd05 by @kelset)
- Automatically following version on xcode. (dcd21143bc by @erfinbadrian)
- Fix race condition in RCTLoggingTests integration tests (540ae39487)
- Add missing react/renderer/mapbuffer module to podspec (00458637da)
- RedBox title font by using a monospace font on iOS +13. (5933b6a3ba by @EvanBacon)
- Update usage of UIApplication.sharedApplication in RCTKeyCommands (5e79fa8441 by @evoactivity)
- Change hermes logic in build scripts for Apple to use the correct files (cc13b0273f by @kelset)
- Fix error in the Codegen template for ThirdPartyFabricComponentsProvider (2f6b2127d9 by @gispada)
HERMES_ENABLED
check fixed in react-native-xcode.sh (8745a148b6 by @nvojnovic)- Make sure to turn on the
RCT_NEW_ACRH_ENABLED
flag (f31134af7d by @cipolleschi) - Fix
Alert
not showing in an app usingUIScene
(153aedce41 by @tido64) - Image Component will not update correctly when passing in new url (5c211f2bce by @matpaul)
- Fixed Time.h:52:17: error when a folder in the file path has a space (9e169da3ae by @gaberogan)
- Fix: RCTAlertController's UserInterfaceStyle to follow root window (18542b6ef5 by @vonovak)
- CI broken due to Hermes Commit (ff7f5a332f by @cipolleschi)
- Typo in AppDelegate.mm (0a59c284a9 by @jeremybarbet)
- When source maps are enabled, clean up temporary files from the build directory. Reduces bundle size by at least 1MB. (e0a71fc7b5 by @dmytrorykun)
- USE_HERMES envvar check fixed in react-native-xcode.sh. Now source maps are generated by default. (03de19745e by @dmytrorykun)
- Fix keyboard accessory button not triggering onSubmitEditing (98d74d6eb9)
- Possible fix for convertIdToFollyDynamic crash in RCTBaseTextInputView and RCTEventDispatcher (8b174a57c8 by @christophpurrer)
- Fix exception thrown by [RCTTextView description] on macOS (7db6c080f5 by @christophpurrer)
- Allow preferred Alert button regardless of the style (653a19a8cd by @danilobuerger)
- Fix
contentInsetAdjustmentBehavior
set toautomatic
onScrollView
in the new architecture (27fe6f1079 by @grahammendick) - Use readlink instead of realpath in packager.sh (698b14789c by @dminkovsky)
- Fix cocoapods cli native_modules require for pnpm node_modules (af3dfbaa47 by @danilobuerger)
- Use the right logic for build from source (49c0267b66 by @cipolleschi)
- Remove the hermes engine cache in the clean script (9979e38c70 by @kelset)
- Make sure to export a single version for hermes artifacts and wipe Podfile.lock while in release (41bf725ada by @cipolleschi)
- Let React Native decide the Hermes version to use in the Codegen (becb47ccb6 by @cipolleschi)
- Fix copy-hermes-xcode.sh (fc1dbb8f0b by @dmytrorykun)
- Merge pull request #35188 from dmytrorykun/export-D40979350 (151498a122 by @cipolleschi)
- Center text if line height isn't 0 (70cc27c901 by @sammy-SC)
- Fix cleanup not working on template app (ce3eefe12c by @cipolleschi)
Security
- Bump terser minor version to mitigate CVE-2022-25858 (743f9ff63b by @GijsWeterings)