Changelog
v0.70.3
Fixed
- Stop styles from being reset when detaching Animated.Values in old renderer (2f58e52006 by @javache)
- Revert "Fix TextInput dropping text when used as uncontrolled component with
defaultValue
" to fix TextInputs not being settable to undefined programmatically (e2645a5) by Garrett Forbes Monroe
Android specific
iOS specific
- Add xcode 14 workaround (turn off signing resource bundles) for
React-Core
(967de03f30 by @kelset)
v0.70.2
Added
iOS specific
Changed
Fixed
Android specific
- Fix port as -1 if dev server without specifying port on Android (3d7e1380b4 by @Kudo)
v0.70.1
Added
Changed
Fixed
Android specific
iOS specific
0.70.0
Breaking
Added
Android specific
iOS specific
Changed
- Bump React Native Codegen to 0.70.0 (a22ceecc84 by @dmytrorykun, 2a274c1a08 by @cortinico, ce4246a05c by @dmytrorykun)
- Upgrade RN CLI to v9.0.0, Metro to 0.72.1 (0c2fe96998 by @thymikee, 7e580b97bf by @kelset, c504d038c4 by @thymikee, f1d624823f by @kelset, 2b49ac6f8b by @thymikee)
- Doc: fix minimum iOS version in requirements section (ec3c8f4380 by @Simon-TechForm)
- Remove "Early" in Js error reporting pipeline (0646551d76 by @sshic)
- Update @react-native/eslint-plugin-specs to 0.70.0 (d07fae9b23, afd76f69c7 by @dmytrorykun, ea8d8e2f49 by @cortinico)
- Do not depend on hermes-engine NPM package anymore (78cd689f9a by @cortinico)
- Add ability to pass
ItemSeparatorComponent
as React Element (5854b11bf9 by @retyui)
- Hermes version bump. (0b4b7774e2 by @dmytrorykun, 8c682ddd59 by @dmytrorykun, eb6767813a by @cortinico)
- Codemod
{...null}
to {}
in xplat/js (f392ba6725 by @gkz)
- Fix TextInput dropping text when used as uncontrolled component with
defaultValue
(51f49ca998)
- Suppress errors ahead of launch (67e12a19cb by @gkz)
- Suppress missing 'this' annotations (6c563a507f by @pieterv)
- Suppress missing annotations (66c6a75650 by @pieterv)
- Use RuntimeConfig instead of VM Experiment Flag to set up the micro task queue. (753038cf34 by @fbmal7)
- Update direct Metro dependencies to 0.72.0 (05dcebc211 by @kelset, 64788cc9fe by @huntie, bdeb4e0655 by @jacdebug, 894f652639 by @robhogan, 08ebc1cfd8 by @arushikesarwani94)
- ECOSYSTEM.md: update Partner entries (5471afeebf by @Simek)
- Move ScrollView's contentOffset to common props (7c581f3d30 by @genkikondo)
- Upgrade react-native-gradle-plugin to 0.70.2 (1518f838b7, 2176173dcc by @dmytrorykun)
- Update a few metro deps as follow up from the commit from main (7c7ba1babd by @kelset)
Android specific
iOS specific
Removed
iOS specific
Fixed
Android specific
- Fixed HorizontalScrollView API scrollToEnd causing NPE in side-effects. (e5ba6ab7b4 by @ryancat)
- Fix InputAccessoryView crash on Android (afa5df1764 by @hduprat)
- Bring back non-rootview touch handling based on reactTag (8b837268b4 by @fkgozali)
- Make Text not focusable by default (8ced165e53 by @kacieb)
- Revert PR 33924 because of issues with TextInputs with numeric keyboard types not respecting the secureTextEntry prop (edb27e3aa1 by @charlesbdudley)
- Fix edge case when we enqueue a pending event to views on stopped surface (ea7c9f2ad9 by @ryancat)
- Fix a bug where the keyboard, once set as email, won't change back to default. (ec307e0167 by @larkox)
- NPE in
ReactEditText.setInputType
when React Native is used with some versions of a AppCompat 1.4.x. (and possibly others) (92ebb298e2)
- Fix NPE on
ReactEditText
due to null mFabricViewStateManager (ba6bf5a3ce by @cortinico)
- Scroll views would still receive scroll events when nested in a view with
pointer-events: "none"
(fced96bf52 by @javache)
- Fixed an edge case that event dispatching is failed after pre-allocation of a view and before the view is mounted. (a093fe5f2f by @ryancat)
- Avoid crash by handling missing views in dispatchViewManagerCommand (ee1a191cb1 by @hsource)
- Pass react build dir to cmake (6ab7a99518 by @janicduplessis)
- Fix missing space in ReactPropertyException message (24560b6718 by @markv)
- Fix import path breakage (2e1e62f2bf by @aniketmathur)
- When
onEndReachedThreshold
is set to 0 onEndReached
function on VirtualizedList
properly fires once the user scrolls to the bottom of the list. (b869680c11)
- Fix rendering of transparent borders in RN Android (a9659ce86d by @mdvacca)
- Exception with
Cannot load WebView
message will initialising WebView (along with existing checks) (9e0d8696cc by @rachitmishra)
- Fix accessibilityState overwriting view's disabled state on Android (f35d18caa3 by @okwasniewski)
- Make sure *.ts files are considered for task avoidance in the Gradle Plugin (1a9fb6cb68 by @cortinico)
- Fix missing import on New Architecture build script in template (a22f30d2ce by @cortinico)
iOS specific
Security
v0.69.6
Changed
- Bump version of
promise
from 8.0.3 to 8.2.0, enabling Promise.allSettled
(951538c080 by @retyui)
Fixed
Android specific
iOS specific
- Fix the way the orientation events are published, to avoid false publish on orientation change when app changes state to inactive (7d42106d4c by @lbaldy)
- Fix React module build error with swift integration on new architecture mode (3afef3c167 by @Kudo)
v0.69.5
Changed
Android specific
- Replaced reactnativeutilsjni with reactnativejni in the build process to reduce size (54a4fcbfdc by @SparshaSaha)
Fixed
v0.69.4
Changed
Android specific
v0.69.3
Fixed
iOS specific
- Fix React-bridging header not found for third party modules (fa2acc32d1 by @Kudo)
v0.69.2
Changed
iOS specific
- Hermes pod: change logic to use the hermes tag to set the pod source correctly (46a9edc854 by @kelset)
- Fix the race condition when calling readAsDataURL after new Blob(blobs) (bd12e41188 by @wood1986)
- Make sure that Flipper pods are not installed when creating a release build (23accbf58d by @cipolleschi)
v0.69.1
Changed
iOS specific
Fixed
- Use monotonic clock for performance.now() (114d31feee)
iOS specific
v0.69.0
Breaking
Added
Android specific
iOS specific
- Prepare a method in the AppDelegate to control the concurrentRoot. (8ac8439e0d by @cipolleschi)
hotkeysEnabled
property is added to RCTDevMenu
which allows enabling/disabling hotkeys that triggers developer menu popup (1a1a304ed2)
- Allow modifying iOS image cache limits (61b013e7ad by @danilobuerger)
- Add dismissActionSheet method to ActionSheetIOS (64ebe5bbdd by @gabrieldonadel)
- Integrated the
accessibilityLanguage
prop to all the available components. The prop is available for any platform but it will work only on iOS. (7b05b091fd by @dgopsq)
- Support running animations with AnimatedColor with native driver (49f3f47b1e by @genkikondo)
Changed
Android specific
iOS specific
- Use pre-built HermesC if available in current React Native release (644fe430fd by @hramos)
- When building Hermes from source, the filesystem will now be prepared using the new hermes-utils.js scripts, outside of CocoaPods (aaa01f7710 by @hramos)
- Expose scheduler through RCTSurfacePresenter (614aa86916 by @cortinico)
- Adopt UIGraphicsImageRenderer API (d70d7fd0b3 by @matrush)
- Build Hermes from source when Hermes is used (bb01b75637 by @hramos)
- Update CodeGen scripts to accept custom node executable (323db75c36 by @cipolleschi)
- Fixed the fallback behavior when the
.xcode.env
file is missing, actually using the old find-node-for-xcode.sh
script (705c6f57d6 by @cipolleschi)
- Adding a link in a message for the users. (2c52131f5e by @cipolleschi)
- Bump ruby to 2.7.5 (2c87b7466e by @danilobuerger)
- This PR removes the
find-node.sh
scripts and replaces it with an .xcode.env
file that is sourced by the script phases that needs it. The .xcode.env
file is versioned: to customize a local environment, an unversioned .xcode.local.env
can be used. (0480f56c5b by @cipolleschi)
- Update
PushNotificationIOS.checkPermissions
to include iOS 10+ notification settings. (17ecd2fb5b)
- Enable SonarKit in React-Core when the configuration is
'Debug'
(b5343a6b0d by @cipolleschi)
- When Hermes is enabled, the Hermes Engine will be built from source instead of using the pre-built
hermes-engine
CocoaPod. (12ad1fffe8 by @hramos)
- Replaced folly::Optional with std::optional from C++17 in Objc module generator. (45e2941367 by @philIip)
- Removed methodName parameter that was used only for a warning message and moved the warning parameter to be calculated inline. (cfb11ca2f6)
- Fix the crash caused by nil partialLoadHandler (46bc521513)
- Synchronously render cached images (189c2c8958)
- Updated Flipper-Glog to 0.5.0.4 (cd60ffdb62)
- Add function to report early js errors (1804951595 by @sshic)
Deprecated
- Deprecate the use of
react-native/jest/preprocessor.js
by external projects (c1e9aa9a27 by @motiz88)
- Deprecate the Promise.prototype.done method and log a warning when it's called in development. (35800962c1 by @motiz88)
iOS specific
iOS specific
- Removed lint restricting
DynamicColorIOS
to only two properties (13b0b06522)
Fixed
Android specific
iOS specific
Security
v0.68.4
Changed
Android specific
Fixed
iOS specific
v0.68.3
Changed
Android specific
Fixed
- Use monotonic clock for performance.now() (114d31feee)
Android specific
- Logging a soft error when ReactRootView has an id other than -1 instead of crashing the app in hybrid apps (1ca2c24930 by @Kunal-Airtel2022)
v0.68.2
Changed
Fixed
Android specific
v0.68.1
Changed
Android specific
Fixed
Android specific
v0.68.0
Breaking Changes
- CI moved to Node 16. (f1488db109 by @kelset).
This change enforces Node >= 14 for React Native builds.
- Bump Android Gradle Plugin to 7.0.1. (272cfe5d13 by @dulmandakh)
This version of Android Gradle plugin enforces JDK 11 for Android builds. Do not upgrade to AGP 7.1 as it is not supported by this version of react-native.
- Removed
fallbackResource
from RCTBundleURLProvider
API (0912ee179c) by @philIip
New Architecture
If you are interested in enabling the new architecture, please refer to the dedicated documentation.
Android specific
- Setup a
newArchEnabled
property to Opt-in the New Architecture in the template (8d652fba4c by @cortinico)
iOS specific
Added
Android specific
- Added DoNotStripAny proguard rules (48318b1542 by @ShikaSD)
- Add new API in ScrollView and HorizontalScrollView to process pointerEvents prop. (48f6967ae8 by @ryancat)
- Add
accessibilityLabelledBy
props (36037fa81b by @grgr-dkrk)
- Added missing constructor to WritableNativeArray (c68c47d2ba by @piaskowyk)
- Add new API for custom fling animator to provide predicted travel distance for its fling animation. (fe6277a30d by @ryancat)
- Adding new API
onChildEndedNativeGesture
to the RootView interface to let its implementations notify the JS side that a child gesture is ended. (9b33c31ee0 by @ryancat)
- Make the
reactNativeArchitectures
property more discoverable (0f39a1076d by @cortinico)
- Added
isAccessibilityServiceEnabled
to get if accessibility services are enabled (c8b83d4e0b by @grgr-dkrk)
- Add bundleForVariant option (d2c10da5d5 by @grit96)
- Add ACCEPT_HANDOVER, ACTIVITY_RECOGNITION, ANSWER_PHONE_CALLS, READ_PHONE_NUMBERS & UWB_RANGING to PermissionsAndroid (4b25a0aaa0 by @iBotPeaches)
iOS specific
Changed
Android specific
iOS specific
Fixed
Android specific
iOS specific
- ScrollView: Respect
contentInset
when animating new items with autoscrollToTopThreshold
, make automaticallyAdjustKeyboardInsets
work with autoscrollToTopThreshold
(includes vertical, vertical-inverted, horizontal and horizontal-inverted ScrollViews) (49a1460a37 by @mrousavy)
- Prevent RCTConvert error for allowed null blob types (e1b698c5f2 by @habovh)
- Migrate ScreenshotManager from NativeModule to TurboModule (b13e41d98e by @p-sun)
- Fix usage of cocoapods with --project-directory flag and new arch (9e7d91f2fc by @danilobuerger)
- Post RCTContentDidAppearNotification with new arch (75105e692c by @danilobuerger)
- Remove absolute paths from pods project (42b01a32a1 by @danilobuerger)
- Respect RCTSetDefaultFontHandler chosen font (89efa1a0c1 by @danilobuerger)
- Fixed duplicated UUIDs problem during pod install phase. (f595a4e681)
- Fix
Time.h
patch not being applied when running pod install --project-directory=ios
(60cef850bd by @tido64)
- Fix WebSocket control frames having payloads longer than 125 bytes (86db62b7a8 by @asmeikal)
- Stop RedBox from appearing for LogBox handled errors (9d2df5b8ae by @liamjones)
- Enable hitSlop to be set using a single number. (3addafa525 by @javache)
- Fix
__apply_Xcode_12_5_M1_post_install_workaround
failing when one of the Pods has no IPHONEOS_DEPLOYMENT_TARGET set (9cd4092336 by @Yonom)
- This is a quick speculative fix since we know
CFRunLoopPerformBlock
does not push/pop an autorelease pool. (3fff164dfa by @christophpurrer)
- Fixed RCTImageLoaderTests (1542f83527 by @philIip)
- Fix Rosetta2 CocoaPods warning on Apple Silicon (e918362be3 by @oblador)
- Fix
pod install --project-directory=ios
failing due to wrong path to React-Codegen
(ebb26cf2e4 by @tido64)
Deprecated
Android specific
Removed
iOS specific
- Remove RCTUIManagerObserver from RCTNativeAnimatedTurboModule (e9ed115bab by @p-sun)
v0.67.4
Fixed
Android specific
v0.67.3
Fixed
Android specific
- Text with adjustsFontSizeToFit changes the text layout infinitely (c1db41f060)
iOS specific
v0.67.2
Fixed
Android specific
- Fix potential crash if ReactRootView does not have insets attached. (6239e2f5ce by @enahum)
- Upgrading OkHttp from 4.9.1 to 4.9.2 to fix CVE-2021-0341. (e896d21 by @owjsub)
iOS specific
v0.67.1
Fixed
Android specific
iOS specific
v0.67.0
Added
Android specific
iOS specific
Changed
Android specific
- Hermes initialization will no longer need an explicit configuration. (a40f973f58 by @Ashoat)
- Setting
overflow: scroll
in View component style will clip the children in the View container (93beb83abe by @ryancat)
- Native views backing
Animated.View
(w/ JavaScript-driven animations) will no longer be flattened; this should be a transparent change. (4fdbc44ab5 by @yungsters)
- Use new Locale API on Android 11 (API 30)+ (b7c023a8c1)
- Changed
react.gradle
detectCliPath
function logic for cliPath
case (ce51b62494 by @vitalyiegorov)
- Remove
"high"
and "balanced"
as values for android_hyphenationFrequency
on Text
(a0d30b848a)
- Bump Gradle version to 7.2, Bump Kotlin version to 1.5.31 (9ae3367431 by @svbutko)
- Move mavenCentral repo below local paths (046b02628d by @friederbluemle)
iOS specific
Removed
- Removed unnecessary global variable
GLOBAL
. (a101fc768c by @rubennorte)
- Removed unused files:
StaticContainer.react.js
, ensurePositiveDelayProps.js
, InteractionMixin.js
, queryLayoutByID.js
(64aa1e5ffe by @ecreeth)
Android specific
iOS specific
Fixed
Android specific
iOS specific
Security
v0.66.4
Fixed
iOS specific
- Revert "Fix Deadlock in RCTi18nUtil (iOS)" (70ddf46 by @Saadnajmi)
apply_Xcode_12_5_M1_post_install_workaround
causing pods targetting iOS 12 and above to fail (a4a3e67554 by @Yonom)
v0.66.3
Changed
- Rename deprecated
Keyboard.removeEventListener
to Keyboard.removeListener
. (8880c09076 by @yungsters)
Fixed
v0.66.2
Fixed
- Add a function
getIgnorePatterns
in LogBoxData.js
for tests or other usecases. (a950634424)
- Reintroduce generated codegen files (7382f556d3 by @kelset)
iOS specific
- Hide the logbox window explicitly. New behavior in iOS SDK appears to retain UIWindow while visible. (72ea0e111f by @paddlefish)
v0.66.1
Fixed
- For Android, general fixes to Appearance API and also fixes AppCompatDelegate.setDefaultNightMode(). For iOS, now works correctly when setting window.overrideUserInterfaceStyle (25a2c608f7 by @mrbrentkelly)
Android specific
iOS specific
v0.66.0
Highlights
- Hermes 0.9.0
- This Hermes release is primarily about closing gap between Hermes cut and this React Native release. Among ~400 commits, contains memory and size wins, bugfixes and other progress behind the scenes. See issue for more details.
- Allow taps on views outside the bounds of a parent with
overflow: visible
(e35a963bfb by @hsource)
- Fixes for building on Apple Silicon and Xcode 13 (ac4ddec542 thanks to @mikehardy)
- New bluetooth permissions for Android (2bcc6fac38, eeb8e58 by @iBotPeaches)
Breaking
Android specific
Added
Android specific
iOS specific
Changed
Android specific
iOS specific
- ScrollView scrollIndicatorInsets to not automatically add safe area on iOS13+ (bc1e602e0c by @justinwh)
Removed
Fixed
Android specific
iOS specific
v0.65.2
Fixed
- For Android, general fixes to Appearance API and also fixes AppCompatDelegate.setDefaultNightMode(). For iOS, now works correctly when setting window.overrideUserInterfaceStyle (25a2c608f7 by @mrbrentkelly)
v0.65.1
Changed
Fixed
Android specific
v0.65.0
Highlights
- Hermes 0.8.1. Please see the highlighted changes from its 0.8.0 and 0.8.1 release notes.
react-native-codegen
version 0.0.7
is now needed as a devDependency
in the package.json
.
Breaking Changes
iOS specific
- Replace
flipper_post_install
with react_native_post_install
hook. Will automatically detect if Flipper is enabled. (42dde12aac by @grabbou)
Added
Android specific
iOS specific
Changed
Android specific
iOS specific
Deprecated
EventEmitter#removeSubscription
is now deprecated. (cb6cbd12f8 by @yungsters)
- It is now deprecated to pass a constructor argument to
EventEmitter(...)
. (14f7a2b707 by @yungsters)
- Deprecate
AccessibilityInfo.removeEventListener
. (003d63d6e5 by @yungsters)
- Deprecate
Linking.removeEventListener
. Instead, call remove()
on the subscription returned by Linking.addEventListener
. (6d1aca806c, 035718ba97 by @yungsters)
- Old Native method to create ScrollEvent has been deprecated and will be removed at some point in the (distant) future (62f0dee235 by @JoshuaGross)
Android specific
- Deprecate
NativeModule.onCatalystInstanceDestroy()
for NativeModule.invalidate()
(18c8417290 by @RSNara)
- Mark
hasActiveCatalystInstance()
as Deprecated (1b50722a7e)
Removed
- Stabilize
RootTagContext
(9b98edcd01 by @nadiia)
- Removed
getNode()
from animated component refs. (b914153286 by @yungsters)
- Remove legacy context API usage in AppContainer (17be3a0032 by @nadiia)
- Removed
AccessibilityInfo.fetch
, use isScreenReaderEnabled
instead. (d831134d51 by @yungsters)
- Remove unused VR-only props (95f7c791c5 by @Simek)
- Removed
RCTDeviceEventEmitter.sharedSubscribers
. (3af0c84aa5 by @yungsters)
- Moved
ScrollResponder.Mixin
methods into ScrollView to Remove ScrollResponder.js (099f67cf8a by @kacieb)
NativeEventEmitter
no longer inherits from EventEmitter
, so it no longer implements removeListener
and removeSubscription
. Instead, use the remove()
method on the subscription object returned by addListener
. (d39643b9de by @yungsters)
RCTDeviceEventEmitter
no longer throws for StatusBar
, Keyboard
, and AppState
events. However, you are still recommended to use the more appropriate modules for listening to these events. (c8c975f0d7 by @yungsters)
- Removed second optional argument of
NativeEventEmitter
constructor (f5f47879b8 by @yungsters)
- Removed warning on Android for
setTimeout
with delays greater than 1 minute. (480dabd665 by @yungsters)
- Removed
Touchable.TOUCH_TARGET_DEBUG
property. (ef765d423c by @yungsters)
Android specific
iOS specific
Fixed
Android specific
iOS specific
v0.64.3
Fixed
- For Android, general fixes to Appearance API and also fixes AppCompatDelegate.setDefaultNightMode(). For iOS, now works correctly when setting window.overrideUserInterfaceStyle (25a2c608f7 by @mrbrentkelly)
v0.64.2
Changed
Fixed
Android specific
v0.64.1
Fixed
iOS specific
Security
v0.64.0
Breaking
- Enable
inlineRequires
by default in new projects' metro.config.js
. Gives a performance benefit but slightly different JS execution order (959365a902 by @GantMan)
- Minimum supported Node version changed to 12 (4b92e2e53d by @safaiyeh)
- Remove deprecated
CameraRoll
API (deprecated in 0.61) (824d3a9770 by @seanyusa)
- Remove deprecated
CheckBox
component (deprecated in 0.60) (dff17effe5 by @poteto)
- Removed
DEPRECATED_sendUpdatedChildFrames
prop from ScrollView
component (deprecated in 0.47) (345d0c1abb by @ZHUANGPP)
- On
Image
, onLoad
event objects' source.url
is now renamed to source.uri
. (74ab8f6e5a by @yungsters)
Android specific
iOS specific
Deprecated
Android specific
- Deprecated method
UIManagerModule.getUIImplementation
. This method will not be part of the new architecture of React Native. (fe79abb32c by @mdvacca)
Added
Android specific
iOS specific
Changed
Android specific
iOS specific
Removed
Android specific
Fixed
Android specific
iOS specific
v0.63.4
Changed
Android specific
Fixed
Android specific
iOS specific
v0.63.3
Added
iOS specific
- Ability to set which configuration to enable flipper for when using use_flipper! (dc2df75426 by @nicoburns)
Changed
Fixed
Android specific
iOS specific
Security
v0.63.2
Fixed
Android specific
iOS specific
v0.63.1
Added
Android specific
Fixed
Android specific
iOS specific
v0.63.0
Breaking
- The
target
field of events is now a native component, not a react tag (3b813cade1 by @TheSavior)
- Modal: Remove support for
animated
prop (deprecated in 0.26) (1e9db7bd6d by @TheSavior)
- Alert: Remove deprecated support for passing callback as fourth argument to
Alert.prompt
(deprecated in 0.59) (a26d622d04 by @TheSavior)
- Switch: Remove support for
thumbTintColor
, tintColor
, onTintColor
props (deprecated in 0.57) (26912bd979 by @TheSavior)
- Multiple deprecations and breaking changes to
TextInputState
. Use native component refs instead of react tags (6286270e4c by @TheSavior)
- Bump supported Node engines to >= 10 (f0c7178a3a by @safaiyeh)
Deprecated
Android specific
- We are deprecating the method
UIManagerModule.resolveRootTagFromReactTag
, this will not be supported in the next version of RN (acbf9e18ea by @mdvacca)
- Add warning message for trying to use
ToolbarAndroid
which has been removed from the core since 0.61. (6249d14a61 by @Naturalclar)
iOS specific
Added
Android specific
- Support item background color in Dialog
Picker
(22eb711c84)
- Add OverrideColorScheme interface and setOverrideColorScheme method to AppearanceModule(45d7df6cf7)
- Allow setting custom ripple radius on
TouchableNativeFeedback
(7f2a79f40b by @vonovak)
- Add
resizeMode
prop support on TextInlineView
(6871416328 by @mdvacca)
- Added an API for checking if there are busy timers to
TimingModule
(22764e6cdc by @ejanzer)
- Make packager location customizable in dev mode (3714f3648a)
iOS specific
Changed
Android specific
iOS specific
Removed
Android specific
iOS specific
- Remove core
RCTConvert
CoreLocation Libraries (bcf2a716fb by @maschad)
- Remove copyright notices from iOS application template (9c3fa57337 by @alloy)
- Remove three properties:
textColor
, font
and textAlignment
from RCTBackedTextInputViewProtocol
, unifying the usage into defaultTextAttributes
. (aff6bad27c by @jimmy623)
Fixed
Android specific
iOS specific
v0.62.3
Security
Fixed
iOS specific
v0.62.2
Fixed
iOS specific
v0.62.1
Fixed
- Bump CLI to 4.5.1 to improve DX (eac56b9749 by @alloy)
- Fix a YellowBox regression in v0.62.0 where the Flipper network inspector causes YellowBox to crash the app due to using base64 images. (227aa96bb2 by @rickhanlonii)
Android specific
iOS specific
Changed
v0.62.0
This major release includes Flipper support by default, improved dark mode support, moving Apple TV to react-native-tvos, and more. See the blog post for all of the highlights.
This release comes in the midst of a global pandemic. We’re releasing this version today to respect the work of hundreds of contributors who made this release possible and to prevent the release from falling too far behind master. Please be mindful of the reduced capacity of contributors to help with issues and prepare to delay upgrading if necessary.
If you're upgrading, manual intervention may be required for your app. Please see the upgrade-helper for a detailed breakdown of the changes required and see this issue for known issues.
One known issue with workaround is regarding Android builds and APK size increases.
Breaking
Android specific
Added
Android specific
iOS specific
Changed
Android specific
iOS specific
Deprecated
- Add deprecation warning to
AccessibilityInfo.fetch
(523ab83338 by @TheSavior)
- Make setting
useNativeDriver
required. Add runtime warning if not specified (5876052615 by @TheSavior)
- Refs on an Animated component are now the internal component. The
getNode
call has been deprecated. (66e72bb4e0 by @yungsters)
iOS specific
Android specific
Removed
Android specific
Fixed
Android specific
iOS specific
v0.61.5
This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.61 release. Thanks to everyone who contributed!
Fixes
Android specific
- Fix bundling assets in monorepo (a3b0804867 by @Esemesek)
- Fix multiple
set-cookie
not aggregated correctly in response headers (1df8bd4932 by Vincent Cheung)
v0.61.4
This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.61 release. Thanks to everyone who contributed!
Fixed
iOS specific
- Fix bug in iOS 13 when application would be terminated immediately when in background (d7c9173b07 by @radko93)
v0.61.3
This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.61 release. Thanks to everyone who contributed!
Fixed
iOS specific
Android specific
v0.61.2
This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.61 release. Thanks to everyone who contributed!
Fixed
Android specific
Added
iOS specific
Android specific
v0.61.1
This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.60 release. Thanks to everyone who contributed!
Fixed
iOS specific
Android specific
v0.61.0
This is a major release that includes the new reloading experience Fast Refresh. It also removes the React .xcodeproj
, fixes use_frameworks!
for CocoaPods support, adds a useWindowDimensions
hook, and upgrades to React 16.9.
Added
Android specific
iOS specific
Changed
Android specific
iOS specific
Deprecated
Android specific
- DrawerLayoutAndroid drawerPosition now expects a string, number is deprecated (305b0a2814 by @TheSavior)
Removed
Android specific
iOS Specific
Fixed
Android specific
iOS specific
v0.60.6
This is a small patch release with a commit to fix the build break in MSVC to help the users of react-native-windows. (9833ee7bc1 by @acoates-ms)
v0.60.5
This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.60 release. Thanks to everyone who contributed!
Added
Android specific
- Add showSoftInputOnFocus to TextInput (d88e4701fc)
Changed
Fixed
Android specific
iOS specific
You can participate to the conversation for the next patch release in the dedicated issue.
v0.60.4
This is a patch release that contains two more Hermes related fixes, thanks to the contributors for helping improving the support!
Fixed
Android specific
You can participate to the conversation for the next patch release in the dedicated issue.
v0.60.3
This is a patch release that fixes the binary path to Hermes package, thanks to @zoontek) for creating the PR!
You can participate to the conversation for the next patch release in the dedicated issue.
v0.60.2
This is a patch release that fixes the path to Hermes package.
You can participate to the conversation for the next patch release in the dedicated issue.
v0.60.1
This is a patch release that includes the Hermes JavaScript Engine announced at Chain React Conf 2019.
Check out the documentation to opt-in and give Hermes a try.
You can participate to the conversation for the next patch release in the dedicated issue.
v0.60.0
This feature release of React Native includes many milestone changes for the platform. Please refer to the blog post for selected details. For upgrading users, some of the progress comes with breaking changes; manual intervention may be required for your app. We're also aware that existing CocoaPods integrations using use_frameworks
are not out-of-the-box compatible with this version, but please consider various workarounds while we prepare a long-term solution for a future release. If you're interested in helping evaluate our next release (0.61), subscribe to the dedicated issue here.
Have you ever considered contributing to React Native itself? Be sure to check out Contributing to React Native.
Added
- CLI autolinking support (5954880875, da7d3dfc7d by @zhongwuzw and @hramos)
- New Intro screen (6b393b27e1, 233fddbe01, fe88e9e48c, aa926e349b, a9e8a71e53, ad4a5d9a3e, and 0245fd713e by @cpojer, @eliperkins, @lucasbento, @orta, @adamshurson, @karanpratapsingh and @glauberfc)
- Add enhanced accessibility actions support (7fb02bd908 by @xuelgong)
- Add additional accessibility roles and states (1aeac1c625)
- Add
isReduceMotionEnabled()
plus reduceMotionChanged
to AccessibilityInfo
(0090ab32c2 by @estevaolucas])
- Add support for cancelling fetch requests with
AbortController
(h5e36b0c by @janicduplessis)
Android specific
iOS specific
- Add
announceForAccessibility
and announcementFinished
APIs for making screen reader announcements (cfe003238a by @rigdern)
- Ability to force network requests to use WiFi using the
allowsCellularAccess
property. This can ensure that network requests are sent over WiFi if communicating with a local hardware device and is accomplished by setting a flag. Default behavior of allowing network connections over cellular networks when available is unchanged. (01c70f2fb9 and 916186a7e6 by @bondparkerbondand @zhongwuzw)
$RN_CACHE_DIR
can now be used to manually specify the iOS build cache directory (845eee403e by @hramos)
Changed
Android specific
iOS specific
- BREAKING: Split React.podspec into separate podspecs for each Xcode project; your libraries will need to update for this change as well to avoid CocoaPods build errors (2321b3fd7f by @fson)
- Improve handling of native module exceptions; they are now propagated to crash reporting tools with the context and callstack (629708beda by @pvinis)
- Switch Slider
onSlidingComplete
event to a non-bubbling event on iOS to match Android (7927437a6d by @rickhanlonii)
Deprecated
- StatusBar is no longer deprecated; thank you for the feedback (a203ebe206 by @cpojer)
Removed
Fixed
Android specific
iOS specific
v0.59.10
This is likely the last patch release for version 59 of React Native for the foreseeable future: it contains an important Android side update for the JavaScript Core, to prevent a great number of crashes mostly related to Samsung devices - thanks to @Kudo for his work on fixing this via 557989a86f!
Thanks everyone who participated in the discussion.
v0.59.9
This is a patch fix release addressing a couple ScrollView regressions, and "future-proof" RN 59 from crashes caused by upgrading Gradle (now can support up to 5.4.1 & 3.4.0 for the plugin) and Xcode 11 Beta 1. You can upgrade to this version without upgrading your tooling.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits. You can participate to the conversation for the next patch release in the dedicated issue.
Changed
If isInteraction
is not specified in the config, it would always default to true
which would block interactions like VirtualizedList updates. This is generally not what you want with useNativeDriver since the animation won't be interrupted by JS. If something does end up interfering with an animation and causes frame drops, isInteraction
can be set manually. (8f186b84ae by @sahrens)
Update detox to match master (c6a5c09e2b by @kelset)
Android specific
Fixed
Android specific
iOS specific
v0.59.8
This is a patch fix release addressing regressions, crashes, and a few developer-experience pain points (in particular, check the KeyboardAvoidingView
change). Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
Fixed
iOS specific
Android specific
Added
Changed
- Make KeyboardAvoidingView with
behavior="height"
resize on keyboard close (7140a7 by @WaldoJeffers)
- Update network inspector to have smarter scroll stickiness (57dc37 by @AlanFoster)
v0.59.7
This patch release was unpublished.
v0.59.6
This patch release was unpublished.
v0.59.5
This is a patch fix release addressing regressions, crashes, and a few developer-experience pain points. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
Fixed
Android specific
- Enforced thread safety on UIImplementation methods that mutate the shadowNodeRegistry (f5a318 by @SudoPlz)
- Fixed a
NoSuchKeyException
when parsing JS stack frames without line numbers (d7bd6c by @Salakar)
- Fixed
mostRecentEventCount
is not updated (b8aac0 by @jainkuniya)
iOS specific
- Pass back correct dimensions for application window in Dimensions module (72b4cc by @rdonnelly)
- Fixed warning: "RCTImagePickerManager requires main queue setup" (effb02 by @scarlac)
v0.59.4
This is a patch fix release addressing regressions, crashes, and a few developer-experience pain points. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
Changed
iOS specific
Fixed
Android specific
iOS specific
v0.59.3
This is a patch fix release addressing regressions, crashes, and a few developer-experience pain points. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
Changed
Android specific
Fixed
Android specific
iOS specific
- Show Perf Monitor after reloading JS (15619c22e5 by @usrbowe)
- Fix TextInput's
maxLength
when inserting characters at begin (17415938c7 by @zhongwuzw)
- Fix runtime crash in Xcode 10.2 when using
RCT_EXTERN_MODULE
for swift classes (ff66600224)
v0.59.2
This is a patch fix release addressing regressions, crashes, and a few developer-experience pain points. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
Fixed
Android specific
iOS specific
Changed
Android specific
- Add TLS 1.3 support to all Android versions using Conscrypt; to use this, you must add
implementation('org.conscrypt:conscrypt-android:2.0.0')
to build.gradle
(75af15ede4 by @dulmandakh)
- Turn off Metro JS Deltas by default for Android (845189c17d by @PeteTheHeat)
v0.59.1
This is a small patch release that addresses two critical issues from the 0.59.0 release.
Fixed
Android specific
iOS specific
v0.59.0
Welcome to release 0.59 of React Native! For highlights of this release, please view the dedicated blog post. Thanks to those who gave feedback during the release candidate phase. If you're interested in helping evaluate our next release (0.60), subscribe to the dedicated issue here.
Added
Android specific
iOS specific
- TextInput now has prop
rejectResponderTermination
to enable TextInputs inside Swipeables to function properly (11df0eae5f by @cmcewen)
- ActionSheetIOS has a new prop
destructiveButtonIndexes
for an Array<number>
of destructive indexes (67e7f16944 by @sdg9)
- Add
isEventFromThisApp
to KeyboardEvent
notifications to disambiguate keyboard events when apps are running side-by-side (05f35c296d by @nossbigg)
- Allow changing the project path in
react-native-xcode.sh
using env var PROJECT_ROOT
(9ccde378b6 by @janicduplessis)
Changed
Android specific
- Clarify error message to direct people to
react-native start
rather than react-native bundle
(46aaa02274 by @sunnylqm)
- BREAKING - removed
OkHttpClientProvider.replaceOkHttpClient
method; please use OkHttpClientProvider.setOkHttpClientFactory
from 0.54+ (7cbdd7b6ac by @cdlewis)
- BREAKING - remove
ViewHelper
, use ViewCompat
instead; this may also require changing the android:theme
to be from Theme.AppCompat
; read more about it in the blog post (c493cfe708 by @dulmandakh)
- Add nullable annotations to
ReadableMap
, WritableMap
, ReadableArray
, Writable
, ReactPackage
, and native module interfaces; this may impact Kotlin usage (b640b6faf7, c93cbdf1b2, 7b33d6b0b9, and 84f40da990 by @dulmandakh)
Soloader
is now at v0.6.0
(07d1075f37 by @dulmandakh)
- Android Support Library is now at
v28.0.0
(5bbed43854 by @dulmandakh)
targetSdkVersion
is now at v28
(57f444bd8a by @dulmandakh)
- Android Plugin is now at
v3.3.1
(da5b5d2fa1 by @dulmandakh)
- Enable Java 8 support (38eb2a70af by @dulmandakh)
- Suppress misleading missing permission warnings (d53dbb0dfb by @dulmandakh)
- Add back
buildToolsVersion
to build.gradle (cf52ab561d by @dulmandakh)
- TimePickerAndroid has better Flow types definitions (2ed1bb2e01 by @yushimatenjin)
ReactActivity
, ReactSlider
, ReactTextView
, and ReactPicker
extends AppCompatActivity
; updates to TimePickerDialogModule
and DatePickerDialogModule
as well (dda2b82a0a, 3b9604feda, ba0c3ffd5b, 833429dd63, adc1410572, c6c5a173bc, and be361d0fc1 by @dulmandakh)
- Fix lint error/warnings that cause older Android crashes (d2fc19f4aa by @dulmandakh)
- The error message on getting Android drawable folder suffix now gives more information (a159a33c02 by @BrunoVillanova)
SYSTEM_ALERT_WINDOW
permissions available only in debug builds (84a2fb0a4a by @dulmandakh)
- Add talkback navigation support for links and header (b9d3743cda by @yangweigbh)
- FlatList has
removeClippedSubviews
default to true
on Android (1a499f43b2 by @fred2028)
iOS specific
Deprecated
The following deprecations are part of our Lean Core initiative; read more about it in the blog post.
iOS specific
- Replace deprecated
stringByReplacingPercentEscapesUsingEncoding:
with stringByAddingPercentEncodingWithAllowedCharacters:
(61ca119650 by @pvinis)
Removed
iOS specific
Fixed
Android specific
iOS specific
v0.58.6
This release is fairly small, as we approach stable status for 0.59.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate in the decision process for the next patch release here.
Fixed
Android specific
iOS specific
v0.58.5
This release resolves a few bugs and includes a few improvements, listed below.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate in the decision process for the next patch release here.
Removed
Fixed
iOS specific
Security
Android specific
v0.58.4
This release resolves a few bugs and includes a few improvements, listed below.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate in the decision process for the next patch release here.
Added
Android specific
Changed
Android specific
Removed
Fixed
Android specific
iOS specific
v0.58.3
This release resolves a regression in StatusBar using these fixes.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate in the decision process for the next patch release here.
v0.58.2
This release fixes an issue caused by a wrongly reverted merge commit, that caused a short timeframe of commits to not actually be in the original 0.58.0. Those commits have been added to the 0.58 changelog below, as many are intertwined with the original work.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate in the decision process for the next patch release here.
v0.58.1
There were some regressions with developer tools that prevented react-native run-ios
from working properly in 0.58.0; this patch fix addresses that.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate to the decision process for the next patch release here.
v0.58.0
Welcome to first stable release of React Native of 2019!
There are a number of significant changes in this version, and we'd like to especially draw your attention to them:
- Modernizing and strengthening flow types for core components
- Breaking changes to
ScrollView
, CameraRollView
, and SwipeableRow
that make it no longer bound to the component instance in certain methods
- Support for mutual TLS in WebKit
- Asset serving from directories besides
/assets
- Numerous crash fixes and resolutions for unexpected behavior
Aside from those:
if you are an iOS developer, you'll need to manually link JavaScriptCore.framework
when upgrading; this can be done via Xcode, and following the steps shown here.
Android developers, please note that Android's target SDK 27 is supported. Work is still underway to land target SDK 28 support, and it will come soon.
Thanks to those who gave feedback during the release candidate phase. If you're interested in helping evaluate our next release (0.59), subscribe to the dedicated issue here.
Added
- Add support for
publicPath
to enable serving static assets from different locations (0b314960aa by @gdborton)
- Add TouchableBounce now has a simple
bounce()
function that can be used to trigger a bounce without callbacks (7fe3f90156)
Android specific
- Bundler server host can now be set using Android System Properties, making for easier debugging across multiple apps or app installs
adb shell setprop metro.host
(e02a154787 by @stepanhruda)
- Native Modules can now reject a promise with an additional
WritableMap
arg for extra properties (userInfo
). See the interface defined in Promise.java
for available methods. This is accessible in JavaScript as Error.userInfo
. This is to match iOS's existing Error.userInfo
behavior. See PR for examples. (#20940 by @Salakar)
- Native Modules now expose a
nativeStackAndroid
property to promises rejected with an Exception/Throwable - making native error stacks available inside Javascript: Error.nativeStackAndroid
. This is to match iOS's existing Error.nativeStackIOS
support. See PR for examples. (#20940 by @Salakar)
iOS specific
Changed
- Major improvements to Flow types for Core Components (499c195eba, fbc5a4f5e6, f9050e0908, 6476151717, c03fc4087f, 69213eea95, 136dfc8312, 3c0211b61a, c127000a7d, 636e146c4a, c3dea894bd, 35a65cd704, 79274979b7, 45c51835d6, a97d104b44, fb4825a2c6, 84c5416617, 3649a503cf by @mottox2, @saitoxu, @RSNara, @watanabeyu, @Tnarita0000, @exced, @nd-02110114, @flowkraD)
- Many public components were converted to ES6 classes (ScrollView by @thymikee, CameraRollView, SwipeableRow and ProgressBarAndroid by @exceed, ProgressViewIOS by @empyrical, SegmentedControlIOS, ToolbarAndroid by @nd-02110114
- Flow dependency is now at
v0.85.0
(adc8a33fcf by @samwgoldman)
- metro dependency is now at
v0.49.1
(f867db366a, 88882951e1, 31bb551e75, de60e8643a, and de60e8643a by @alexkirsz and @rafeca)
- jest dependency is now at
v24.0.0-alpha.6
(1b4fd64325, 66aba09251, and 06c13b3e06 by @rafeca and @rubennorte)
- fbjs-scripts dependency is now at
v1.0.0
(#21880) (cdbf719307 by @jmheik)
- folly dependency is now at
v2018.10.22.00
(a316dc6ec3, 287934dba9, and a70625abd7 by @Kudo and @radko93)
- React is set to
16.6.3
now via sync for revisions 4773fdf...6bf5e85 (0cb59b5c23 and 073ad6a036 by @yungsters)
- Clearer error messages when hot reloading (c787866d64 by @alexkirsz)
- Allow CxxModules to implement functions which take two callbacks (8826d8b233 by @acoates-ms)
Breaking Changes 💥
- Public methods of components converted to ES6 classes are no longer bound to their component instance. For
ScrollView
, the affected methods are setNativeProps
, getScrollResponder
, getScrollableNode
, getInnerViewNode
, scrollTo
, scrollToEnd
, scrollWithoutAnimationTo
, and flashScrollIndicators
. For CameraRollView
, the affected methods are: rendererChanged
. For SwipeableRow
, the affected methods are: close
. Therefore, it is no longer safe to pass these method by reference as callbacks to functions. Auto-binding methods to component instances was a behaviour of createReactClass
that we decided to not preserve when switching over to ES6 classes. (you can refer to this example)
Native Modules in Android now require @ReactModule
annotations to access .getNativeModule
method on the ReactContext
. This is how your updated Native Module should look like:
+ import com.facebook.react.module.annotations.ReactModule;
+ @ReactModule(name="CustomBridge")
public class CustomModule extends ReactContextBaseJavaModule {
@Override
public String getName() {
return "CustomBridge";
}
}
Android specific
iOS specific
Removed
Fixed
Android specific
iOS specific
- Fix case where content of inline views didn't get relaid out (798517a267 by @rigdern)
- Fix issue with ImagePickerIOS's inconsistent image when using the front-facing camera (4aeea4d2dc)
- Fix race condition and crash around shutdown of the JSC for iOS 11 and earlier (bf2500e38e by @mhorowitz)
- Fix crash in NetInfo's _firstTimeReachability (eebc8e230a by @mmmulani)
- Fix case where inline view is visible even though it should have been truncated (70826dbafc by @rigdern)
- Fix crash with ScrollView related to content offsets (585f7b916d by @shergin)
- Fix an issue where CameraRoll wasn't showing the front-facing camera consistently during capture and preview (4aeea4d2dc)
- Fix case where inline view is visible even though it should have been truncated (70826dbafc by @rigdern)
Known issues
It is possible that you'll face an AAPT error regarding missing resources, here is an example of this error, in this case, you should try to update the build tools versions to buildToolsVersion = "28.0.2"
in your android/build.gradle file. If you maintain a react-native library which uses native code you should avoid using hardcoded versions of the build tools and use the packaged version numbers, here is an example you can follow
v0.57.8
NOTE WELL: when you upgrade to this version you NEED to upgrade react
and react-test-renderer
to version "16.6.3"
.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate to the decision process for the next release here.
Added
- Fix: Add displayName to ActivityIndicator (#22417) (53da585832)
Changed
iOS specific
Removed
- Remove trailing slash from origin header if no port is specified (#22290) (cbe7d41f3f)
Fixed
iOS specific
Security
v0.57.7
NOTE WELL: when you upgrade to this version you NEED to upgrade react
and react-test-renderer
to version "16.6.1"
.
This patch release fixes version 0.57.6 about losing focus in TextInput
because of ada7089066.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
v0.57.6
INFO NOTE: It's highly recommended that you skip this version and upgrade to 0.57.7.
NOTE WELL: when you upgrade to this version you NEED to upgrade react
and react-test-renderer
to version "16.6.1"
.
This patch release fixes a number of crashes, resolves build issues (both for iOS and Android). Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
Added
iOS specific
Removed
- Remove useless additional blur call (#22156) (ada7089066)
Fixed
Android specific
iOS specific
v0.57.5
NOTE WELL: when you upgrade to this version you NEED to upgrade react
and react-test-renderer
to version "16.6.1"
.
This patch release fixes a number of crashes, resolves build issues (both for iOS and Android), and brings React to v16.6.1. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
Changed
iOS specific
Fixed
- Fix crash in VirtualizedList during pagination (5803772017)
- Fix polyfilling of regeneratorRuntime to avoid setting it to undefined in some situations (2a7e02edf6 by @rafeca)
- Fix View, Text, and ActivityIndicator's
displayName
(7a914fcef4 and 53da585832 by @rajivshah3 and others)
- Fix crash that happens when a component throws an exception that contains a null message (6debfdf6d6 by @mdvacca)
Android specific
- Fix incorrect merged asset path with flavor for Android Gradle Plugin 3.2 (e90319e9fa by @yatatsu)
- Fix crash in ReadableNativeArray.getType when size of ReadableNativeArray's length > 512 (09c78fe968 by @dryganets)
iOS specific
v0.57.4
NOTE WELL: when you upgrade to this version you NEED to upgrade react
and react-test-renderer
to version "16.6.0-alpha.8af6728"
(next version, 0.57.5, will update to 16.6.0
, and it will come soon). Also, please check the Known issues section below, especially if you are using Xcode 10.
Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
Added: new features
Android specific additions
- Android textTransform style support (22cf5dc566 by Stephen Cook)
Changes: existing functionality that is now different
Android specific changes
iOS specific changes
Fixed: bugs that have been resolved
Android specific fixes
iOS specific fixes
Known issues
There are a few issues that don't have a finalized solution (as it happens for 0.x projects). In particular:
when using Xcode 10 and react-native init
, your build may fail due to third-party build steps (#20774). There is a commit we are planning to cherry pick in a future release that should help - in the meantime, you should be able to run these commands from the project folder to fix the issue (you should need to do it only once per project):
cd node_modules/react-native
scripts/ios-install-third-party.sh
cd third-party/glog-0.3.5/
../../scripts/ios-configure-glog.sh
React 16.6.0
works for the most part, aside from the Context API (check this issue) - and if you are eager to test the new React Hooks you will have to be patient, as they are not production ready and 16.7.alpha
is not yet supported by React Native.
v0.57.3
NOTE WELL: when you upgrade to this version you NEED to upgrade react
and react-test-renderer
to version "16.6.0-alpha.8af6728"
. Also, please check the Known issues section below, especially if you are using Xcode 10.
Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
Added: new features
Android specific additions
Changes: existing functionality that is now different
Android specific changes
iOS specific changes
Fixed: bugs that have been resolved
Android specific fixes
iOS specific fixes
Known issues
There are a few issues that don't have a finalized solution. In particular, when using Xcode 10 and react-native init
, your build may fail due to third-party build steps (#20774). There is an open pull request which we are testing and hope to land soon (#21458). In the meantime, you can find a workaround here: https://github.com/facebook/react-native/issues/20774.
v0.57.2
Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
Added: new features
Android specific additions
Changes: existing functionality that is now different
Android specific changes
Fixed: bugs that have been resolved
Android specific fixes
Removed: features that have been removed; these are breaking
v0.57.1
We are trying, for 0.57, to approach it as a version with a longer "support", while waiting for some features to land that will allow for 0.58 to be cut.
Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
Added: new features
iOS specific additions
- Expose scrollEnabled as iOS prop for TextInput (b9c28c236b by Chun Chen)
Changes: existing functionality that is now different
iOS specific changes
- Making RCTIsIPhoneX() return true for the R and Max models (5e7c3ca005 by @shergin)
- Way to register RCT_MODULE in Plugin2.0 instead of +load (5c160e5ded by Jeff Thomas)
- Update RCTLinkingManager.h to explicitly state the 'nullability' of parameters (2271d1f912 by Warren Knox)
Fixed: bugs that have been resolved
iOS specific fixes
Removed: features that have been removed; these are breaking
iOS specific removals
v0.57.0
Welcome to the 0.57 release of React Native! This release addresses a number of issues and has some exciting improvements. We again skipped a monthly release, focused on quality by extending the release candidate phase, and let some upstream packages reach stable for inclusion.
This release includes 599 commits by 73 different contributors! In response to feedback, we've prepared a changelog that contains only user-impacting changes. Please share your input and let us know how we can make this even more useful, and as always let us know if you have any feedback on this process.
Highlights
New features
- Accessibility APIs now support accessibility hints, inverted colors, and easier usage of defining the element's role and states; read more at @ziqichen6's excellent blog post
- On iOS,
WKWebView
can now be used within the WebView
component; read more at @rsnara's awesome blog post
- Better support for out-of-tree platforms. For details, please refer to the discussion that the community used to get this up and running (there will be a new page in the docs dedicated to it too) - huge props to @empyrical for working on this!
- Android tooling has been updated to match newer configuration requirements (SDK 27, gradle 4.4, and support library 27); building with Android plugin 3.2 doesn't work due to the gradle scripts, so please stay on Android Studio 3.1 for now
- Support Babel 7 stable landed! Be sure to read here about using TypeScript and check out the Babel 7 migration guide for help migrating.
- Metro has been upgraded (with Babel 7 and better transformer support), and in the next major release we plan on having two new features (ram bundles and inline requires) optional for you all to use - you can read how it will happen here; moreover, if you have a custom packager config, we recommend you read also the "updating to this version" section.
- Flow, React, and related packages have also been updated; this includes working support for the React Profiler.
The Slimmening is happening
As mentioned a few times in the past, the core team is reviewing the repository to trim it to the base React Native features in order to make the whole ecosystem more maintainable (by using a divide-et-impera approach, the community will move faster and enable pull requests to be reviewed and merged quicker). This change requires extracting some components into their own separate repos and removing old, unused code (details here).
0.57 is not directly affected by any changes, but we want you to know that:
WebView
will be moved to its own repo at react-native-community/react-native-webview. There is already a base implementation there. Help us out by giving that a try, and expect that WebView
will be deprecated soon
NavigatorIOS
will be fully removed from the main codebase starting 0.58.0 (via this commit); it is now deprecated
Updating to this version
- Upgrade the version of React Native in the
package.json
from 0.56.0
to 0.57.0
, and the React version to 16.5
Change the babel-preset dependency from "babel-preset-react-native": "^5",
to "metro-react-native-babel-preset": "^0.45.0",
, then change the .babelrc
configuration to:
{
"presets": ["module:metro-react-native-babel-preset"]
}
Ensure that you have all the babel dependencies to version ^7.0.0
(you may also need to add "babel-core": "7.0.0-bridge.0"
as a yarn resolution to ensure retro-compatibility). The Babel team has released a tool, babel-upgrade, that should help you in this migration.
- Upgrading android gradle version to 4.4
- In your project's
android/gradle/wrapper/gradle-wrapper.properties
file, change the distributionUrl
to https\://services.gradle.org/distributions/gradle-4.4-all.zip
- In
android/build.gradle
file add google()
right above jcenter()
in both buildscript
and allprojects
repositories. Then change Android build tools to version 3.1.4 classpath 'com.android.tools.build:gradle:3.1.4'
- In
android/app/build.gradle
file update all your compile
statements to be implementation
, e.g. implementation 'com.facebook.fresco:animated-gif:1.10.0'
- Do note that when running your app from within Android Studio, you may encounter
Missing Byte Code
errors. This is due to a known issue with version 3.1.x of the android tools plugin. You'll need to disable Instant Run to get past this error.
If you have a custom packager configuration via rn-cli.config.js
, you probably need to update it to work with the updated Metro configuration structure (for full detail refer to Metro's documentation); here are some commonly encountered changes to rn-cli.config.js
:
-const blacklist = require('metro/src/blacklist')
+const blacklist = require('metro-config/src/defaults/blacklist')
// ...
module.exports = {
+ watchFolders: alternateRoots,
+ resolver: {
+ blacklistRE: blacklist
+ },
+ transformer: {
+ babelTransformerPath: require.resolve('./scripts/transformer.js'),
+ },
- getProjectRoots() {
- return [
- path.resolve(__dirname),
- ].concat(alternateRoots)
- },
- getBlacklistRE() {
- return blacklist;
- },
- transformModulePath: require.resolve('./scripts/transformer.js'),
}
Run yarn
to ensure that all the new dependencies have been installed
Added: new features
- Add .nvmrc and ensure node version required is compatible with ESLint 5 (30b9d81087 by @slorber)
- Major improvements to accessibility features (48b3d1322b, b5b704dc19, c36e8b3307, 40f6998b67, c1d0ccde0f, 5eaa2d29c0, 10b603fdd3, d9eeae91a0, 3cfa7ae698, 5acb7211bb, 5741f77156, d0b86ecb4f, e739143809, c27b495a89, 5aa040dfb7, 03036f79f7, 3bedc78a35, ca01290d8e, 121e2e5ca6, 1bc52267f5, 48b3d1322b, ef3d8b23c3, ef3d8b23c3, 50e400128e, and f39d0923c7 by @ziqichen6)
- Add
YogaNodeProperties
implementation based on ByteBuffer
(0c97e75dfe and 23657ccf5b by @davidaurelio)
- Add
FlatList
and SectionList
to Animated exports (daa7c78055 by @yunyu)
- Adding new styling props to
FlatList
/VirtualizedList
for ListHeaderComponent
and ListFooterComponent
(a2675ced4e)
- Added more info to Module Registry systraces (c7fdd2701f by @axe-fb)
- Added support for out-of-tree platform plugins via a new
haste
field in package.json
; read more in the docs entry (03476a225e by @empyrical)
- Added
snapToOffsets
to ScrollView
and made a number of fixes to snapToInterval
as well (fd744dd56c by @olegbl)
Android specific additions
iOS specific additions
WebView
can now use WKWebView
internally if you pass useWebKit={true}
(7062e5bdb5, 1442c265da, 3703927e7e, 7a6dd9807c, e5f95aba9b, 1741fe9571, 90e85a4adc, 0022354525, 03b57d9db6, 1584108805, a997c0ac16, 4ca949b46e, 721763020a, 1af17f1648, 215fa14efc, bacfd92976, 95801f1eda, b18fddadfe, 28b058c341, and 78fcf7c559 by @rsnara)
- Add
accessibilityHint
for iOS (253b29dbd8 by @draperunner)
Changes: existing functionality that is now different
- [BREAKING] In the CLI,
unbundle
is now ram-bundle
(ebf5aeab28 by @jeanlauliac)
- Bump minimum Node version to 8.3 (#20236) (e64e13fce3 by @hramos)
- Updated React (70913a4623, b7bb25fe4c, and 672528ffde by @acdlite, @hramos, and @yungsters)
- Upgrade Flow to v0.76.0 (eac34e3021 by @gabelevi)
- Upgrade jest to 23.4.1 (51cf9eb3e8 by @rafeca)
- Upgrade babel-eslint to v9.0.0-beta.2 with better support for Flow (abf1188de2 by @rubennorte)
- Upgrade ESLint to 5.1.0 (0f2f0cad41 by @rubennorte)
- Upgrade Babel to v7.0.0 (b9d1c832b0, 724c7498b6 by Peter van der Zee, and bf8e1b4ffa by @rubennorte and @rafeca)
- Metro is now at v0.45.0 (169d6839bb, bda84a32d0, 877212e18c, 169812f9ce, cfeb60c19b by @CompuIves and @rafeca)
- Hide pre-bundled notification when not on dev mode (edf71005b5 by @yancouto)
- Refined
StyleSheet.compose
Flow Type (50a481d23a by @yungsters)
- Catch JS bundle load failure and prevent calls to JS after that (201ba8c69d by @fkgozali)
- Use new Metro configuration in react-native cli (a32620dc3b and aaf797ad67 by @CompuIves)
- Whitelist
react-native-dom
in haste/cli config defaults (c4bcca6685 by @vincentriemer)
- In the CLI, don't override
metro.config.js
settings (c5297c75cb by @rozele)
Breaking Changes
- Public methods of Image (
blur
, focus
, measure
, measureInWindow
, measureLayout
, setNativeProps
) are no longer bound to the image component instance. Therefore, it is unsafe to pass these methods by reference (i.e: as callbacks) to functions. So, things like setTimeout(this._imgRef.focus, 1000)
will no longer work. Please instead do: setTimout(() => this._imgRef.focus(), 1000)
.
Android specific changes
Fixed: bugs that have been resolved
Android specific fixes
- Fix issue with AsyncStorage not behaving properly on Android 7+ (1b09bd7fba)
- Fixed extreme
<TextInput>
slowness (5017b86b52 by @gnprice)
- Fixed
<TextInput>
placeholder not being completely visible (84022321c4 and 86f24ccf71 by @jainkuniya)
- Fix Horizontal
<ScrollView>
's scroll position during layout changes with RTL content (de573277bf)
- Fix Horizontal
<ScrollView>
overflow issue (d5465a9a0a)
- Fixing crash on SDK 15 on ReactTextInputLocalData (1bb2bead8b)
- Fix Drawing Rect for ReactScrollView (6a16bec882 by @yungsters)
- Fixed NoSuchKeyException Thrown From ReadableNativeMap bysafely unwrapping ReadableMap by defaulting to 0 if key not present (1a6666a116 by @Bhavik-P)
- Fixed runAndroid to enable the use of a package on port <> 8081 for Windows (3cd0737fe2 by @ihenshaw)
- Don't crash on upload retry when trying to fetch on a varying quality network (79fe925f1d by @dryganets)
iOS specific fixes
Removed: features that have been removed; these are breaking
- [BREAKING] Removed
ScrollView.propTypes
; use flow or typescript for verifying correct prop usage instead (5b6ff01764 by @sahrens)
Android specific removals
ReactInstancePackage
is now deprecated; use @link ReactPackage
or @link LazyReactPackage
(b938cd524a by @axe-fb)
v0.56.0
Welcome to the June 2018 release of React Native!
Over 60 contributors made 821 commits since March - and we are extremely grateful to every single one of you.
As you'll see in a second, this new version has some important breaking changes that required a lot of extra efforts to bring to a stable 0.56. This was the main reason behind skipping April and May from the monthly release cycle, but looking forward we are planning on going back to do a rollout every month.
Highlights
React Native now uses Babel 7
When upgrading to 0.56, make sure to bump your babel-preset-react-native
package.json
dependency to 5.0.2
or newer (but still as fixed value).
React Native library authors will need to update their libraries to make use of the updated Babel preset as Babel 7 is not backwards compatible.
If you have issues upgrading to Babel 7, please double check the related documentation, in particular the sections related to Package Renames and Scoped Packages.
The babel-bridge
library may be used if you need to use libraries that have not yet upgraded to Babel 7. You may also enforce the Babel 7 dependency via tools like yarn resolutions. Overall, you need to ensure all the @babel/*
deps are fixed at version 7.0.0-beta.47
.
Node 8 is now the minimum required version
Trailing commas are now allowed.
iOS 9 is now the minimum required version
Any device that can run iOS 8, can upgrade to iOS 9. Developers who support iOS 8 in their apps may continue doing so as this is a Xcode-level setting (IPHONEOS_DEPLOYMENT_TARGET
).
Xcode 9 is now the minimum required version
We recommend using Xcode 9.4 as that is what we use to run our tests.
Android projects are now compiled using the Android 26 SDK
The target API level is left unchanged in this release.
Starting August 2018, new apps submitted to the Play Store will need to target API 26 as a minimum. You can now opt your project in to use API 26 (or newer) as the target. Please let us know about any issues, as we'd like to finalize support for Android API 26 by the time 0.57.0
is released.
WebView
will only load http(s) URLs by default
Geolocation is disabled by default.
Consistently Throw for <Text><View /></Text>
Removes a pitfall that people may run into when releasing an app for Android if the bulk of the testing has been performed on iOS only. Nesting a <View>
within a <Text>
component (e.g. <Text><View /></Text>
) is unsupported on Android, but using this pattern on iOS has not thrown errors in the past. With this release, nesting a <View>
inside a <Text>
will now throw an error on iOS in order to reduce the parity gap between the platforms.
Flow improvements, migrating away from PropTypes
Added Flow types for several components.
We're migrating away from PropTypes and runtime checks and instead relying on Flow. You'll notice many improvements related to Flow in this release.
- Fix project settings warnings on newer Xcode versions, remove unnecessary console logging.
- Modernized
YellowBox
.
Sort warnings by recency, group warnings by format string, present stack traces, show status of loading source maps, support inspecting each occurrence of a warning, and bug fixes.
- Prettier files!
- Lots of bug fixes.
State of React Native
Heads-up: the Facebook internal team is currently working on a rewrite of some core architecture pieces. This is a work in progress and we do not expect it to be ready for use in open source quite yet, but we felt the need to let you know what those commits mentioning Fabric are about.
Added: new features
- Update
babelHelpers
with Babel 7 support (fbd1beaf66)
FlatList
is now Strict Mode compliant (a90d0e3614)
- Enable
?.
optional chaining operator plugins (aa6f394c42)
- Support
flexWrap: 'wrap-reverse'
(d69e55060f)
- Add prop type
accessibilityTraits
to Text
(654435d1ed)
- Add devDependencies support for templates (c4ab03a18e)
- Add support for springDamping in
SpringInterpolator
(1dde989919)
Android specific additions
- Add support for build.gradle with CRLF for use with
react-native link
(843cfc3b20)
- add decimal pad to android (75e49a0637)
- Add a way to dismiss PopupMenu elements (353c070be9)
- Implement
Image.defaultSource
(b0fa3228a7)
- Support Image resizeMode=repeat (0459e4ffaa)
- Yoga: Add back deprecated
getParent
methods for non-breaking API change (c3c5c3cbce)
iOS specific additions
- Run tests using Xcode 9.4 and iOS 11.4 (c55bcd6ea7)
- Add support for Homebrew-installed Node (0964135a17)
- Add textTransform style support (8621d4b797)
- Add docs for Swift usage to
RCTBridgeModule.h
(ca898f4367)
Changes: existing functionality that is now different
- Upgrade React Native to Babel 7 (f8d6b97140)
- New projects created using
react-native init
will use Babel 7 (e315ec9891)
- Restrict
WebView
to only http(s) URLs: (634e7e11e3, 23f8f7aecb)
- Node 8 is now the minimum required version (c1e6f27823)
- Upgrade React to v16.4.1, sync React Renderer to revision ae14317 (c749d951ad)
- Update new project template's Flow config to fix
Cannot resolve module X
isse due to removal of @providesModule
(843a433e87)
- Upgrade Flow to v0.75 (3bed272a62, bc2f12c68c, 6264b6932a)
- Upgrade Flow definitions (f8b4850425)
- Upgrade Prettier to v1.13.6 (29fb2a8e90, bc2f12c68c)
- Upgrade Jest to v23.2.0 (536c937269, bc2f12c68c)
- Upgrade Metro to v0.38 (d081f83a04)
- Modernized
YellowBox
(d0219a0301)
- Disallow requiring from invariant/warning (521fb6d041)
- Remove native prop type validation (8dc3ba0444)
- Add
$FlowFixMe
to invalid prop accesses where Flow wasn't complaining before (f19ee28e7d)
- Create Flow props for
Image
(8bac869f5d)
- Flow type for
SegmentedControlIOS
(113f009698)
- Flow type for
ProgressViewIOS
(c87701ba05)
- Flow type for
PickerIOS
(1c66cdc7e8)
- Flow type for
Switch
(06052a2330)
- Flow type for
Slider
(cbe045a95f)
- Flow type for
RefreshControl
(891dfc3da4)
- Flow type for
ListView
(4b1ecb6204)
- Flow type for
TextInput
(c8bcda8150)
- Flow type for
TouchableBounce
(8454a36b0b)
- Flow type for
TouchableOpacity
(44743c07ad)
- Flow type for
TouchableHighlight
(f0c18dc820)
- Flow type for
TouchableWithoutFeedback
(0b79d1faa2)
- Flow type for
ScrollView
(b127662279)
- Flow type for
DatePickerIOS
(97e572ea6d)
- Flow type for
KeyboardAvoidingView
(188b118b60)
- Flow type for
ActivityIndicator
(0b71d1ddb0)
- Remove
$FlowFixMe
in TouchableBounce
(ffda017850)
- Remove
$FlowFixMe
in ScrollView
(af6e2eb02d)
- Remove
$FlowFixMe
in ListView
(af6e2eb02d)
- Remove
$FlowFixMe
in Text
(6042592cf4)
- Remove
$FlowFixMe
in RTLExample
(206ef54aa4)
- Remove
$FlowFixMe
in AppContainer
(a956551af7)
- Remove
$FlowFixMe
in Slider
(1615f9d161)
StyleSheet
: Support animated values for border dimensions (3e3b10f404)
- Update
react-devtools-core
and plist
to include security fixes reported by npm audit
(3a1d949906)
- Update
Switch
to ES6 Class (970caa4552)
- Update
Slider
to ES6 Class (5259450c14)
- Update
ActivityIndicator
to ES6 Class (edd7acbb1e)
- Update
RefreshControl
to ES6 Class (a35a238317)
- Update
KeyboardAvoidingView
to ES6 Class (c017dcb0f2)
- Update
DatePickerIOS
to ES6 Class (f8c8231706)
- Update
Text
to ES6 Class (ab92c00245)
- Replace
context.isInAParentText
w/ React.createContext
(e1339bc183)
- Cleanup
Text
implementation (06c05e744d)
- Switch
Text
to React.forwardRef
(e708010d18)
- Switch
View
to React.forwardRef
(3e534b9aab)
- Update uses of
genMockFunction
and genMockFn
to fn
in tests (390ded871c)
- Make
ViewProps
exact (65c336f38f)
- Spread
TVViewProps
into ViewProps
instead of intersection (bc658d3c44)
- Allow trailing commas (1e2de71290)
- Use
let
/const
(8f5ebe5952)
- Refactor
MockNativeMethods
in Jest (5d4c542c58)
- Use app name from
app.json
after ejecting (57774a4a98)
- Suggest
git apply --reject
for failed upgrades (4fbd244b9a)
- Moved
TouchHistoryMath
from React to React Native (06085d3836)
- Refactor
RCTInputAccessoryView
(c136c54ff0)
- Don't wrap
ListEmptyComponent
in an extra view (db061ea8c7)
- Move
Text
PropTypes to its own file (cd8128b2ec)
- Mock
ReactNative.NativeComponent
native methods in Jest (3e9a371ace)
- Tightening types for
View
and VirtualizedList
(5035af80ec)
- Make values optional in
ViewPropTypes
(f1316cab6c)
- propTypes are optional for native components (dbdf43b428)
- Rename
Style
to DangerouslyImpreciseStyle
(4895c645ea)
- [BREAKING]
requireNativeComponent
's signature has been simplified to only take extraOptions (820673e707, b549e364e0, 28d37781c6, 1c90a2b47b, and 1ab7d49c2d by @yungsters)
Breaking Changes
- Public methods of Text (
blur
, focus
, measure
, measureInWindow
, measureLayout
, setNativeProps
) are no longer bound to the text component instance. It is therefore unsafe to pass these methods by reference (i.e: as callbacks) to functions. So, things like setTimeout(this._txtRef.focus, 1000)
will no longer work. Please instead do: setTimeout(() => this._txtRef.focus(), 1000)
.
iOS specific changes
- [BREAKING] WebViews now can only use https; do not use it for
file://
(634e7e11e3 by @mmmulani)
- iOS 9 is now the minimum required version (f50df4f5ec)
- Update podspecs to target iOS 9 (092103e752)
- Xcode 9.4 is now used to run tests (c55bcd6ea7)
- Prevent console logging on iOS 11.3+ within WebSocket (8125be942b)
- Expose
RCTFont
size overrides (6611fefef7)
Android specific changes
- Projects are now compiled using Android SDK 26 (065c5b6590)
- Use Google Maven repo in new Android projects (6d56a234e3)
- Upgrade Buck to v2018.03.26.01 (1324e7b558)
- Upgrade gradle-plugin to 2.3.3, gradle to 3.5.1, gradle-download-task to 3.4.3 (699e5eebe8)
- Bump NDK APP_PLATFORM to android-16 (b5dc45420a)
- Bump glog to 0.3.5 (added libc++ support) (b5fca80605)
ReactFragmentActivity
deprecated as it's not necessary when targeting API level 14 and above (77a02c0d83)
- Touchables now play a sound on press (722f88ca90)
- Default
underlineColorAndroid
to transparent (a3a98eb1c7)
- Disable
WebView
geolocation by default (23d61b35fb)
- Ensure cookies with illegal characters are not sent to okhttp (04028bf216)
- Update app icons to match recent Android releases (94393f8652)
- Better error messages for
ReadableNativeMap
(30d06b4286)
- Update Fresco to v1.9.0, okhttp3 to v3.10.0 (6b07602915)
- Add tint color to inline icons (e8e2a6e410)
- Fix antialiasing rounded background (e4f88c66e3)
react-native link
will now replace '/' by '_' when linking projects. If you previously linked scoped packages, they will get linked again. (dbd47592a1)
- New project template now uses project-wide properties (0a3055d98a)
Fixed: bugs that have been resolved
VirtualizedList
now accounts for ListHeaderComponent
length when calculating offset (604bcfa4a8)
- Prevent showing a hidden status bar when opening modals (076b1cea35)
- Fix crash when reloading while Perf Monitor is enabled (4fcd9970bd)
- Fixed concurrency issue in remote debugger (578b0b2a51)
- Fix
Modal
+ FlatList
scrolling (45b0907f61)
- Fix bug in
RCTNetworking
where not all tasks/handlers were being cleared during invalidation (b805172034)
- Fix keyboard handling with
keyboardShouldPersistTaps: never
(ffe6c110f7)
- Fix Responder Logic in
Text
(e2ce22b823)
- Fix
VirtualizedSectionList
lint warnings (26a1eba1ce)
- Fix
VirtualizedSectionList:ItemWithSeparators
(488a4c7e1c)
- Fix
TextInput
's initial layout measurements (c6b4f9f2ce)
- Fix
requireNativeComponent
check (1c90a2b47b)
- Fix
TextInput
autocapitalization bug (ff70ecf868)
- Add missing events to
ViewPropTypes
(41a940392c)
- Add missing Jest mock in
StatusBarManager
(4a2c560768)
- Add Flow declaration for Metro module (1853e15190)
- Fix type for
ReactNative.NativeComponent
(1/2) (de11ba2a5e)
- Fix type for
ReactNative.NativeComponent
(2/2) (752863629d)
- Move Image PropTypes to new file (67656991b3)
- Tests: Fix JUnit report location when running Jest (85fc98d437)
- Tests: Fix ReactImagePropertyTest SoLoader failures (#19607) (a52d84d7e1)
- Tests: Fix jest snapshot testing on Windows (216bce3163)
- Fixes "Cannot resolve module" errors in new
react-native init
projects (843a433e87)
- Haste hotfix for
react-native-windows
(54942746d4)
iOS specific fixes
- Fix undefined_arch error in Xcode 10 beta - e131fff
- Make
react-native run-ios
command play nicely with multiple Xcode versions (a130239257)
- Correct fishhook import (75a0273de2)
- Fix bug where a Backspace event was emitted when entering characters after clearing a text in
TextInput
by an empty string (1ffb2b63be)
- Expose
InputAccessoryView
so it can be imported (80fc415cf1)
- Fix
InputAccessoryView
safe area conformance (490f22ae72)
- Fix use of C++ syntax in header file (bfcfe7961d)
- Fix install step when running
run-ios
(0934c1778f)
- Fix
run-ios
not turning on Simulator (9736ddc061)
- Use correct library reference for Fishhook. This fixes the build for the new Xcode build system, on both Xcode 9 and Xcode 10 (a8b74576da)
- Add missing
onChange
event definition to DatePickerIOS
(3b53091869)
- Fix crash during Archive phase on Xcode 9.3 (344c205070)
RNTesterPods
: Add missing folly include (128c9343c4)
RNTesterPods
: folly::Optional's has_value()
to hasValue()
until folly is upgraded (128c9343c4)
RNTesterPods
: Fix import for RCTTestAttributes.h
(128c9343c4)
RNTesterPods
: Fix conversions.h
to use namespaced includes (128c9343c4)
- Fix or mark enum conversions surfaced by
-Wenum-conversion
(b8f30db0ae)
- Fix CocoaPods integration without DevSupport subspec (c09d509c2b)
- Update Yoga to handle being in a Xcode framework project (cf036dbc7a)
- Fix Blob memory leak (122b3791ed)
- Avoid double reload event when reloading JS (7b9b1559a7)
- Suppress spurious warning about RCTCxxModule (569061dd83)
Android specific fixes
- Fix extreme
TextInput
slowness on Android (5017b86b52)
- Correct draw path dimensions while doing even border, fixes blurred borders (c5ca26a0e5)
- Don't pass additional arguments to
requireNativeComponent
in .android.js
files (a51e8b19cc)
- Prevent
RefreshControl
from getting stuck when a parent is scrolled horizontally (33ffa79a51)
- Prevent crash due to unsupported ellipsize mode (85e33aaf90)
- Fix okhttp3 response handling in
DevServerHelper
(56d48bd9ec)
- Fix
ReactInstanceManager
unmountApplication to support ReactRootView
recycling (4a9b2a7302)
- Fix
NullPointerException
when emitting event using UIManagerModule
(291c01f4ff)
- Fix link to Android build guide (57e7556b8d)
- Fix Android open source test failures (3e0ebc7663)
- Fix view indices with LayoutAnimation (05b75b9ebf)
- Fix originalNode memory leak (8102e35271)
- Fix
ScrollView
with a TextInput
(2f1421dec7)
- Disable onKeyPRess logic when handler not defined (41975f75d9)
- fix permission requests on pre-M android (4e1abdd74d)
Removed: features that have been removed; these are breaking
- Deprecate
focusTextInput
and blurTextInput
(ce3b7b8204)
- [BREAKING]
ImageResizeMode
on Image
is no longer exposed; check your usage of resizeMode
; the same resize modes exist, but pass them as strings instead (870775ee73 by @TheSavior)
Android specific removals
iOS specific removals
- Disallow nesting of
<View>
within <Text>
(e.g. <Text><View /></Text>
) (6a1b41643a
- Removed deprecated
UIActionSheetDelegate
methods (5863b564f8)
Known issues
During the RC testing of this version, a few issues that have been opened don't have yet a finalized solution ( 19827, 19763, 19859, 19955 ). We are aware of them and we hope that by releasing 0.56.0 the surface of developers interacting to find solutions to them will allow for faster resolution and an even better 0.56.1 release. So please check the already opened issues before submitting new ones.
If you are using Windows to develop React Native apps, we suggest you keep an eye on this issue in particular since there have been many reports of issues related to Win 10 and RN 0.56.
v0.55.0
Welcome to the March 2018 release of React Native ! Over 81 contributors made 247 commits since February. Thanks for another exciting release.
Here are a few highlights:
- React Native is now using the MIT license
- Android TV device support

- Animated tracking with native driver - check out the silky smooth framerate
- Lots of Flow improvements
- Bugfixes
Added: new features
- Added support for animated tracking to native driver. Now you can use
useNativeDriver
flag with animations that track other Animated.Values
(b48f7e5605 by @kmagiera)
- There's a new UTFSequence module in the library for common Unicode sequences (Emoji!) (54870e0c6c and 4761d5a83e by @sahrens)
- Added
contextMenuHidden
property for TextInput (2dd2529b3a by @amhinson)
- Add
testOnly_pressed
to TouchableHighlight for snapshot tests (3756d41de1 by @sahrens)
Android specific additions
iOS specific additions
Changes: existing functionality that is now different
- React Native has now adopted the MIT license (1490ab12ef and 26684cf3ad by @sophiebits)
- The HelloWorld template now exclude
*.jsbundle
files from Git (21231084db by @aneophyte)
react-native-git-upgrade
now shows files merged with conflicts in red (e53a8f7097 by @alvinthen)
ResolvedAssetSource
type to have all read-only members (4d0ee37293 by @sahrens)
- Flow types improvements (b6c7e551a9, b98bf1e097, 80c18395e2, 70a3ececc3, f7343576fc, a817c64043, 3fd82d3c89, cd8128b2ec, 5035af80ec, 26734a8473, 321ba067a8, b6b80f6a70, f1316cab6c, 2520c645f8, 214da52fe7, dbdf43b428, 49396aa78d, 4895c645ea, a3c07c95ef, 49ffc9fada, and c129457d3a by @TheSavior, @yungsters, and @alex288ms)
- Better enable cross-platform support of WebSocket.js (b9be28915c by @rozele)
- Better error handling in the CLI around making directories (d2817f48a1 by @BridgeAR)
- Verify that the component passed to createAnimatedComponent is not functional (10b642a7af by @janicduplessis)
- Don't truncate in the middle of an emoji (9c8c597000 by @Vince0613)
- Loosen Platform check to allow better code sharing for out-of-tree platforms (84affbd6a3)
- In CLI, fix issue with
isInstalled
check for Android and references to unregister (ec884890b1 by @rozele)
iOS specific changes
- tvOS
onPress
magnification animation now works via the tvParallaxProperties
prop object taking pressMagnification
, pressDuration
, and pressDelay
(6c353fd7e9 by @JulienKode)
Fixed: bugs that have been resolved
iOS specific fixes
Android specific fixes
Removed: features that have been removed; these are breaking
Android specific removals
ReactInstanceManager#registerAdditionalPackages
has been removed; Create UIManager interface and extract common classes in uimanager/common (6b45fb2cb1 by @mdvacca)
iOS specific removals
v0.54.0
Welcome to the February 2018 release of React Native! This release includes work done by the React Native team and the community in January, and there are some big changes here after the holidays. Thanks for 270 commits from 87 contributors, you all are great! Here are a few highlights from the release:
- Long awaited Blob changes: upload, download, fetch locally, and more
- Sticky headers now work on inverted Lists
- Update to the newest React, which deprecated some lifecycle methods and added new ones – expect Yellowbox until React Native is updated
Space-evenly
is now there (sorry for the confusion with 0.52's release notes)
- A lot of under-the-covers work on Yoga, iOS's Text and TextInput, and a ton of other areas
- Multiple crash fixes
The changelog is arranged by the customary added, removed, changed, and fixed plus internal; the changes are also organized by platform.
Added
VR Specific Additions
Android Specific Additions
iOS specific additions
Removed
iOS specific removals
- Removed outdated assertion in RCTShadowView related to breaking change in Yoga (e3ff3cf6cb by @shergin)
Android specific removals
iOS specific removals
Changed
iOS Specific Changes
- ⚡️ Text and TextInput have been re-implemented from the ground up for performance, flexibility, and reduced technical debt (2716f53220, 74963eb945, d7fa81f181, 74963eb945, 6c4ef287ad, ebc98840e9, d7fa81f181, 7d1ec7a3dc, 52648326e6, 6bb8617f3a, 5dbb3c586c, 7e7d00aebe, 46fd864348, 9dfa2e7f3c, 8a882fe6d6, and 0f9fc4b295 by @shergin and @hovox)
- Image's
resizeMode="center"
is now documented and has an example present (be7037fd8e by @motiz88)
- Geolocation API no longer timeouts when
skipPermissionRequests: true
(5c17db8352 by @ngandhy)
- Rounding pixels is now done with an algorithm from Yoga rather than React Native, reducing debt and improving performance (ceb1d1ca5b and 114c258045 by @shergin)
Android specific changes
Fixed
Android specific fixes
iOS specific fixes
Internal work
- A massive amount of Yoga optimizations, cleanups, refactors, and test fixes (62d01006a1, 1475fc4856, 9daa17458a, d4517ddb9f, ca91f0e3ac, 34b7ec82b5, fda861a889, 9f7cedbe14, ac1c8c265e, fcf2c7cf61, 2b27f1aa19, 210ae5b95a, 82088580ab, 7f94bff89a, bd7bf94af9, 2fe65b032e, 9658d9f82b, ee5c91c031, 64d530ba07, 400a29e151, f75e21f1ca, 528bbacf6b, be8e7c6e65, d0f7d4d107, 4b4959a21c, fdef3784f0, 831a1bb4b1, 2a22d998f8, 9f57dedc17, and ff2658c3de by @priteshrnandgaonkar, @passy, @ryu2, and others)
- 🚧 Lifecycle methods were renamed to be consistent with React RFC6 – note that there are Yellowbox warnings right now because of this, it's work-in-progress (6f007e8957 by @bvaughn)
- Some autogenerated mystery string files were added (c7846c4bfb, bb6fceac27, 8bd00a2361, faa9519021, f49f7932d5)
- Improvements to the cli's implementation (1673c570f9, 752427b7b8, and 619a8c9f29 by @arcanis, @voideanvalue, and @rozele)
- Measure touch events from nearest "root view" (a70fdac5bd by @mmmulani)
- Allow to attach the HMR server to an external http server (8c6b816caa by @rafeca)
- Split folly/Memory out from headers-only targets in Buck (b8e79a7e8b by @mzlee)
- Code cleanup of ReactHorizontalScrollView in Android (71ec85f24c by @mdvacca)
- Always create a debugger websocket connection when in iOS dev builds (fa334ce464 by @bnham)
- Make the React Native HMR client extend from the generic metro HMR client (9a19867798 by @rafeca)
- Removed use of xip.io (40a8434bde by @jvranish)
- Fix Buck dependencies (cec2e80fc2, 4f6c157250 by @swolchok)
- Fix permissions on test script (42c410ac84 by @mzlee)
- Better handling exception in loadScript() (3fbf7856d9)
- Fix ESLint upgrade "parsing error" (9d214967d2 by @zertosh)
- Fixing 🤡 in RCTSurfaceRootShadowView (5fba82deff by @shergin)
- Handle invalidation error in RCTObjcExecutor (493f3e8da5 by @fromcelticpark)
- Check for nullptr when accessing isInspectable method (70d23e82ad by @fromcelticpark)
- Introduce new Fabric API in RNAndroid (2d35bde101 by @mdvacca)
- Fixing Prepack model for latest global.nativeExtensions changes. (01a58d182a by @NTillmann)
- General code cleanup: unused code and configurations (e233646d09 and e7010348d8 by @bvaughn and others)
- Add support for finding multiple views with NativeIds using a single listener to Android (f5efc460ad by @axe-fb)
- Add CountingOutputStream (a5e135aed6 by @hramos)
- Changes from Prettier (b815eb59be, e758cb7f39, bf9cabb03c, and a5af841d25 by @shergin)
- Typos in code (8ffc16c6e7 by @ss18)
- Support for inherited events in view managers (2afe7d4765 by @shergin)
- Flow types changes (3fc33bb54f, e485cde187, 83ed9d170b, 52ffa5d13e, d37cdd97ae, 6e7fb01c02, d99ba70c49, bcfbdf4fbe, and a1c479fb3b by @alexeylang, @sahrens, @yungsters, and @zjj010104)
- Give IInspector a virtual destructor for correct InspectorImpl destruction (2a3c37f424 by @toulouse)
- Migrated
SourceCode
and DeviceInfoModule
out of Native Modules (47fe52380a and 429fcc8cab)
- Jest config change as part of bringing back support for the
assetPlugin
option in Metro (af6450c660 by @ide)
- Nested virtualized lists should receive recordInteration events (ae2d5b1e68)
- Upgrade connect dependency (709ede799c by @rafeca)
- xplat/js: asyncRequire: redirect async modules to control modules (5e11b8870a by @jeanlauliac)
- More progress towards split bundle support (1a1a956831 and 9e34cbda9d by @fromcelticpark)
- Implement bundle sync status (88980f2ef7)
- Various improvements to RCTSurface and RCTShadowView (7d9e902d72, 06ebaf2205, 6882132421, and 193a2bd4cd by @shergin)
- Progress towards experimental ReactFabric and FabricUIManager (b1e5c01483, fa0ac92b2c, 94dac23583 by @fkgozali)
- (almost) kill fbjsc (702b7e877e by @michalgr)
- Refactored bridge ReadableNativeMap and ReadableNativeArray to add centralized accesses (7891805d22, 28be33ac34, and 5649aed6d3)
- Removed unused core from Image.android.js (ce3146a6f3 by @shergin)
- Capture StackOverflowExceptions triggered when drawing a ReactViewGroup or ReactRootView and log more debugging information for it (1aac962378 and 4d3519cc6a by @mdvacca)
babel-preset-react-native
: only require plugins once (df6c48cf36 by @davidaurelio)
- Report module id as string and as double, in case of invalid values are passed to nativeRequire (8f358a2088 by @fromcelticpark)
- More work moving build configurations to Skylark (d3db764f38, 869866cc5c, a8c95d2417, and 79a63d040f by @mzlee, @ttsugriy, and others)
[RCTShadowView isHidden]
was removed (c19bc79688 by @shergin)
- Remove unused
packagerInstance
option and rename it to server
(bbbc18c4ee)
- The blog has moved to react-native-website (e16d67340e by @hramos)
- Remove SoLoaderShim, use SoLoader (fc6dd78935 by @foghina)
- Removed broken link for 'Getting Help' in the README (b3a306a667 by @rickydam)
- Changed to use boost-for-react-native cocoapod, which speeds up
pod install
a ton; this was in 0.53 originally but had to be re-added (d40db3a715 by @CFKevinRef)
- Remove fbobjc's RN copy (af0c863570)
- Measure time to create ReactInstanceManager (6224ef5301 by @alexeylang)
- Upgrade create-react-class to v15.6.3 (74f386633d by @bvaughn)
- Upgrade react-devtools to v3.1.0 (8235a49a33 by @bvaughn)
- Upgrade flow to v0.65.0 (7aba456b04 and 298f3bb69a by @avikchaudhuri and @mroch)
- Upgrade Jest to v22.2.1 (46f4d3e1bc and 24e521c063 by @mjesun)
- Upgrade ESLint to v4.17.0 (plus update related deps) (bba19e846e by @zertosh)
- Upgrade React to v16.3.0-alpha.1 (03d7b2aa0e and 5e80d95e03 by @grabbou and @hramos)
- Synced React and ReactFabric render (c7ed03a95c, 13829751b1, and d676746f14 by @bvaughn)
- Upgrade metro to v0.26.0 (9e6f3b8aff, ce50f25d22, e9b83e608e, 2fe7483c36, 0f96ebd93b, 0de470ec19, e8893a021f, and b1d8af48ae by @rafeca and @grabbou)
- Add Context to Redbox report api (e3c27f585a by @ayc1)
- GitHub bot commands have been disabled in the short term (b973fe45bd by @hramos)
- Various CI configuration changes (17bd6c8e84, 51b6749c07, a2f3ba864e, 2ef9b7f2da, 40b17926bb, 613afbab7f, da8bec9f8b, fa11faecb6, f50af7f8a4, 9227ba73ab, 365a4d4b43, b58d848d9c, c8e98bbaf5, f5975a97ad, and 605a6e4031 by @hramos, @grabbou, and @dryganets)
- Restore copyright header (4f883bd0bc by @hramos)
- Trim docs that are already present in the open source docs site (28d60b68ad by @hramos)
- Fix obsolete instructions about editing docs (2f46712074 by @ExplodingCabbage)
- Fix links to beginner friendly issues (c355a34de1 by @hotchemi)
- Typos in comments and log messages (d2c569795c by @ss18)
- Don't run the Danger CI tool through Flow (1ea3065feb by @hramos)
Namespace custom ESLint rules through eslint-plugin-lint (488b6825c5 by @zertosh)
... and now we're at 0.54 🎉 (67e67ec83c, 21dd3dd296, 49e35bd939, 829f675b8b, and 294d95a236 by @grabbou and @hramos)
v0.53.0
Welcome to the January 2018 release of React Native. The CLI now supports --port
for both platforms, a few components were made to support consistent props across both platforms, and various fixes were made. There was a lot of under-the-cover work done with more test improvements and dependency updates. 118 commits were made by 43 contributors 🎉.
Added
iOS exclusive additions
react-native run-ios
now supports the --port
argument for metro (33d710e8c5)
Android exclusive additions
Changed
- ⬆️ Metro to v0.24.2 (2e008bc464 and 0b5e8b4852 by @rafeca)
- ⬆️ Flow to v0.63 (6b95c4fb14 by @gabelevi)
- ⬆️ Danger to v2.0 (b750e3b21b by @hramos)
- ⬆️ Jest to v22.0.0 (4803419dc8 by @mjesun)
- 💄 Bundler is now called Metro Bundler in the terminal (654d7595fe by @edcs)
- 📝 Update getting started url on Android CLI (6661633390)
- 🐳 Dockerfile uses newest Android SDK, Buck, and new Docker tags have been pushed (4fbfbe6bb0 and c547f783c4 by @hramos)
- 📝 Update repo docs to use HTTPS (33a2e533b7 by @him2him2)
- 🎨 Make ScrollResponder follow code style (45e6fcdba0 by @TheSavior)
- VirtualizedList now requires a windowSize greater than 0 (3559e42c55)
- react-devtools works with emulator and real devices now without needing to tweak the devServer value (fa574c6092 by @jhen0409)
- 📝 Clarify use of Flow props types in react-native-cli's template project (9b147a53d1 by @hramos)
- 📝 Add docs for
isInspectable
(59c7967627 by @bnham)
- ✅ More Flow improvements (Text, SectionList, and others) (f71f4e7906, 632f1202ab, and a8391bde7d by @yungsters, @samwgoldman, and others)
- Various code cleanup to satisfy linting errors and standards (b0319f3293, dd4611721d, and 7f58189605 by @ayc1, @grabbou, and @ide)
iOS exclusive changes
- 🔥⚡️ iOS UI Manager cleanup and optimizations (0ec1017660, 0ae4c47daa, 2679f3efb6,and d9e5b313bb by @shergin)
- If the inspector tries to handle a wrapped event but there is no connection, log a warning rather than a Redbox (30da2622e2 by @bnham)
- Various under-the-covers changes around the bridge, RCTShadowView, RCTSurface, and a few others (c3139d798a, 2789ba016b, b8e60a3ca3, 099b28006b, b263560c73, 19a9c5e41d, d3b41e0da3, b2a251948f, 870bc4807a, 176a578238, c491b22233, c75612219e, andc01a171ed8 by @shergin)
- Changed to use boost-for-react-native cocoapod, which speeds up
pod install
a ton (d40db3a715 by @CFKevinRef)
Android exclusive changes
Removed
- TextInput no longer has the
autoGrow
prop, since this is platform-default behavior now (dabb78b127 by @shergin)
iOS exclusive removals
- Updates to the bridge in order to enable future rendering optimizations (d2dc451407 by @shergin)
Fixed
Android exclusive fixes
- Fix position of dev loading view on Android API < 20 (7ff6657985 by @kmagiera)
- Fix Modal not disappearing when navigating from inside a Modal to another activity (e5c2a66897
iOS exclusive fixes
Other
Below is a list of the remaining, low-level changes that made it into this release of React Native.
- Remove "prepareReact" call from the bridge (80f9e1f7de and 56a42e57d0 by @fromcelticpark)
- Add explicit componentControllerClass to CKComponent for RCTSurface (ab972708a8)
- Changes to RCTShadowView to increase RCTSurface performance (f96f9c5fd6 by @shergin)
- Designated methods to control dirty propagation (af226ef949 by @shergin)
- Add missing tvOS header (49cbca7464 by @grabbou)
- On Android, seperate logic to initialize JS from starting the app (4996b9aeb4 by @axe-fb)
- ♻️ JS linting was cleaned up: removed unused libs, strengthened the rules, removed unneeded rules, prevent disabled tests, and more (2815ada238, 183c316f4c, 9c67e749d8, 79902f99b8, 9a36872f0c, 67a3c42d1a, b826596700, a1a0a69546, and 11a495cb32 by @TheSavior)
- 👷 Separate JS lint and flow checks from tests (5ea5683d01 by @hramos)
- 👷 Fix Buck in build config to enable CI (796122d8f3, 7c3a61f3b6, 82b123e744 by @grabbou)
- ♻️ Various refactoring within the YGNode implementation (28968e2c0b, 0a9e652bdd, 6627d7723c, and d85da86dc7, a163f70f87 by @priteshrnandgaonkar)
- Fix ReactLegacy and delete RCTViewControllerProtocol (a0ff8c7706 by @javache)
- Define internal FB macro for OSS builds; remove some unused definitions (077c3ab349 and (a6a66c5b39 by @ttsugriy)
- RNTester: Relax Bridge Release Check (e3c6f38773 by @yungsters)
- Remove embeddedBundleURL from the asset resolver (489b98bf10)
- Do not set FB_ASSERTION_ENABLED (4cdbb77c33 by @priteshrnandgaonkar)
- JSBigString to MAP_PRIVATE not MAP_SHARED (f9f40cd3e4)
- Fixed black ARTSurfaceView (5c8481e836 by @shergin)
- Kill orphaned marker end in JSCExecutor (6ad1f0957a by @michalgr)
- Make YGNode as c++ struct with properties exposed through accessors (f1055bcac8 by @priteshrnandgaonkar)
- 🔖 ...and now we're at 0.53.0-rc.0 🎁 (0b996577e3 by @grabbou)
v0.52.0
This changelog has been prepared by Ryan Turner (@turnrye) - thank you for
your time and making such a detailed changelog 🔥🔥
This release had a lot of work around the bundler and packager, a ton of
bugfixes, and updates to many of React Native's dependencies. Lots of
under-the-hood work was done as well to improve the layout engine. Happy new
year!
If you would like to help us with the next release changelog, please contact
@grabbou
Added
- Prettier has a config and an npm script; try it out with
npm run prettier
(164591218f by
@janicduplessis)
- Debug JS in Nuclide is now an option in the dev menu 🐜
(7c7108a1e8 and
de424cc291)
- Introducing PlatformOS – it looks a lot like Platform, but with a
simplified API
(5ee27ff755 by
@brishin)
- New experimental RCTSurface: measure and layout a UI in a thread-safe and
synchronous manner
(be6976d6fa,
7df58e23a3,
e75bd87a76,
aa83b5a0ca,
081f7d14ad,
da17b237e1,
e9e0cd7ab8,
43b2509320,
ba6075120a,
d71d28f094,
4d37cf0fbc, and
d021dd25da by
@maicki and
@shergin)
- Experimental SwipeableRow's datasource now has a
getLastRowID
method
(d79e245d19)
- [React Native monthly
was added (3c5a55ddc2
by @tenodi)
iOS Specific
Deprecated
- Ignore YellowBox warnings with
YellowBox.ignoreWarnings([...])
rather than
console.ignoredYellowBox = [...]
(26038f50bb by
@wli)
Changed
- Metro-bundler is now metro, and it's v0.24.1; there were some performance
increases at the cost of a few breaking changes; improved tests of the bundler
too (0bbd9f042a,
a2fd3fcef8,
503b4521a6,
654fed46f4,
0091496891,
aba148f733,
3d5dc872a4,
48019a0c2a,
ecec4319c4,
f4d627c8fa,
f871d25eb4,
a7b231a327,
830b431453,
29dafa1a86,
7a5d5a4035,
4cd685a1e0,
d326c86051,
231c7a0304,
7d969a05de,
ae517307e7,
f587f8d51d,
fbf0aed3ac,
e9393f694d, and
968c88d141 by
@cpojer, @hramos,
@jeanlauliac, and
@rafeca
)
- React is now v16.2.0, and it took react-test-renderer along with it; now with
more
fragments!
🎉 (c7f37074ac and
cd938d731c by
@bvaughn)
- Jest is now v21.3.0-beta.13
(16bbd908e7 and
ec2ea58e57 by
@mjesun)
- Flow is now v0.61.0, and there were a ton of Flow fixes/coverage improvements
made (914ae93336,
eb0d6470e5,
c8e72bb8b8,
2d4bedba0f,
e0202e459f,
2be3ae1ff2,
22a1419900,
6ae0b344e5,
76a2ca4c9c,
3259353fce,
e6c1fb7212,
61d046be3c,
820cfa1f3b,
240039c6f2,
343c5a97a0,
5f8d8e90c2, and
da047966e4 by
@Ashoat,
@calebmer,
@cdlewis,
@deecewan,
@grabbou,
@jamesisaac,
@mroch, @nmn,
@nmote, @sahrens,
@samwgoldman,
@TheSavior, and others)
- react-devtools-core is now v3.0.0
(a7d46ea970 by
@rsnara)
- Split out docs to their own
repo (and
a few formatting fixes along the journey) 👋
(2d86618e7e,
64d80b13db,
3362da421c,
75123c614b, and
79e24ede40 by
@hramos).
- TouchableHighlight now has a default delayPressOut value of 100; it was
also refactored a bit for style
(9a31fa5fd6 by
@sahrens)
- When in a dev build, more robustly validate arguments for native methods
(ea2e2c54cb by
@mhorowitz)
- On integration tests, report all errors
(3bcb912786 by
@sahrens)
- Yoga has less technical debt, thanks to replacing YGNodeList with vectors
(b08a912f11 by
@priteshrnandgaonkar)
- Yoga is now cpp, compiled as c++1y
(d7ab9496bc by
@priteshrnandgaonkar)
- Bundle segments are handled better and used more
(681278947e,
a47431ed74,
963c61d4d5,
b9f21dc2be,
f1258181ee, and
1988ba1d79 by
@fromcelticpark and
@jeanlauliac)
- packager-worker-for-buck has better tests
(7fd5aa84a1 by
@jeanlauliac)
- RCTUIManager has less technical debt
(46be5bf71c,
60dc9bed00, and
21714fe197 by
@shergin)
- Numerous bridge changes, especially around URL resolution
(e7bd0f056b,
260e6d2355,
4894ac430d,
b983de9c54,
b0193b098c,
ae5ef653cb, and
1d6ce2311f by
@fromcelticpark and others)
- Various cleanup and refactoring
(053776338e,
0984f29a32,
6c70975689,
d950dc6a21,
70c359000a,
cfa2bbf2f6, and
850efa8650 by
@bnham,
@priteshrnandgaonkar, and others)
- Jest preprocessing now uses the AST from metro
(2ae255a6ea and
d5b59517c2 by
@rafeca)
renderApplication()
now supports async initial render
(1b22d49ae8 by
@bvaughn)
- Welcome @lwinkyawmyat to the React Native
GitHub Issue Task Force
(4ebe76d559 by
@lwinkyawmyat)
Android exclusive changes
- Native components on Android register lazily rather than via ViewManager
(1b71e03932)
- Android debug overlays (like RedBox, dev menu, loading) are no longer are
system overlays; they're now part of the currentActivity
(d19afc73f5 by
@kmagiera)
iOS exclusive changes
Fixed
- Fix
backgroundColor
on TouchableHighlight
(5a1171ebfa by
@sahrens)
- Various corrections in messages, comments, and docblocks
(58c3bc4901,
354e1cb508,
58edf024a1,
b9e7006cc6,
d2f0abdf4e,
94cd9f5591,
8547b7e111,
44c16499fd,
c91d87213e,
85503a0612, and
5b83dbe25a by
@behrends,
@bvaughn,
@charpeni,
@dsandmark,
@gusgard,
@nkabrown,
@petterh, @solon,
@swashcap, and others)
- Various dev doc and project doc fixes for correctness and completeness
(92c0980540,
3c9092acf3,
e906525e84,
60828566a7,
c49b97c4ef,
45ed142596,
cb6ec7c321,
9ec9567390,
e5a4ea97d9,
c544c0d2dc,
33d5e5bd5a,
95dac8db60,
6e1db1f1ee,
e11d496e9d,
6da897945f,
0ff576081b,
1ee64ccb8a,
3aa38564f7,
6b26971a56, and
de3976a486 by
@adrianomelo,
@blargity,
@charpeni,
@garlic-rice-with-butter,
@gwmccull,
@harikrishnanp,
@hramos,
@johnthewilson,
@jsdario, @kelset,
@patrickkempff,
@ryanml,
@tiagomoraismorgado88,
@timwangdev, and others)
- Stop
RCTRefreshControl
from jumping around
(2e1707d0e6 by
@sophiebits)
- Fix a race condition in the animation module
(515eb0e801 by
@mhorowitz)
- Fix Windows local-cli's to not wrongfully identify as globally installed
(ca106043fc by
@sballew)
- Fix Jest mocks for NetInfo, Dimensions, and ScrollView modules
(7fb3a9229d,
11a2a35c63, and
0c8a3e4f79 by
@alvaromb,
@timwangdev, and
@uk-ar)
- packager-worker-for-buck:
transformCommand
: add missing test
(73a01be9bc by
@jeanlauliac)
- Fixed issue where CLI wasn't following the config value for postMinifyProcess
when its running with
dev=false
(6d92046c56 by
@rafeca)
- Fix asset resolver url handling
(28d5d6baf1 by
@fkgozali)
- Fix crash when destroying catalyst
(f1015664e9)
- You can now
justifyContent
while you're minWidth
ing and marginLeft
ing;
before the justification wasn't honored
(f5becebc07 by
@woehrl01)
marginLeft: auto
and alignItem: stretch
now play nicely together; before
the width and height ended up incorrect
(5f99b1a55f by
@woehrl01)
- Fix assertion preventing YGNodeLayoutGet* with YGEdgeEnd
(a383b8ca05 by
@justjake)
- Fix shrinking in non-strech alignments
(1d62848535 by
@woehrl01)
- Correctly calculate min/max percentage constraints
(4fdaf2de98 by
@woehrl01)
- When running
react-native-git-upgrade
, don't execute git's hooks
(0182086350 by
@adrienthiery)
- When running
react-native-git-upgrade
and failing with a signal, return that
to the terminal
(b9a5862f67 by
@mateusz-)
- In KeyboardAvoidingView, don't mistakenly try to layout when a hardware
keyboard changes
(ad4450ac13 by
@koenpunt)
- Don't endlessly collect websockets when not connected to the packager (dev
memory leak)
(1e1e491246 by
@mmmulani)
- Fixed a bug in the sample project random
selection
prop that made it
not-so-random
(766f020e68 by
@rozele)
Android exclusive fixes
- Explicitly
#define isnan __builtin_isnan
for Android clang-5 to mimic
gcc's default behavior
(f8fe6b0c70)
- Correctly update NetInfo on Android even if connection types change while
the app is in the background
(e6f542d620 by
@berickson1)
- Direction-aware borders now work with Android APIs >= 17
(7170543e80 by
@rsnara)
- Don't throw BadTokenException and IllegalArgmentException when showing or
dismissing Modal on Android
(e57a43b97a)
- Fix Android crash when blurRadius is between 0 and 1
(dc01eff72d by
@jamesreggio)
- Fix
borderRadius
with Android API level < 18
(5aa1fb3ff3 and
ca7fe72c31 by
@rsnara)
- Make Android
lineHeight
behavior match iOS's 📏
(3f1b021506)
- Fixed autoscroll to cursor on Android TextInput
(0bef872f3f by
@shergin)
- Fix logging unpacking time on Android when it happens concurrently with eager
unpacking (028b64bcd3
by @alexeylang)
- Prevent an Android crash when TextInput has
selectionColor
defined but
there is no drawable cursor
(1e18d907bf by
@gpeal)
iOS exclusive fixes
Removed
- Removing
reactBridgeDidFinishTransaction
from RCTScrollView
(a255204e3e by
@shergin)
- Removing inherited background color optimization from RCTText to reduce code
complexity – please give feedback if you find performance differences!
(8c8944c10f by
@shergin)
Other
Below is a list of the remaining, low-level changes that made it into this
release of React Native.