This is the log of notable changes to the Expo client that are developer-facing.
- Fixed value reported by
FileSystem.getFreeDiskStorageAsync
(was2^53 - 1
, now is bytes available) (#6465 by @sjchmiela) - Added
setOnPlaybackStatusUpdate
toVideo.refs
(#6213 by @mczernek) - Updated underlying Facebook SDK on Android to v5.12.1 (#6462 by @sjchmiela)
- Removed SpongyCastle (BouncyCastle repackaging) from among Android dependencies. (#6464 by @sjchmiela)
- Fixed fullscreen events on iOS for native controls. (#6504 by @mczernek)
- Fixed
Camera.takePictureAsync()
not saving metadata on iOS. (#6428 by @lukmccall) - Fixed
KeyboardAvoidingView
in standalone Android builds. (#6506 @bbarthec)
@react-native-community/netinfo
updated from3.2.1
to4.6.0
. (#6176 by @sjchmiela)react-native-branch
updated from3.1.1
to4.2.1
. (#6176 by @sjchmiela)react-native-gesture-handler
updated from1.4.0
to1.5.1
. (#6127 by @tsapeta and 8b0e1b6 by @esamelson)react-native-maps
updated from0.25.0
to0.26.1
. (#6176 by @sjchmiela)react-native-reanimated
updated from1.3.0
to1.4.0
. (#6176 by @sjchmiela)react-native-svg
updated from9.9.5
to9.13.3
. (#6176 by @sjchmiela)react-native-view-shot
updated from2.6.0
to3.0.2
. (#6176 by @sjchmiela)react-native-webview
updated from7.0.5
to7.4.3
. (#6176 by @sjchmiela)react-native-safe-area-context
updated from0.5.0
to0.6.0
. (#6176 by @sjchmiela)react-native-screens
updated from1.0.0-alpha.23
to2.0.0-alpha.12
. (#6258 by @sjchmiela and #6357 by @tsapeta)
CameraRoll
: RemovedCameraRoll
fromreact-native
core, developers are encouraged to useexpo-media-library
insteadART
: RemovedART
fromreact-native
core, developers are encouraged to usereact-native-svg
insteadjest-expo
: RemovedmockPlatformIOS()
,mockPlatformAndroid()
,mockPlatformWeb()
,describeCrossPlatform()
in favor of platform specific presets likejest-expo/universal
. (#5645 by @EvanBacon)expo
: Removed Branch export fromexpo/Branch
. (#6190 by @sjchmiela)expo
: RemovedErrorRecovery
from theexpo
package and extracted intoexpo-error-recovery
unimodule. (#5357 by @lukmccall)expo
: UpdatedLinking.parse
to better handle non-expo URLs. URLs likemyapp://hello/world
are now parsed so thathello
is the hostname andworld
is the path, according to the URI specification; more info here. (#5179 by @koenpunt)expo
: UpdatedLinking.makeUrl
to create URLs that follow the URI specification. Making a hostless URL will result in the formatmyapp:///path/into/app
(#6781 by @cruzach)expo-analytics-segment
: Fixedenabled
behavior inverted on iOS. (#6242 by @sjchmiela)expo-facebook
: Disabled autoinitialization of the Facebook SDK and added aninitializeAsync
method andautoinit
app.json setting. ([#5924] by @sjchmiela)expo-keep-awake
: Removed deprecated methods and components. (#6006 by @EvanBacon)expo-location
:Location.requestPermissionsAsync()
is no longer being rejected when permissions were not granted. Instead it returnsPermissionsResponse
object, which is similar to the result ofPermissions.askAsync(Permissions.Location)
. (#5061 by @lukmccall)expo-store-review
: ReplaceStoreReview.isSupported
method withStoreReview.isAvailableAsync
returning promise instead of boolean. (#6195 by @danibonilha)expo-calendar
: Methods creating or updating calendar events now reject when passedtimeZone
is invalid. (#6326 by @lukmccall)expo-screen-orientation
: Removed deprecated methodsallow
,allowAsync
, anddoesSupportAsync
. (#6007 by @EvanBacon)
- Added
MediaLibrary.saveToAssetsAsync
function that can work withoutCAMERA_ROLL
permission. (#5678 by @lukmccall) - Added
setTrackingOptions
toexpo-analytics-amplitude
to fine-tune what Amplitude can track. (#5877 by @amaurymartiny) - Added support for
Speech.getAvailableVoicesAsync()
on Android. (#5887 by @Mitch528) - Added
@react-native-community/masked-view
in version0.1.5
. (#6193 by @brentvatne) - Added
@react-native-community/viewpager
in version2.0.2
. (#6198 by @brentvatne) - Added
@react-native-community/datetimepicker
in version2.1.0
. (#6087 by @tsapeta) - Added
canAskAgain
andgranted
fields toPermissionsResponse
. (#5061 by @lukmccall) - Added support for
react-native-appearance
on Android and Web. (#6162 by @bbarthec) - Added
Location.getLastKnownPositionAsync
to get the last known position of the device. (#6246 by @lukmccall) - Added support for complex recurrence rules for events and reminders on iOS. (#6300 by @tasn)
- Added
exif
andbase64
properties into the TypeScript definitions forImagePickerResult
inexpo-image-picker
. (#6311 by @kyletsang) - Added a
videoExportPreset
field toImagePickerOptions
, which sets dimensions and compression algorithm for exported video on iOS. (#6046 by @lukmccall) - Added
nonce
option toexpo-apple-authentication
. (#6404 by @brentvatne) - Added support for more permissions on web. (#6115 by @EvanBacon)
- Added better
Camera
support across web browsers. (#6207 by @EvanBacon)
- Fixed
MediaPlayer
not working on some Android devices (#6320 by @mczernek) - Fixed
Audio.setAudioModeAsync
to auto-fill with previously set values (falls back to default values) if not all fields are provided. (#5593 by @cruzach) - Fixed crash when
BarCodeScanner
was mounted more than 128 times. (#5719 by @geovannimp) - Fixed URI parsing in
expo-video-thumbnails
. (#5711 by @lukmccall) - Fixed
MediaLibrary
methods crashing on Android 10. (#5905 by @lukmccall) - Fixed
MediaLibrary.getMomentsAsync
crashing iflocationNames
array is null. (#5937 by @lukmccall) - Fixed
MediaLibrary.getAlbumsAsync()
not getting albums in folders on iOS. (#5857 by @lukmccall) - Fixed unclosed http connections in
FileSystem.downloadAsync
method. (#5840 by @bbarthec) - Fixed
ImagePicker
ignoring orientation of the application. (#5946 by @lukmccall) - Fixed
Calendar.getCalendarsAsync
rejecting on iOS 13, whensource.name
is null. (#5994 by @lukmccall) - Fixed handling URI with no scheme in
ExpoFileSystem
. (#5904 by @bbarthec) - Fixed
FileSystem#deleteAsync
in older Android SDKs. (#5923 by @bbarthec) - Fixed image cropping on Android in
expo-image-manipulator
. (#5828 by @matiasmelendi) - Fixed type problem with
EXiOSOperatingSystemVersion
struct inexpo-gl-cpp
. (#6063 by @crubier) - Fixed blinking
Camera.Constants.FlashMode.torch
on iOS inCamera
. (#6128 by @bbarthec) - Fixed race condition in
GoogleSignIn
on iOS. (#5872 by @vonovak]) - Fixed
Contacts.presentFormAsync
pre-filling, whenbool
value was provided. (#5522 by @lukmccall) - Fixed crashes when the user tries to download a file through
react-native-webview
without granted storage permission on Android. (#5061 by @lukmccall) - Fixed
Permissions.getAsync
result, which was inconsistent with iOS settings. (#5061 by @lukmccall) - Fixed scanning
PDF417
andCode39
inBarCodeScanner
on iOS. (#5976 by @bbarthec) - Add missing
mute
property inCamera.recordAsync
in the TypeScript definition. (#6192 by @wcandillon) - Warn when
Linking.makeUrl
is called in Expo client and no scheme is present inapp.json
in order to prevent standalone builds from crashing due to missing scheme. (#6277 by @brentvatne) - Fixed
keychainAccessible
option not having any effect on iOS (SecureStore
module) (#6291) by @sjchmiela - Fixed presentation style of
WebBrowser
modal on iOS 13+ (it is now presented fullscreen instead of a modal). (#6345) by @roothybrid7 - Fixed
expo-gl
crashing an app when context initialization happens on remote JS context. (#6381 by @tsapeta) - Fixed memory leaks caused by
ImagePicker
module. (#6303 by @lukmccall) - Fixed Android scoped
FileSystem
migration. (#6367) - Fixed
ScreenOrientation
crashing on Edge. (#5913 by @EvanBacon) - Fixed
LinearGradient
colors on web. (#5843 by @EvanBacon) - Fixed
MediaLibrary.getAssetInfoAsync()
not returninglocalUri
for videos. (#5806 by @lukmccall) - Fixed
Localization
constants export in iOS simulator. (#5740 by @lukmccall) - Removed unnecessary
CameraRoll
permissions check inImagePicker
on iOS 11+. (#5822 by @lukmccall) - Fixed default value for
fallbackLabel
inLocalAuthentication.authenticateAsync
. (#5844 by @cruzach) - Fixed getting
Contacts
containers without specifying a predicate. (#6016 by @tasn) - Fixed vector icons in MS Edge by disabling font face observer. (#5961 by @EvanBacon)
- Fixed typings for
Calendar.getRemindersAsync()
. (#6055 by @tasn) - Fixed
Camera
continuing to run after being unmounted on web. (#6117 by @EvanBacon) - Fixed exceptions logged in the
AV
module on Android. (#6099 by @danmaas) - Fixed crash when calling
Amplitude.setUserProperties()
on Android. (#6174 by @sjchmiela) - Fixed methods for scheduling Notifications. (#5470 by @Szymon20000)
- Fixed unloading sounds in the
AV
module on web. (#6214 by @rickiesmooth) - Add parital onFullscreenUpdate support to
AV
module on web. (#6610 by @awinograd)
react-native-maps
updated from0.24.0
to0.25.0
react-native-reanimated
updated from1.1.0
to1.2.0
react-native-screens
updated from1.0.0-alpha.22
to1.0.0-alpha.23
react-native-svg
updated from9.5.1
to9.9.2
react-native-webview
updated from5.12.0
to7.0.5
FileSystem.documentDirectory
is under a new directory. If upgrading from SDK 32 or below, you must upgrade your app to SDK 33 or 34 first, before upgrading to SDK 35 and above in order to migrate app files. (#5381 by @Szymon20000)Google.logInAsync()
now accepts aredirectUrl
value for apps running in the Expo Client. Previously, it would ignore this, so if you are passing a value, make sure to follow the guidelines. (#4904 by @cruzach)- Google Mobile Ads now require
expo.[platform].config.googleMobileAdsAppId
configuration value present inapp.json
. The value can be found by following the guide in this Google Support answer. (#5447 by @sjchmiela) - Replace
Localization.country
constants withLocalization.region
and make it only available on iOS and Web (#4921 by @lukmccall) - Upgraded
FBSDK*Kit
tov5.4.1
. This upgrade removed support for all login behaviors other thanbrowser
. Possible motivations behind this change may be found here, here and here.behavior
parameter has been removed from TS type declaration and will not have any effect anymore (#5499 by @sjchmiela) - Removed contact's
note
field from being requested if requested fields are not provided. (#5601 by @tsapeta)
- Added
expo-network
unimodule that provides device's network information such as its IP address or airplane mode status. (#5533 by @ninjaachibi) - Added
expo-cellular
unimodule that provides information about the user's cellular service provider. (#5098 by @vivianzzhu91) - Added
expo-battery
unimodule providing informations about the physical device's battery. (#4804 by @ninjaachibi and @vivianzzhu91) - Added
expo-apple-authentication
unimodule providing "Sign In with Apple" functionality. (#5421 by @matt-oakes, @vonovak, @bbarthec, @esamelson and @tsapeta) - Added
react-native-shared-element
to Expo client and standalone apps. (#5533 by @brentvatne) - Added an option which allows displaying notifications in foreground on iOS. (#4802 by @hesyifei)
- Added
lazyImports
option inbabel-preset-expo
which allows lazy-initializing/inline-requiring packages. (#4685 by @hesyifei) - Added the possibility to get MediaLibrary assets from specific time range. (#5166 by @tsapeta)
- Added Next.js supports with Expo for Web. (#5275 by @hesyifei)
- Added support for serving non-personalized Google AdMob Ads. (#5323 by @sjchmiela)
- Added
react-native-safe-area-context
to Expo client and standalone apps. (#5446 by @sjchmiela) - Added supports for push notification in Expo for Web. (#4963 by @hesyifei)
- Added
Calendar.getDefaultCalendarAsync
method on iOS. (#5485 by @lukmccall) - Added
react-native-appearance@0.0.8
.
- Fixed MediaLibrary assets' width and height were sometimes equal to 0. (#4935 by @lukmccall)
- Fixed location background mode was required to use geofencing. (#5198 by @tsapeta)
- Fixed
Calendar.createEventAsync
crashing with relativeOffSet due to invalid type conversion from double to integer. (#5134 by @vivianzzhu91) - Fixed
AppAuthModule.createOAuthServiceConfiguration
typo resulting in crashes whenregistrationEndpoint
is not specified in config. - Fixed occasional
"ViewManagerAdapter_*" was not found in the UIManager
bugs. (#5066 by @sjchmiela) - Fixed crashes when adding attachments with
MailComposer
. (#5449 by @sjchmiela) - Fixed
ImagePicker.launchImageLibraryAsync
not working on iOS 13. (#5434 by @tsapeta) - Fixed
ImageManipulator.manipulateAsync
not working with local paths. (#5531 by @bbarthec) - Fixed
Camera#onBarCodeScanned
not firing when added at first rendering (#5606 by @bbarthec) - Fixed background fetch calls throwing exceptions about mutating an array while being enumerated. (#5612 by @tsapeta)
react-native-gesture-handler
updated from1.2.1
to1.3.0
react-native-branch
updated from2.2.5
to3.1.1
react-native-reanimated
updated from1.0.1
to1.1.0
react-native-svg
updated from9.4.0
to9.5.1
react-native-webview
updated from5.8.0
to5.12.0
@react-native-community/netinfo
updated from2.0.10
to3.2.1
- Removed
promptMessageIOS
string argument fromLocalAuthentication.authenticateAsync
in favor of options object. (#4631 by @tsapeta) - Removed
Calendar.DEFAULT
and replaced it withnull
. (#4836 by @lukmccall)
- Added
fallbackLabel
option toLocalAuthentication.authenticateAsync
on iOS which allows to customize a title of the fallback button when the system doesn't recognize the user and asks to authenticate via device passcode. (#4612 by @changLiuUNSW) - added
native
mode for Android SplashScreen on standalone apps by @bbarthec (#4567) - added support for video recording in
ImagePicker.launchCameraAsync
. (#4903 by @lukmccall) - added support for
ph://
URLs toexpo-file-system
(#5195 by @sjchmiela)
- fixed
BarCodeScanner
blocking UI when defining custombarCodeTypes
on iOS by @sjchmiela - fixed picking images over 2000px on Android by @bbarthec (#4731)
- fixed
Calendar.getEventsAsync
crashing ifcalendarId
is SQL keyword by @lukmccall (#4836) - fixed
BOOL
interpretation on 32-bit iOS devices by @lukmccall (#4862) - fixed AV rejecting to further load an asset once any loading error occured (#5105) by @sjchmiela)
- fixed AV resetting player whenever props changed (#5106) by @sjchmiela)
- fixed bar code scanning crash if the result couldn't be converted to string (#5183) by @sjchmiela)
- fixed camera crash in standalone apps (#5194) by @sjchmiela)
- updated
react-native-gesture-handler
to1.2.1
by @mczernek (#4159) - updated
react-native-svg
to9.4.0
by @Szymon20000 and @mczernek (#3860, #4159) - updated
@react-native-community/netinfo
to2.0.10
by @sjchmiela (#4153) - updated
react-native-reanimated
to1.0.1
by @dsokal (#4023) - removed deprecated
MediaView
andTriggerView
fromexpo-ads-facebook
by @EvanBacon (#3539). You should useAdMediaView
&AdTriggerView
instead. - deprecated
Expo.Util
by @EvanBacon (#3539). You should useExpo.Updates
&Expo.Localization
instead. - removed use of
expolib_v1.okhttp
in favor of regularokhttp
dependency by @Szymon20000 (#3539) (an update toMainApplication.getOkHttpBuilder
may be required when upgrading) - corrected behavior of splash screen image based on
resizeMode
in Android standalone apps (contain
andcover
were handled contrary to what docs state) by @bbarthec (#3029) Speech.speak
changed option name fromvoiceIOS
tovoice
. @Szymon20000 (#3423)- renamed
Haptic
toHaptics
and deprecatedHaptics.{notification, impact, selection}
in favour ofHaptics.{notificationAsync, impactAsync, selectionAsync}
@bbarthec (#3330) ImageManipulator.manipulateAsync
is now acceptingImageManipulator.FlipType.{Vertical, Horizontal}
as flipping action parameter andImageManipulator.SaveFormat.{JPEG, PNG}
as saving option @bbarthec (#3245)- removed
devKernel
andprodKernel
build flavors from Android ExpoKit projects (all Gradle commands become simply[verb](Debug|Release)
, e.g.installDebug
orassembleRelease
) by @esamelson (#3386) - renamed
IntentLauncherAndroid
toIntentLauncher
and changed signature ofstartActivityAsync
method by @tsapeta (#3427) - fixed crash in
WebBrowser.openBrowserAsync
when there is no browser supportingcustomtabs
on Android by @mczernek (#3691) WebBrowser.openBrowserAsync
on Android resolves promise on opening Custom Tabs instead of on closing by @mczernek (#3691)WebBrowser.dismissBrowser
throwsUnavailabilityError
@mczernek (#3691)- added
staysActiveInBackground
audio mode option that selects whether audio playback or recording should continue when the app is in background by @sjchmiela and @redpandatronicsuk (#3498) - renamed the
EncodingTypes
attribute toEncodingType
in the FileSystem module docs to match changes in the source code by @sergeichestakov (#3997) - added a warning printed when attempting to store a value longer than 2048 bytes in the
SecureStore
. (Since SDK35 it will throw an error.) @dsokal (#4084) - added
UMAppDelegateWrapper
which allows easy integration between unimodules andAppDelegate
callbacks by @Szymon20000 (#3917) - changed
Constants.platform.ios.buildNumber
andConstants.platform.android.versionCode
tonull
when running an app in Expo Client by @dsokal (#4203) - upgraded
react-native-maps
to0.24.2
by @sjchmiela (#3389, #4158, ejected projects will need to addHAVE_GOOGLE_MAPS=1
preprocessor definition toPodfile
) - removed option
sortBy.id
inexpo-media-library
by @jkhales (#4221)
- updated
react-native-view-shot
to2.6.0
by @sjchmiela (#4175) - added
VideoThumbnails
API allowing you to thumbnail videos by @graszka22 (#3980) - upgraded
react-native-lottie
to2.6.1
by @sjchmiela (#4147) BarCodeScanner
is now returning barcode's bounding box @Szymon20000 (#2904)- added method
Speech.getAvailableVoicesAsync()
@Szymon20000 (#3423) - added
BackgroundFetch
support for Android by @tsapeta (#3281) - incorporated
react-native-webview@5.4.6
into Expo SDK by @sjchmiela (#3748) - added support for overriding MIME type in
IntentLauncherAndroid.startActivityAsync
for Android by @rhunt4675 (#3300) - added
Location.enableNetworkProviderAsync
method to ask the user to turn on high accuracy location services by @tsapeta (#3273) - upgraded Facebook Audience Network SDK dependency to 5.1.1 (iOS) by @sjchmiela (#3394)
- upgraded Facebook Core- and LoginKit dependency to 4.40.0 by @sjchmiela (#3394)
- upgraded Facebook SDK dependency to 5.0.1 (Android) by @sjchmiela
- upgraded
react-native-webview
to5.8.1
by @sjchmiela (#4146) - added Firebase integration to
expo-analytics-segment
by @sjchmiela (#3615) - added support for new arguments in
WebBrowser.openBrowserAsync
as described in the documentation by @mczernek (#3691) - added tags support in
KeepAwake.activate
andKeepAwake.deactivate
by @mczernek #3747 - added
deferredUpdatesInterval
anddeferredUpdatesDistance
options that defer background location updates by @tsapeta (#3548) - added
foregroundService
option to background location (Android Oreo and newer) by @tsapeta (#3837) - added support for picking animated GIFs with
ImagePicker
by @sjchmiela (#3844) - added support for headers in
downloadAsync
method inFileSystem
by @mczernek (#3911) - added support for custom poster styles in
Video
by @sjchmiela (#4165) - added
pausesUpdatesAutomatically
option to automatically pause background location updates based on theactivityType
by @tsapeta (#4167) - added ability to load fonts by remote URI by @seekshiva (#2745)
- added support for 64 bit platforms by @wkozyra95 (#4565)
- fixed several windows compatibility issues with
expo-yarn-workspaces
by @nattyrice - fixed several issues related to
expo-av
by @Szymon20000 (#3539) Location.getCurrentPositionAsync
andLocation.watchPositionAsync
are now automatically asking for high accuracy location services by @tsapeta (#3273)- fix
Location.getCurrentPositionAsync
hanging on simultaneous calls by @tsapeta (#3273) - fix
ImagePicker.launchImageLibraryAsync
andImageManipulator.manipulateAsync
in SDKs lower than 32 @bbarthec (#3159) - fix app crash when attempting to
console.log(Object.create(null))
by @juangl (#3143) GoogleSignInOptions.offlineAccess
is now correctedGoogleSignInOptions.isOfflineEnabled
- fix
SMS.sendSMSAsync
crash on android for empty addresses list. Promise won't be rejected when there is no TELEPHONY feature on Android device, only when there is no SMS app by @mczernek (#3656) - fix MediaPlayer not working on Android. by @mczernek (#3768)
- fix big
OkHttpClient
memory usage on Android (reuse instances) by @sjchmiela (#4264) - fixed
Localization.isRTL
always beingtrue
on iOS by @sjchmiela (#3792) - fixed adding/removing react children to
Camera
preview on Android by @bbarthec (#3904) - changed
FileSystem
requests timeout for downloading resumables from 10 seconds to 60 seconds on Android (now the timeout is 60s on both platforms) by @Szymon20000 (#3872) - removed unwanted downsampling of big images when using
ImageManipulator
on Android by @bbarthec (#3928) - fixed tablet splash always being shown in Expo Client if specified by @GfxKai (#3538)
- the
properties
parameter ofSegment.screenWithProperties
is now a{ [key: string]: any }
, instead of astring
by @juampi92 (#4053) - allow manipulating
http://
andhttps://
files usingImageManipulator
on iOS by @bbarthec (#3982) - providing
onPlaybackStatusUpdate
property toVideo
doesn't show a warning anymore by @sjchmiela (#4130) - calling
FileSystem.downloadAsync
will now raise an error when a target local directory doesn't exist by @dsokal (#4142) - flush UI blocks when needed, which fixes eg.
Camera.takePicture
not resolving on iOS by @sjchmiela (#4125) - fixed
MediaLibrary.createAssetAsync
crashing when supplying local asset URIs withoutfile://
protocol by @tsapeta (#4189) - fixed
EXC_BAD_ACCESS
crashes on startup on iOS below 12.0 by @tsapeta (#4227) - fix
jest-expo
Jest executable not starting Node on Windows by @Artorp (#3477) - fixed crashes in
TaskManager
due to jobs queue being full by @tsapeta (#4247) - allow console.log() function to log truncated large files instead of reporting a PayloadTooLargeError. @vivianzzhu91 (#4419)
- fixed sorting in
MediaLibrary.getAssetsAsync
by @ninjaachibi (#4420)
- deprecated
import { Font } from 'expo-font'
in favor of individually named exports (import * as Font from expo-font
) for better dead-export elimination potential. Upgrade@expo/vector-icons
if you get a warning about this. By @ide (264c17cd
) - removed deprecated internal Expo modules (
Crypto
,Fabric
, andImageCropper
), which were never part of the Expo API by @ide (#2880) - removed deprecated
Expo.Fingerprint
API, which has been renamed toExpo.LocalAuthentication
to reflect other forms of authentication (ex: FaceID) by @ide (24e94d5
) - removed deprecated default export from the
expo
package. Instead ofimport Expo from 'expo'
, writeimport { A, B, C } from 'expo'
orimport * as Expo from 'expo'
. By @ide (#2865) - removed deprecated support for passing an array into
Font.loadAsync
. This feature displayed a deprecation warning for several SDK versions so if you didn't see it, this change shouldn't affect you. - deprecated
enableHighAccuracy
option inLocation
module in favor ofaccuracy
which gives much more options by @tsapeta (#2338) - removed support for deprecated
onBarCodeRead
prop onCamera
component by @Szymon20000 (#2820) (useonBarCodeScanned
property) - updated underlying Stripe dependency to 8.1.0 on Android and 13.2.0 on iOS and updated
expo-payments-stripe
with latest updates totipsi-stripe
(up to 6.1.2) by @sjchmiela (#2766). This change dropped support for Bitcoin payments in SDK31. - removed
READ_SMS
use of permission on Android,SMS.sendSMSAsync
will now always resolve with{ result: 'unknown' }
by @esamelson (#2982) - upgraded Android build tools — Gradle to 4.10.2, Gradle plugin to 3.2.1 by @sjchmiela (
7292c27
,d0c8b8d
) - removed
run.sh
script fromandroid
directory in favor offastlane android start
command by @nicknovitski (9301e95
) - removed
minSdk
application flavor from Android project (all Gradle commands in format[verb][minSdkFlavor]minSdk[remoteKernelFlavor]Kernel[buildType]
, eg.assembleDevMinSdkDevKernelDebug
become[verb][remoteKernelFlavor]Kernel[buildType]
, eg.assembleDevKernelDebug
) by @sjchmiela (3b5e158
) - calling
Haptic
methods on Android will now raise an error instead of a warning by @EvanBacon (#2787)
- added locales on Android (
[ar, cs, de, es-rGT, fr, he, jt, ja, ko, nb, nl, pl, pt-rBR, ru-rRU, vi, zh, zh-rCN, zh-rTW]
) inImagePicker.{launchImageLibraryAsync, launchCameraAsync}
when using{ allowsEditing: true }
option by @bbarthec (#2955) - added support for passing refs created by
React.createRef
totakeSnapshotAsync
by @sjchmiela (#2771) - upgraded Gradle plugin (to 3.2.1) and its wrapper (to 4.10.2) by @sjchmiela (#2716)
- added new
TaskManager
module that paves the way to background code execution by @tsapeta (#2338) - added API for background location updates by @tsapeta (#2338)
- added geofencing to
Location
module by @tsapeta (#2338) - added new
BackgroundFetch
module (iOS only) by @tsapeta (#2338) - allowed Expo Jest preset to use TypeScript files by @dalcib (#2810)
- allowed selecting voice used by
Speech
on iOS by @pyankoff (#2833) - removed obsolete assets from standalone apps by @sjchmiela (#2850)
- added support for notifications categories by @Szymon20000 and @sjchmiela (#2316, #2557)
- upgraded libraries:
react-native-gesture-handler
to1.0.12
,react-native-screens
to1.0.0-alpha.22
,react-native-reanimated
to1.0.0-alpha.11
by @tsapeta and @sjchmiela (#2977, #3078, #3172, #3232)
- fixed problem with rerendering SVG (updated
react-native-svg
to8.0.10
) by @Szymon20000 (#3019) - fixed wrong type casting in SQLite result @Szymon20000 (#3005)
- fixed sending multiple consecutive SMS messages on iOS @bbarthec (#2939)
- fixed GLView initialization with texture of size 0 on Android by @bbarthec (#2907)
- fixed app cache size blowing up when using
ImagePicker
by @sjchmiela (#2750) - fixed compression in ImagePicker by @Szymon20000 (#2746)
- fixed
FileSystem
forbidding access to external directories by @Szymon20000 (#2748, #2808) - upgraded Facebook SDK dependency to 4.39 by @Szymon20000 and @sjchmiela (#2710, #3243)
- fixed object not beign decycled when sending logs to remote console by @sjchmiela (#2598)
- unified linear gradient behavior across platforms by @sjchmiela (#2624)
- fixed device orientation not being used when recording videos by @flippinjoe (expo-camera#2)
- fixed handling
quality
option passed toCamera.takePictureAsync
on Android properly by @Szymon20000 (#2692) - fixed resumable downloads on iOS by base64-encoding
resumeData
by @Szymon20000 (#2698) - fixed
Permissions.LOCATION
issue that wouldn't allow asking for it in a multi-permission call by @sjchmiela (304fe560) - fixed
onActivityResult
not being called on listeners registered toReactContext
by @sjchmiela (#2768) - fixed fatal exception being thrown sometimes on Android when detecting barcodes by @sjchmiela (#2772)
- fixed
GLView.takeSnapshotAsync
crashing on Android ifframebuffer
option is specified by @tsapeta (#2888) - fixed
onPlaybackStatusUpdate
not being called withdidJustFinish: true
when playing with looping enabled on Android by @sjchmiela (#2923) - fixed bundle building/downloading progress indicator not showing in ejected apps by @sjchmiela (#2951, #2954)
- fixed
subscription.remove()
not calling nativestopObserving()
for universal modules by @ide (#2897) - fixed calendar ID being returned as integer instead of a string on Android (when calling eg.
Calendar.createCalendarAsync
) by @Szymon20000 (#3004) - fixed wrong fling direction for inverted
ScrollView
s on Android by @mandrigin (pulled in from React Native facebook/react-native@b971c5b) - fixed snapping Android
ScrollView
s withpagingEnabled
by @olegbl (pulled in from React Native facebook/react-native@0869e54) - fixed
Contacts
failing to add and remove contacts on Android by @tsapeta (#3017) - fixed
Permissions.CONTACTS
not asking for Android'sWRITE_CONTACTS
permission by @tsapeta (#3017)
- updated
react-native-maps
JS dependency to0.22.1
by @sjchmiela (ebb536c
)
- upgraded
react-native-gesture-handler
JS dependency to1.0.9
by @brentvatne (ebb5cec
)
- fix filtering out warnings about
require
cycles innode_modules
by @serhiipalash (aaf72bf
) - fix
resizeMode
prop ofVideo
component by @ide (886b67d
)
- pass
undefined
through forstartPoint
andendPoint
rather thannull
inLinearGradient
by @brentvatne (643969
) - remove require cycle in AV by @ide (
18d54da
)
- The default export from the expo package is deprecated in favor of named exports to pave the way for static analysis tools by @ide (#2387)
- remove default
user_friends
permission when authenticating withFacebook
module by @EvanBacon (2ad86fad
) - dropped iOS 9 support by @Szymon20000 (#2324)
- upgrade
react-native-svg
to8.0.8
by @sjchmiela and @esamelson (#2492) - upgrade React Native to
v0.57.1
by @ide (series of commits, eg.250589
) - change
translation
field toadTranslation
in an ad object returned byFacebookAds.NativeAdView
by @ide (ece59aa
) - refreshed, bug-free
Localization
API by @EvanBacon (#2327) - drop Android 4.4 support by @bbarthec (#2367)
- upgrade underyling Facebook SDK native dependencies to
4.37.0
by @sjchmiela (#2508) - upgrade
react-native-view-shot
to2.5.0
by @sjchmiela (#2518) - upgrade
react-native-maps
to0.22.1
by @tsapeta and @sjchmiela (#2496, #2680) FacebookAds.TriggerableView
is nowFacebookAds.AdTriggerView
FacebookAds.MediaView
is nowFacebookAds.AdMediaView
- The Speech API’s "onError" function is passed an
Error
instead of a string - Flow types have been removed as we begin to migrate to TypeScript over the next few SDK releases
- Several Haptic enum types have been renamed: NotificationTypes → NotificationFeedbackType, ImpactStyles → ImpactFeedbackStyle
- Several AR enum types have been renamed: BlendShapes → BlendShape, FaceAnchorProps → FaceAnchorProp, PlaneDetectionTypes → PlaneDetection, WorldAlignmentTypes → WorldAlignment, EventTypes → EventType, AnchorTypes → AnchorType, AnchorEventTypes → AnchorEventType, FrameAttributes → FrameAttribute, TrackingStates → TrackingState, TrackingStateReasons → TrackingStateReason, TrackingConfigurations → TrackingConfiguration
Audio.Sound.create
has been renamed tocreateAsync
- Upgrade Babel to
7.0.0
by @ide (#2373)
- return permitted/declined permissions arrays when authenticating with
Facebook
module by @EvanBacon (2ad86fad
) - Base64 encoding support for
FileSystem
by @EvanBacon (#2328) - video stabilization support in
Camera
by @n8 (#2241) - add support for asking for an authorization to always access location data by @sjchmiela (#2343)
- upgrade
react-native-gesture-handler
to1.0.8
,react-native-reanimated
to1.0.0-alpha.10
,react-native-screens
to1.0.0-alpha.15
by @brentvatne (eb2a463
,9bf1754
) - add
Segment.{get,set}EnabledAsync
feature by @sjchmiela (#2412) - add an Android-only
timeout
option toLocation.getCurrentPositionAsync
by @bbarthec (#2369) - add support for providing custom headers to send when requesting media source by @sjchmiela (#2431)
- add
Segment.alias
support by @sjchmiela (#2440) - upgrade Android JSC to
r224109
by @esamelson and @Kmakinator (#2437) - add
LocalAuthentication.supportedAuthenticationTypes
method by @bbarthec (#2450) - add support for new Apple devices to
Constants
by @tsapeta (#2410)
- fix
react-native-svg
toDataURL()
method throwing error (undefined is not an object (evaluating 'RNSVGSvgViewManager.toDataURL')
) on Android by @sjchmiela (#2492) - fix nested traits and properties being stringified on Android in the Segment module, instead of being reported as objects by @sjchmiela (expo-analytics-segment#2, #2517)
- handle specified
behavior
on Android when authenticating withFacebook
by @EvanBacon (2ad86fad
) - fix
MediaLibrary
returning stale assets fromgetAssetsAsync
by @Aasfga (#2106,09cba8d
) - fix
Pedometer.watchStepCount
erroring on Android by @Szymon20000 (#2147,dea2967
) - fix Branch links not working when first opened on iOS by @AdamPD (#2158)
- asking for
Permissions.BRIGHTNESS
no longer throwsAbstractMethodError
exception on some Android devices by @bbarthec (#2342) - properly handle some screen orientation configurations (on iPhone X
PortraitUpsideDown
is not supported) by changing syncScreenOrientation.allow
method to asyncScreenOrientation.allowAsync
throwing an error when trying to set an unsupported screen orientation configuration by @bbarthec (af2d7e3
) - fix
Linking.getInitialURL
returning acustomschemed://
URL instead of the one that really redirected to the application by @schneidmaster (#2352) - fix
FaceDetector
settings not being applied on the first run by @sjchmiela (#2308) - update
cameraview
AAR for it to containgetCameraId()
method by @sjchmiela (expo-camera#4, #2323) - fix rerendering of ads provided by
FacebookAds
module by @ide (85f2014
) - fix a fatal exception being thrown when pausing a resumable download on iOS 12 by @sjchmiela (#2404)
- fix universal modules being initialized twice by @sjchmiela (#2417)
- fix media players refusing to redirect from a HTTPS URL to another HTTPS URL on Android by @sjchmiela (#2403)
- fix
SMS.sendSMSAsync
not returning correct result on Android by @bbarthec (#2452) - fix barcode scanner not working on Pixel 2 by @alexshikov (#2081)
- fix “Font doesn't support automatic scaling” errors on iOS < 12 by @sjchmiela (#2480)
- fix missing “Orientation” tag in
ImagePicker
EXIF data by @bbarthec (#2432) - fix
react-native-screens
compatibility with Expo by @tsapeta (#2509)