This is the log of notable changes to the Expo client that are developer-facing. Package-specific changes not released in any SDK will be added here just before the release. Until then, you can find them in changelogs of the individual packages (see packages directory).
- Updated
react-native-webview
from11.13.0
to11.15.0
. (#15330 by @tsapeta) - Updated
react-native-shared-element
from0.8.2
to0.8.3
. (#15338 by @kudo) - Updated
lottie-react-native
from4.0.3
to5.0.1
. (#15345 by @kudo) - Updated
@react-native-community/slider
from4.1.4
to4.1.12
. (#15356 by @EvanBacon) - Updated
@react-native-community/datetimepicker
from3.5.2
to4.0.0
. (#15357 by @EvanBacon) - Updated
@react-native-community/netinfo
from6.0.2
to7.1.3
. (#15352 by @kudo) - Updated
@react-native-masked-view/masked-view
from0.2.5
to0.2.6
. (#15362 by @brentvatne) - Updated
react-native-maps
from0.28.1
to0.29.4
. (#15397 by @bbarthec) - Updated
react-native-pager-view
from5.4.6
to5.4.9
. (#15348 by @brentvatne) - Updated
@stripe/stripe-react-native
from0.2.2
to0.2.3
. (#15396 by @brentvatne and @kudo) - Updated
react-native-gesture-handler
from1.10.3
to2.1.0
. (#15404 & #15568 by @kudo) - Updated
react-native-screens
from3.8.0
to3.10.1
. (#15416 by @bbarthec) - Updated
react-native-reanimated
from2.2.3
to2.3.1
. (#15475 & #15574 by @Kudo)
expo-ads-admob
expo-blur
expo-constants
- Deprecated
Constants.deviceYearClass
, moved toexpo-device
-Device.deviceYearClass
(#14691 by @EvanBacon) - Deprecated
Constants.platform.ios.model
, moved toexpo-device
-Device.modelName
(#14691 by @EvanBacon) - Remove deprecated
Constants.deviceId
. (#15280 by @Simek) - Remove legacy
Constants.linkingUrl
alias. (#15280 by @Simek)
- Deprecated
expo-device
- Changed naming format of
modelName
to be more consistent (#14670 by @EvanBacon)
- Changed naming format of
expo-firebase-analytics
- Deprecates
setCurrentScreen
and removes the native API calls to support the latest Firebase SDKs. (#14366 by @IjzerenHein)
- Deprecates
expo-image-picker
expo-linking
expo-location
expo-constants
- Added support for iOS 15.0 devices (#14640 by @EvanBacon)
expo-device
- Added support for iOS 15.0 devices (#14640 by @EvanBacon)
- Moved
modelName
implementation to native (#14670 by @EvanBacon)
expo-document-picker
- [plugin] Added
iCloudContainerEnvironment
prop for setting thecom.apple.developer.icloud-container-environment
entitlement (#14885 by @EvanBacon)
- [plugin] Added
expo-firebase-analytics
- Add support for
setSessionTimeoutDuration
on iOS. (#14364 by @IjzerenHein)
- Add support for
expo-firebase-core
- [iOS] Firebase native app will automatically be initialized without any extra native changes (#14750 by @EvanBacon)
expo-gl
- Add support for reanimated worklets. (#15296 by @wkozyra95)
expo-localization
expo-location
- Added steetNumber to
reverseGeocodeAsync
for iOS (#13556 by @chrisdrackett)
- Added steetNumber to
expo-sqlite
- Removed lodash. (#12523 by @EvanBacon)
expo-analytics-amplitude
expo-av
- Fix require cycles (#14820 by @EvanBacon)
- On Web, do not try to attach fullscreen listener, when component
ref
isnull
. (#14713 by @Simek)
expo-barcode-scanner
- Fixed
BarCodeScanner
only scans on the first mount on Android. (#15393 by @lukmccall) - Fixed crashes caused by the Zxing scanner on Android. (#15394 by @lukmccall)
- Fixed
expo-blur
expo-calendar
- [Android] Fix
allowModifications
always return false in calendar object. (#15307 by @jekiwijaya)
- [Android] Fix
expo-camera
expo-asset
- Fix
fromModule
on restrictive (Snack) web environments. (#14435 by @IjzerenHein)
- Fix
expo-constants
- Don't include fonts from family "System Font" (introduced by iOS 15) (#14577 by @brentvatne)
- Fix
Constants.deviceId has been deprecated in favor of generating and storing your own ID.
warnings in classic react-native projects. (#14837 by @kudo) - Fix NODE_BINARY not found build error when using nvm via zsh (#14895 by @filipengberg)
expo-firebase-core
expo-file-system
- Fixed
uploadAsync
failing to resolve when usingBINARY_CONTENT
. (#14764 by @cruzach) - Fix
okio
library build error for[email protected]
or above. (#14761 by @kudo)
- Fixed
expo-image-picker
expo-image-manipulator
- Fix
Tainted canvases may not be exported
CORS error on web. (#14739 by @IjzerenHein)
- Fix
expo-location
- Call
jobService.jobFinished
for the finished geofencing jobs. (#14786 by @mdmitry01) - Check for null value of
mLocationClient
to prevent a crash (#15023 by @zakharchenkoAndrii)
- Call
expo-print
- Fix page-breaks and margins not supported on iOS (#14383 by @cruzach) (#14802 by @IjzerenHein)
expo-sensors
- Fix Android crash caused by
assertSubscriptionAlive
method (#14720 by @zakharchenkoAndrii)
- Fix Android crash caused by
expo-ads-facebook
expo-app-auth
- Added deprecation notice for module. (#15293 by @EvanBacon)
expo-av
expo-calendar
expo-camera
- Rewrite module to Kotlin. (#14717 by @mstach60161)
- [plugin] Use more specific gradle variable name. (#14966 by @EvanBacon)
expo-cellular
expo-constants
expo-facebook
- Rewritten module to Kotlin. (#14572 by @mstach60161)
expo-face-detector
- Rewritten module to Kotlin. (#14943 by @mstach60161)
expo-firebase-core
- [plugin] Native regular expressions have been removed in favor Expo modules AppDelegate proxy (#14750 by @EvanBacon)
expo-haptics
expo-google-app-auth
- Added deprecation notice for module. (#15294 by @EvanBacon)
expo-google-sign-in
- Added deprecation notice for module. (#15295 by @EvanBacon)
expo-image-picker
- Export missing types:
ImageInfo
,ImagePickerMultipleResult
,OpenFileBrowserOptions
,ExpandImagePickerResult
,UIImagePickerControllerQualityType
andUIImagePickerPresentationStyle
. (#14646 by @Simek) - Extract return object containing
{ cancelled: true }
to separate typeImagePickerCancelledResult
forlaunchCameraAsync
andlaunchImageLibraryAsync
methods. (#14646 by @Simek)
- Export missing types:
expo-intent-launcher
expo-linear-gradient
- Rewrote code to Swift, removed legacy Objective-C module implementation and changed the pod name to
ExpoLinearGradient
. (#15168 by @tsapeta) - Rewrote module using Sweet API on Android. (#15166 by @lukmccall)
- Rewrote code to Swift, removed legacy Objective-C module implementation and changed the pod name to
expo-linking
expo-localization
- Rewrite module to Kotlin. (#14588 by @mstach60161)
expo-location
expo-media-library
expo-notifications
expo-screen-orientation
- [plugin] Added SDK 43 tests for new AppDelegate template (#14763 by @EvanBacon)
- The app delegate subscriber on iOS has been separated from the singleton module to hook into the new implementation of
ExpoAppDelegate
. (#14867 by @tsapeta)
expo-sqlite
expo-screen-orientation
- Updated
react-native-shared-element
from0.7.0
to0.8.2
. (#14245 by @IjzerenHein) - Updated
firebase
from8.2.3
to8.10.0
. (#14259 by @IjzerenHein) - Updated
@react-native-community/netinfo
from6.0.0
to6.0.2
. (#14329 by @cruzach) - Updated
react-native-webview
from11.6.2
to11.13.0
. (#14301 by @kudo) - Updated
react-native-lottie
from4.0.2
to4.0.3
. (#14331 by @cruzach) - Updated
@stripe/stripe-react-native
from0.1.4
to0.2.2
. (#14357 & #14452 by @cruzach) - Updated
react-native-safe-area-context
from3.2.0
to3.3.2
. (#14303 by @kudo) - Updated
@react-native-community/viewpager
from5.0.11
to[email protected]
. (#14348 by @cruzach) (#14657 by @kudo) - Updated
@react-native-picker/picker
from1.6.7
to2.1.0
. (#14358 by @ajsmth) - Updated
react-native-screens
from3.4.0
to3.8.0
. (#14330 by @cruzach) (#14544 by @kudo)
- Updated
@expo/config-plugins
(#14798 by @jkhales) - Updated
@expo/config-types
(#14798 by @jkhales) - Removed
expo-payments-stripe
. Please use@stripe/stripe-react-native
instead. (#14382 by @cruzach) - Updated firebase to version 9.0.2, including support for compat libraries and new modular style. (#14616 by @sebastianwilczek)
navigator.geolocation
is no longer defined automatically as a side effect of theexpo
package. It previously provided a warning that you needed to installexpo-location
. (#14441 by @brentvatne- Require scopeKey in custom push notifications. (#12964 by @wschurman
expo-ads-admob
expo-ads-facebook
expo-analytics-amplitude
expo-analytics-segment
expo-app-auth
expo-apple-authentication
expo-av
- Dropped support for iOS 10.0 (#11344 by @tsapeta)
- Default audio recording settings on ios are now
extension: '.m4a'
andoutputFormat: RECORDING_OPTION_IOS_OUTPUT_FORMAT_MPEG4AAC
so as to ensure cross-platform compatibility. (#13492 by @actuallymentor) - Dropped support for iOS 11.0 (#14383 by @cruzach)
expo-background-fetch
expo-barcode-scanner
expo-battery
expo-application
expo-blur
expo-brightness
expo-branch
expo-calendar
expo-camera
expo-constants
expo-contacts
expo-crypto
expo-cellular
expo-device
expo-document-picker
expo-face-detector
expo-error-recovery
expo-file-system
- Added
AndroidManifest.xml
queries for intent handling. (#13388 by @EvanBacon) - Dropped support for iOS 11.0 (#14383 by @cruzach)
- Added
expo-facebook
- [plugin] Removed swift noop file plugin. (#13532 by @EvanBacon)
- Dropped support for iOS 11.0 (#14383 by @cruzach)
expo-firebase-core
expo-firebase-analytics
expo-font
expo-gl
expo-haptics
expo-google-sign-in
expo-image-manipulator
expo-image-picker
expo-intent-launcher
expo-image-loader
expo-linear-gradient
expo-keep-awake
expo-localization
expo-local-authentication
expo-location
expo-mail-composer
- Added
AndroidManifest.xml
queries for intent handling. (#13388 by @EvanBacon) - Dropped support for iOS 11.0 (#14383 by @cruzach)
- Added
expo-media-library
expo-network
expo-print
expo-notifications
expo-permissions
expo-screen-capture
expo-screen-orientation
expo-secure-store
expo-sharing
expo-sensors
expo-sms
- Added
AndroidManifest.xml
queries for intent handling. (#13388 by @EvanBacon) - Dropped support for iOS 11.0 (#14383 by @cruzach)
- Added
expo-random
expo-speech
expo-sqlite
expo-store-review
expo-task-manager
- [plugin] Moved
UIBackgroundModes
location
to theexpo-location
plugin (#14142 by @EvanBacon) - Dropped support for iOS 11.0 (#14383 by @cruzach)
- [plugin] Moved
expo-web-browser
expo-video-thumbnails
unimodules-task-manager-interface
unimodules-app-loader
expo-ads-admob
expo-ads-facebook
expo-av
- [av] Delete
prop-types
in favor of TypeScript. (#8679 by @EvanBacon) - [av] Directly import
createElement
fromreact-native-web
for RNW v12 support. (#8773 by @EvanBacon) - Created config plugins (#11538 by @EvanBacon)
- Add optional sound level information in
RecordingStatus
object described withmetering
key. AddisMeteringEnabled
flag inRecordingOptions
to enable computing this information. The flag is set totrue
by default inRecordingOptions
presets (RECORDING_OPTIONS_PRESET_HIGH_QUALITY
,RECORDING_OPTIONS_PRESET_LOW_QUALITY
). (#10759 by @danieloi) - Converted plugin to TypeScript. (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec)
- [plugin] Added Android
android.permission.MODIFY_AUDIO_SETTINGS
permission. (#13163 by @EvanBacon) - Remove lodash and nullthrows. (#12522 by @EvanBacon)
- Add new
Recording.createAsync
API for faster recording on iOS. (#12294 by @IjzerenHein) - Add
keepAudioActiveHint
recording option to prevent deactivation of the Audio session when recording on iOS. (#12294 by @IjzerenHein) - Allow video audio to continue to play in the background on iOS. (#12950 by @matt-oakes)
- [plugin] Added ability to disable microphone permission via
microphonePermission: false
. (#13446 by @EvanBacon) - Add web support for recording. (#8721 by @WazzaJB and @mnightingale) (#8721 by @WazzaJB, @mnightingale)
- Add permissions support for web. (#8721 by @mnightingale)
- Add Audio
usePermissions
hook from modules factory. (#13851 by @bycedric) - On iOS, add Audio metadata (title) updates via
setOnMetadataUpdate
. (#14134 by @dani-mp)
- [av] Delete
expo-asset
expo-background-fetch
- Use stable manifest ID where applicable. (#12964 by @wschurman)
expo-auth-session
- Update JS code to read manifest2 when manifest is not available. (#13602 by @wschurman)
expo-barcode-scanner
expo-brightness
expo-calendar
expo-camera
expo-constants
- Use stable manifest ID where applicable. (#12964 by @wschurman)
- Update JS code to read manifest2 when manifest is not available. (#13602 by @wschurman)
- Update location of EAS projectId in new manifest. (#13739 by @wschurman)
- Update location of scopeKey in new manifest. (#13817 by @wschurman)
expo-cellular
expo-facebook
expo-firebase-core
- Update JS code to read manifest2 when manifest is not available. (#13602 by @wschurman)
expo-firebase-analytics
- Add support for logging the
items
array tologEvent
(#14189 by @IjzerenHein) - Update JS code to read manifest2 when manifest is not available. (#13602 by @wschurman)
- Update TS typings to allow null user property values. (#14105 by @kylerjensen)
- Add support for logging the
expo-google-sign-in
- [plugin] Created expo config plugin to disable arm64 for simulator builds. (#13989 by @EvanBacon)
expo-image-manipulator
- Support loading base64 data URIs on iOS. (#13725 by @mnightingale)
expo-image-picker
- Add useCameraPermissions and useMediaLibraryPermissions hooks from modules factory. (#13859 by @bycedric)
- Add possibility to change presentation style on iOS. (#14068 by @mstach60161)
expo-linking
- Update JS code to read manifest2 when manifest is not available. (#13602 by @wschurman)
expo-location
- [plugin] Added
isIosBackgroundLocationEnabled
to enable the background location UIMode (#14142 by @EvanBacon) - Use stable manifest ID where applicable. (#12964 by @wschurman)
- Add useForegroundPermissions and useBackgroundPermissions hooks from modules factory. (#13860 by @bycedric)
- [plugin] Added
expo-media-library
- Added
isAvailableAsync
method. (#13418 by @danielmark0116) - Add
usePermissions
hook from modules factory. (#13862 by @bycedric)
- Added
expo-print
- Add
markupFormatterIOS
option inprintToFileAsync
on iOS (default option can't handle html page breaks). (#13799 by @mstach60161) - Deprecate
markupFormatterIOS
(string) in favor ofuseMarkupFormatter
(boolean). (#13897 by @mstach60161)
- Add
expo-notifications
- Update JS code to read manifest2 when manifest is not available. (#13602 by @wschurman)
- Add usePermissions hook from modules factory. (#13863 by @bycedric)
expo-store-review
- Update JS code to read manifest2 when manifest is not available. (#13602 by @wschurman)
expo-task-manager
- Use stable manifest ID where applicable. (#12964 by @wschurman)
unimodules-task-manager-interface
- Use stable manifest ID where applicable. (#12964 by @wschurman)
unimodules-app-loader
- Use stable manifest ID where applicable. (#12964 by @wschurman)
expo-ads-admob
expo-ads-facebook
expo-analytics-amplitude
expo-analytics-segment
expo-app-auth
expo-apple-authentication
expo-av
- Fix unable to call presentFullScreenPlayer twice. (#8343 by @IjzerenHein)
- Fixed multiplied callbacks in
expo-av
after replaying (#7193 by @mczernek) - Fixed
Plaback.loadAsync()
return type. (#7559 by @awinograd) - Fixed the adaptive streaming for exoplayer on android. (#8380 by @watchinharrison) (#8363 by @watchinharrison)
- Allow playing media files embedded as resources in an Android APK. (#8936 by @esamelson)
- Fix stability issues when changing source and/or useNativeControls on iOS. (#9381 by @IjzerenHein)
- Fix stability issue due to player-item observers not cleaned up on iOS. (#9350 by @IjzerenHein)
- Fix audio recording not working after reload app in iOS. (#9283 by @IjzerenHein)
- Fix native fullscreen events not emitted on iOS. (#9323 by @IjzerenHein)
- Fix duplicate full-screen will-dismiss event on iOS. (#9366 by @IjzerenHein)
- Fix mem-leak when unmounting Video component on iOS. (#9379 by @IjzerenHein)
- Fix audio not resumable when app is in background on iOS (react-native-music-control usage). (#9363 by @IjzerenHein)
- Fix posterStyle warning. (#9384 by @IjzerenHein)
- Fix audio-session not de-activated after unloading sound on iOS. (#9365 by @IjzerenHein)
- Fix debugger break in XCode when removing observations. (#9334 by @IjzerenHein)
- Removed unused and potentionally unsafe call on iOS. (#9436 by @IjzerenHein)
- Fix onReadyForDisplay not emitted for HLS streams/m3u8 files on iOS. (#9443 by @IjzerenHein)
- Fix progress events when no playback is active on Android. (#9545 by @IjzerenHein)
- Fix Video resizeMode not updated on Android. (#9567 by @IjzerenHein)
- Fix Video source always reloaded when changing props on Android. (#9569 by @IjzerenHein)
- Fix blank Video after unlocking screen. (#9586 by @IjzerenHein)
- Fix exception on Android when loading invalid Video source. (#9596 by @IjzerenHein)
- Fix Audio prepareToRecordAsync after it failed once on iOS. (#9612 by @IjzerenHein)
- Improve error-messages on iOS. (#9618 by @IjzerenHein)
- Fix orientation being returned incorrectly for videos in portrait mode in onReadyForDisplay on iOS. (#10449 by @lachenmayer)
- Fix looping stops after 3 times on iOS. (#10602 by @IjzerenHein)
- Fix Audio.stopAndUnloadAsync not handling no-data on Android. (#9877 by @IjzerenHein)
- Fixed minor syntax error in
AVManager
. (#11375 by @sjchmiela) - Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne)
- Fixed the web Video Fullscreen APIs in Safari (#12258 by @elliotdickison)
- Enable kotlin in all modules. (#12716 by @wschurman)
- Fixed an issue with Audio Interruption Mode not correctly being set on Android. (#13236 by @matt-oakes)
- Fix inline playback on Safari iOS (web). (#13628 by @andreibarabas and @IjzerenHein) (#13628 by @andreibarabas, @IjzerenHein)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Fixed
JNI DETECTED ERROR IN APPLICATION: java_object == null in call to GetObjectClass from void versioned.host.exp.exponent.modules.api.reanimated.NativeProxy$EventHandler.receiveEvent
on Android. (#14569 by @lukmccall)
expo-background-fetch
expo-auth-session
expo-barcode-scanner
expo-battery
expo-application
expo-blur
expo-brightness
expo-branch
expo-calendar
expo-camera
- Fix QR code scanner in expo web by updating
@koale/useworker
to^4.0.2
(#14138 by @fguitton) (#13341 by @fguitton) - Update video codec validation to properly reject an invalid codec option. (#13341 by @ajsmth)
- Add
get/requestMicrophonePermissionsAsync()
andget/requestCameraPermissionsAsync()
methods to named exports. (#13621 by @ajsmth) - Fix regression in video quality option of recordAsync() (#13659 by @ajsmth)
- Update permission validation to check for only camera permissions in
initWithModuleRegistry()
(#13690 by @ajsmth) - Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Fix QR code scanner in expo web by updating
expo-constants
- fix
__dir__
absolute path in script_phase making an inconsistent Podfile.lock. (#13610 by @kudo) - Fix
PROJECT_ROOT
path resolution inget-app-config-ios.sh
. (#13439 by @ajsmth) - Fix app.config not generated. (#13667 by @kudo)
- Fix build phase error in xcode for nodejs possibly not found in nvm. (#14047 by @kudo)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Don't include fonts from family "System Font" (introduced by iOS 15) (#14577 by @brentvatne)
- fix
expo-contacts
- Fixed Android intent XML parsing issues. (#13401 by @quicksnap)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
expo-crypto
expo-cellular
expo-device
expo-document-picker
- Added
AndroidManifest.xml
queries for intent handling. (#13388 by @EvanBacon) - Added possibility to pass mimetypes array in order to set multiple mimetypes, fix bug with default mimetype. (#13751 by @mstach60161)
- Added mimetype to getDocumentAsync result. (#13702 by @mstach60161)
- Fixed file uri. (#13678 by @mstach60161)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Added
expo-face-detector
expo-error-recovery
expo-file-system
getFreeDiskStorageAsync
now correctly reports free disk space on iOS. (#14279 by mickmaccallum)- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
expo-facebook
logPurchaseAsync
on iOS now accepts anNSNumber
type, which has no user-facing impact besides fixing an error message in the App Events console. (#13369 by @cruzach)- Update error handler for
logInWithReadPermissionsAsync
to handle empty userInfo in native exception. (#14492 by @ajsmth) - Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
expo-firebase-core
expo-firebase-analytics
- Fix
logEvent
exception on Android when using arrays. (#14189 by @IjzerenHein) - Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Using compat firebase libraries in version 9.0.2. (#14400 by @sebastianwilczek)
- Fix
expo-font
expo-gl
- Remove
OES_vertex_array_object
from list of supported extensions. (#14299 by @wkozyra95) - Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Remove
expo-haptics
expo-google-sign-in
expo-image-manipulator
- Fix resize action validator to allow providing just one of
width
orheight
. (#13369 by @cruzach) - Fix incorrect compression used when
0
is requested on web. (#13728 by @mnightingale) - Fix Android
manipulateAsync
returns incorrect height (original unmanipulated height). (#13726 by @mnightingale) - Fixed Android to use filename extension consistent with other platforms. (#13726 by @mnightingale)
- Fixed rotation direction to be clockwise on web. (#13760 by @mnightingale)
- Fixed web support for multiple actions. (#14056 by @mnightingale)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Added missing dependency on
expo-image-loader
. (#14585 by @tsapeta)
- Fix resize action validator to allow providing just one of
expo-image-picker
- Add missing
GPSHPositioningError
exif parameter on Android. (#13998 by @mstach60161) - Fix promise not resolving when the app is moved to the background on Android. (#13975 by @mstach60161)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Add missing
expo-image-loader
expo-linear-gradient
expo-keep-awake
expo-localization
expo-local-authentication
expo-location
expo-mail-composer
expo-media-library
- Restore location exif data getter for Android 10+ devices. (#14413 by @ajsmth)
- EXIF parsing failure no longer crashes the
getAssetsAsync
andgetAssetInfoAsync
, the promise returnsexif: null
instead. (#14408 by @barthap) - Fixed
createAssetAsync
andsaveToLibraryAsync
on Android 11. (#14518 by @barthap) - Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Fix permissions always returning denied on android api < 29. (#14570 by @kudo)
- Fix unhandled rejection when asset creation fails on Android. (#14583 by @barthap)
expo-network
expo-print
expo-notifications
- Fixed Android notifications not respecting the
shouldPlaySound
property insetNotificationHandler
. (#13411 by @cruzach) - Force device ID to lowercase before sending to Expo's servers. (Only applicable if you're using
ExpoPushToken
s). (#13409 by @cruzach) - Fixed plugin to not throw if the notification icon isn't set, and there's no notification icon present in the Android project. (#13539 by @cruzach)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Fixed Android notifications not respecting the
expo-permissions
expo-screen-capture
expo-screen-orientation
- Fixed an issue with building on Xcode 13. (#13898 by @cruzach)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Fixed integration with the
react-native-screens
orientation prop. (#14541 by @lukmccall) - Fixed orientation lock not working in bare workflow on iOS. (#14543 by @tsapeta)
expo-secure-store
expo-sharing
expo-sensors
expo-sms
expo-random
expo-speech
expo-sqlite
expo-store-review
expo-task-manager
expo-web-browser
- Fixed
openAuthSessionAsync
erroneously stating a browser was open when it had failed to open. (#14181 by @sumnerwarren) - Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Fixed
expo-video-thumbnails
- Set thumbnail generator tolerances to 0 in order to accurately retrieve an image at a specific time. (#14253 by @tamagokun)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
unimodules-task-manager-interface
unimodules-app-loader
expo-ads-admob
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13757 by @tsapeta) - Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Migrated from
expo-ads-facebook
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13757 by @tsapeta) - Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Migrated from
expo-analytics-amplitude
expo-analytics-segment
expo-app-auth
- Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Updated
expo-apple-authentication
- Extend the
AppleAuthenticationButton
component type by theView
component type. (#13567 by @Simek) - Exclude
backgroundColor
andborderRadius
properties from theAppleAuthenticationButton
's style prop. These two are invalid forAppleAuthenticationButton
, but TypeScript allowed the usage of them; instead usebuttonStyle
andcornerRadius
props repsectively. (#13567 by @Simek) - Migrated from
@unimodules/core
toexpo-modules-core
. (#13757 by @tsapeta) - Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Extend the
expo-av
expo-asset
expo-background-fetch
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13757 by @tsapeta) - Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Migrated from
expo-barcode-scanner
expo-battery
- Rewrite BatteryModule from Java to Kotlin. (#13504 by @mstach60161)
- Add unit tests. (#13629 by @mstach60161)
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13757 by @tsapeta)
expo-application
expo-blur
expo-brightness
expo-branch
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13757 by @tsapeta) - Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Migrated from
expo-calendar
expo-camera
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13750 by @tsapeta) - Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Migrated from
expo-constants
expo-contacts
- Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Updated
expo-crypto
expo-cellular
expo-device
expo-document-picker
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13757 by @tsapeta) - Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Migrated from
expo-face-detector
expo-error-recovery
expo-file-system
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13749 by @tsapeta) - Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Migrated from
expo-facebook
expo-font
expo-gl
expo-haptics
expo-image-manipulator
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13757 by @tsapeta) - Refactored web to pass canvases to each action avoiding multiple calls to
toDataURL
. (#14145 by @mnightingale)
- Migrated from
expo-image-picker
- Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Updated
expo-linear-gradient
expo-keep-awake
expo-local-authentication
- Rewrite module from Java to Kotlin. (#13582 by @mstach60161)
- Updated
@expo/config-plugins
(#14443 by @EvanBacon)
expo-location
- Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Updated
expo-mail-composer
expo-media-library
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13755 by @tsapeta) - Added
AlbumType
andMediaSubtype
types, added missingorientation
key to theAsset
type. (#13936 by @Simek) - Remove
assets-library://
uri scheme usage in favour ofph://
(#14173 by @ajsmth) - Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Migrated from
expo-network
expo-print
- Rewrite print module from Java to Kotlin. (#13538 by @mstach60161)
- Migrated from
@unimodules/core
toexpo-modules-core
. (#13757 by @tsapeta)
expo-notifications
- Updated
@expo/config-plugins
,@expo/image-utils
(#14443 by @EvanBacon)
- Updated
expo-permissions
expo-screen-capture
expo-screen-orientation
- Export missing
Subscription
type. (#14150 by @Simek) - Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Export missing
expo-secure-store
expo-sharing
expo-sensors
- Converted Android code to Kotlin (#13738 by @ixf)
- Updated
@expo/config-plugins
(#14443 by @EvanBacon)
expo-sms
expo-random
expo-speech
expo-sqlite
expo-store-review
expo-task-manager
- Updated
@expo/config-plugins
(#14443 by @EvanBacon)
- Updated
expo-web-browser
expo-video-thumbnails
expo-av
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta)
expo-constants
- Updated
lottie-react-native
from3.5.0
to4.0.2
. (#13151 by @tsapeta) - Updated
@react-native-picker/picker
from1.9.11
to1.16.1
. (#13152 by @ajsmth) - Updated
@react-native-community/datetimepicker
from3.2.0
to3.5.2
. (#13162 by @cruzach) - Updated
react-native-screens
from3.0.0
to3.3.0
. (#13159 by @tsapeta) - Updated
react-native-reanimated
from2.1.0
to2.2.0
. (#13161 by @lukmccall) - Updated
react-native-svg
from12.1.0
to12.1.1
. (#13154 by @brentvatne) - Updated
react-native-webview
from11.2.3
to11.6.2
. (#13188 by @kudo) - Updated
@react-native-community/masked-view
to@react-native-masked-view/masked-view
0.2.4
(note: old package is compatible with underlying native code still) (#13212 by @brentvatne)
expo-battery
expo-constants
- Remove the
xde
property fromConstants.manifest
. (#12438 by @fson) (#12438 by @fson) - Update
@expo/config
to includecurrentFullName
in embedded config manifest. Related PR on expo-cli. - Add new manifest2 field and make existing field optional. (#12817 by @wschurman) (#12817 by @wschurman)
- Update
@expo/config
to includeoriginalFullName
in embedded config manifest. Related PR on expo-cli.
- Remove the
expo-payments-stripe
expo-av
- Add new
Recording.createAsync
API for faster recording on iOS. (#12294 by @IjzerenHein) (#12294 by @IjzerenHein) - Add
keepAudioActiveHint
recording option to prevent deactivation of the Audio session when recording on iOS. (#12294 by @IjzerenHein) (#12294 by @IjzerenHein) - [plugin] Added Android
android.permission.MODIFY_AUDIO_SETTINGS
permission. (#13163 by @EvanBacon) (#13163 by @EvanBacon) - Remove lodash and nullthrows. (#12522 by @EvanBacon) (#12522 by @EvanBacon)
- Allow video audio to continue to play in the background on iOS. (#12950 by @matt-oakes)
- Add new
expo-gl
expo-ads-admob
- Added SKAdNetwork identifiers to iOS plugin. (#12243 by @EvanBacon) (#12243 by @EvanBacon)
- Added user tracking permission to iOS plugin. (#12219 by @EvanBacon) (#12219 by @EvanBacon)
- Updated user tracking permission message. (#12322 by @EvanBacon) (#12322 by @EvanBacon)
- [plugin] Refactor imports (#13029 by @EvanBacon) (#13029 by @EvanBacon)
expo-ads-facebook
- Added SKAdNetwork identifiers to iOS plugin. (#12243 by @EvanBacon) (#12243 by @EvanBacon)
- Added user tracking permission to iOS plugin. (#12219 by @EvanBacon) (#12219 by @EvanBacon)
- Updated user tracking permission message. (#12322 by @EvanBacon) (#12322 by @EvanBacon)
@unimodules/react-native-adapter
- Removed
lodash
(#12507 by @EvanBacon) (#12507 by @EvanBacon) - Added CocoaPods & Gradle scripts to use new autolinking implementation (opt-in feature). (#11593 by @tsapeta) (#11593 by @tsapeta)
- Removed
expo-apple-authentication
- [plugin] Apply entitlements regardless of
ios.usesAppleSignIn
, add support for locales (#12927 by @EvanBacon) (#12927 by @EvanBacon)
- [plugin] Apply entitlements regardless of
expo-auth-session
- Add support for useProxy in bare workflow. (#12464 by @EvanBacon) (#12464 by @EvanBacon)
expo-asset
expo-battery
- Added
isBatteryOptimizationEnabledAsync
method to check if the battery optimization is enabled on android. (#13138 by @FelipeACP) (#13138 by @FelipeACP)
- Added
expo-branch
- [plugin] Refactor imports (#13029 by @EvanBacon) (#13029 by @EvanBacon)
expo-camera
- On iOS added new
codec
parameter inrecordAsync()
method and new methodgetAvailableVideoCodecsAsync()
that queries the device for available video codecs. (#12772 by @ajsmth) (#12772 by @ajsmth) - Added new
requestCameraPermissionsAsync()
,requestMicrophonePermissionsAsync()
,getCameraPermissionsAsync()
andgetMicrophonePermissionsAsync()
methods which gives more fine-grained control over requested permissions. (#12860 by @ajsmth) (#12772 by @ajsmth)
- On iOS added new
expo-cellular
- [plugin] Created config plugin for applying permissions on Android (#13175 by @EvanBacon) (#13175 by @EvanBacon)
expo-constants
expo-device
expo-firebase-analytics
- Add
setClientId
method to allow managing the clientId value in Expo Go. (#12520 by @esamelson) (#12520 by @esamelson)
- Add
expo-facebook
- Added noop Swift file generation to iOS plugin. (#12251 by @EvanBacon) (#12251 by @EvanBacon)
- Added SKAdNetwork identifiers to iOS plugin. (#12243 by @EvanBacon) (#12243 by @EvanBacon)
- Added user tracking permission to iOS plugin. (#12219 by @EvanBacon) (#12219 by @EvanBacon)
- Updated user tracking permission message. (#12322 by @EvanBacon) (#12322 by @EvanBacon)
- Added AppEvents-related functionality. (#12459 by @cruzach) (#12459 by @cruzach)
- [plugin] Refactor imports (#13029 by @EvanBacon) (#13029 by @EvanBacon)
- [plugin] Ability to disable
NSUserTrackingUsageDescription
by passinguserTrackingPermission: false
. (#12767 by @EvanBacon) (#12767 by @EvanBacon) - [plugin] Bump min target to node 12. (#12743 by @EvanBacon) (#12743 by @EvanBacon)
expo-linking
- Add internal ability to skip warnings for scheme resolution. (#12464 by @EvanBacon) (#12464 by @EvanBacon)
expo-notifications
- Expose
getLastNotificationResponseAsync
method (non-hook version ofuseLastNotificationResponse
). - Add bare workflow support to
getExpoPushTokenAsync
. (#12465 by @EvanBacon) (#12465 by @EvanBacon) - [plugin] Refactor imports (#13029 by @EvanBacon) (#13029 by @EvanBacon)
- Add support for custom notification sounds when using EAS Build. (#12782 by @cruzach) (#12782 by @cruzach)
- Added ability to respond to remote notifications received while the app is backgrounded. (#13130 by @cruzach) (#13130 by @cruzach)
- Expose
expo-sensors
- Added permissions-related methods
getPermissionsAsync
andrequestPermissionsAsync
what replaces deprecatedPermissions.askAsync()
andPermissions.getAsync()
. (#12501 by @EvanBacon) (#12501 by @EvanBacon)
- Added permissions-related methods
expo-web-browser
expo-ads-admob
- Updated
BannerView
on Android to not create a new ad request on every layout change. (#12599 by @cruzach) (#12599 by @cruzach) - Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Updated
expo-ads-facebook
- Stop passing through
iconSize
andorientation
toAdOptionsView
on iOS, where it is not supported. (#12200 by @brentvatne) (#12200 by @brentvatne) - Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Upgraded underlying native libraries to v6.5.0. (#13258 by @cruzach) (#13258 by @cruzach)
- Stop passing through
expo-analytics-segment
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Update Android segment package from
v4.8.2
tov4.9.2
. (#13263 by @ajsmth) (#13263 by @ajsmth)
expo-app-auth
- Added info plist plugin. (#12379 by @EvanBacon) (#12379 by @EvanBacon)
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-analytics-amplitude
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-application
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-auth-session
- Add new manifest2 field and make existing field optional. (#12817 by @wschurman) (#12817 by @wschurman)
- Use originalFullName instead of currentFullName (#12953) by @wschurman) (#12953 by @wschurman)
expo-asset
expo-av
- Fixed the web Video Fullscreen APIs in Safari (#12258 by @elliotdickison) (#12258 by @elliotdickison)
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Fixed an issue with Audio Interruption Mode not correctly being set on Android. (#13236 by @matt-oakes) (#13236 by)
expo-background-fetch
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-battery
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-barcode-scanner
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- On iOS removed the requirement for the presence of
NSMicrophoneUsageDescription
key inInfo.plist
(#12860 by @ajsmth) (#12772 by @ajsmth)
expo-branch
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-brightness
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-camera
expo-cellular
- Fix null cellular information on iOS. (#12710 by @randomhajile) (#12710 by @randomhajile)
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Add TypeScript types to the exported constants:
allowsVoip
,carrier
,isoCountryCode
,mobileCountryCode
andmobileNetworkCode
. (#12838 by @simek) (#12838 by @simek)
expo-calendar
- Fixed
ExpoCalendar.getCalendarsAsync()
crashing on Android when device has unsupported calendars. (#12724 by @ibraude) (#12724 by @ibraude) - Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Fixed
expo-blur
- Fix types - tint now a string union
'dark' | 'light' | 'default'
rather than any string. (#12264 by @brentvatne) (#12264 by @brentvatne)
- Fix types - tint now a string union
expo-constants
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Ensure classic manifest originalFullName is used over id. (#12955 by @wschurman) (#12955 by @wschurman)
expo-contacts
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Fix broken contacts tests (Android). (#13076 by @ajsmth) (#13076 by @ajsmth)
- Switch to androidx.annotation.Nullable. (#13133 by @brentvatne) (#13133 by @brentvatne)
expo-crypto
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-document-picker
- Added SSR guard. (#12420 by @EvanBacon) (#12420 by @EvanBacon)
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-device
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-file-system
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Fixed crash of file system when try to read cache dir file on android. (#12716 by @nomi9995) (#13232 by @nomi9995)
expo-error-recovery
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-firebase-core
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-firebase-analytics
- Make expo-firebase-analytics work with firebase 8.x.x. (#12297 by @fson) (#12297 by @fson)
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-facebook
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-font
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-google-sign-in
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-gl
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-haptics
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-image-loader
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-image-manipulator
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-image-picker
- Added SSR guard. (#12420 by @EvanBacon) (#12420 by @EvanBacon)
- Reverted focus state listener PR. (#12420 by @EvanBacon) (#12420 by @EvanBacon)
- Fixed
base64
return on web. (#12529 by @simonezuccala and @misterdev) (#12529 by @simonezuccala, @misterdev) - Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Fixed cases where Picker & Camera would be transparent on iOS 14.5. (#12897 by @cruzach) (#12897 by @cruzach)
expo-face-detector
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-linking
- Replace useUrl with useURL and update documentation. (#12310 by @brentvatne) (#12310 by @brentvatne)
- Fix accidental condition that caused AuthSession Google Provider to error when no scheme in Expo Go. (#12846 by @brentvatne) (#12846 by @brentvatne)
- Add new manifest2 field and make existing field optional. (#12817 by @wschurman) (#12817 by @wschurman)
expo-intent-launcher
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-localization
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-linear-gradient
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-keep-awake
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-local-authentication
- Avoid LAContext#biometryType bug on iOS 11.0.0. (#12413 by @mickamy) (#12413 by)
- Do not require activity existence on getKeyguardManager. (#12400 by @mickamy) (#12400 by)
- Flip
isAuthenticating
when the user dismisses the authentication dialog on Android. (#12728 by @mickamy) (#12728 by) - Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Fixed
authenticateAsync
not resolving when the user used PIN on some Android devices. (#13023 by @lukmccall) (#13023 by @lukmccall)
expo-mail-composer
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-network
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-location
- Add missing unimodules-permissions-interface dependency
- Lock the unimodules-permissions-interface dependency to the same version in react-native-unimodules
- Add support for user-initiated background tracking without background permission (#12456 by @bycedric) (#12456 by @bycedric)
- Fixed
startLocationUpdatesAsync
requiring the background location permission even if was used when the app is in the foreground on iOS. (#12594 by @lukmccall) (#12594 by @lukmccall) - Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-media-library
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-payments-stripe
- Updated underlying native library on Android from v8 to v16. (#12250 by @cruzach) (#12250 by @cruzach)
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-permissions
- Guard updating hook state on unmounted components. (#12482 by @EvanBacon) (#12482 by @EvanBacon)
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-notifications
- Prevent scoped category IDs from being returned from
setNotificationCategoryAsync
. ([#12212](expo#12212 by @cruzach) (by @cruzach) - Fixed an issue on Android where dismissing notifications by ID inside of Expo Go did nothing. ([#12306](expo#12306 by @cruzach) (by @cruzach)
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Add new manifest2 field and make existing field optional. (#12817 by @wschurman) (#12817 by @wschurman)
- Use originalFullName instead of currentFullName (#12953) by @wschurman) (#12953 by @wschurman)
- Prevent scoped category IDs from being returned from
expo-print
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-random
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-screen-capture
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-secure-store
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-screen-orientation
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-sharing
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-sensors
- Replaced
Pedometer.watchStepCount()
return type (PedometerListener
) with an unified Unimodules type -Subscription
. (#12497 by @Simek) (#12497 by @simek) - Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
- Replaced
expo-sms
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-speech
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-sqlite
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-store-review
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-task-manager
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-video-thumbnails
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-web-browser
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
unimodules-app-loader
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
unimodules-task-manager-interface
- Enable kotlin in all modules. (#12716 by @wschurman) (#12716 by @wschurman)
expo-ads-admob
expo-ads-facebook
@unimodules/react-native-adapter
@unimodules/core
expo-analytics-segment
- Migrated constants interface from
unimodules-constants-interface
toexpo-modules-core
. (#12876 by @tsapeta) (#12876 by @tsapeta) - Build Android code using Java 8 to fix Android instrumented test build error. (#12939 by @kudo) (#12939 by @kudo)
- Replace various arguments generic object types with
Record
s. (#13207 by @Simek) (#13207 by @Simek)
- Migrated constants interface from
expo-app-auth
expo-analytics-amplitude
expo-application
expo-av
expo-background-fetch
expo-battery
expo-barcode-scanner
expo-branch
expo-brightness
expo-camera
expo-cellular
expo-calendar
expo-constants
expo-contacts
- Migrated from
unimodules-file-system-interface
andunimodules-permissions-interface
toexpo-modules-core
. (#12961 by @tsapeta) (#12961 by @tsapeta) - Build Android code using Java 8 to fix Android instrumented test build error. (#12939 by @kudo) (#12939 by @kudo)
- Refactored uuid imports to v7 style. (#13037 by @giautm) (#13037 by @giautm)
- Migrated from
expo-crypto
expo-document-picker
expo-device
expo-file-system
expo-error-recovery
expo-firebase-core
expo-firebase-analytics
expo-facebook
- Removed unnecessary dependency on
unimodules-constants-interface
. (#12876 by @tsapeta) (#12876 by @tsapeta) - Migrated from
unimodules-permissions-interface
toexpo-modules-core
. (#12961 by @tsapeta) (#12961 by @tsapeta) - Build Android code using Java 8 to fix Android instrumented test build error. (#12939 by @kudo) (#12939 by @kudo)
- Removed unnecessary dependency on
expo-font
expo-google-sign-in
expo-gl
expo-haptics
expo-image-manipulator
expo-image-picker
expo-face-detector
expo-intent-launcher
expo-localization
expo-linear-gradient
expo-local-authentication
expo-mail-composer
expo-network
expo-location
expo-media-library
expo-payments-stripe
expo-permissions
expo-notifications
expo-print
expo-random
expo-screen-capture
expo-secure-store
expo-screen-orientation
expo-sharing
expo-sensors
- Migrated module interfaces from
unimodules-sensors-interface
toexpo-modules-core
. (#12888 by @tsapeta) (#12888 by @tsapeta) - Build Android code using Java 8 to fix Android instrumented test build error. (#12939 by @kudo) (#12939 by @kudo)
- Removed unnecessary dependency on
unimodules-permissions-interface
. (#12961 by @tsapeta) (#12961 by @tsapeta)
- Migrated module interfaces from
expo-sms
expo-speech
expo-sqlite
expo-task-manager
expo-video-thumbnails
unimodules-app-loader
unimodules-task-manager-interface
- Updated
@react-native-picker/picker
from1.9.2
to1.9.11
. (#11956 by @tsapeta) - Updated
lottie-react-native
from2.6.1
to3.5.0
. (#11586 and #11950 by @tsapeta) - Updated
@react-native-community/netinfo
from5.9.7
to6.0.0
. (#11947 by @tsapeta) and (#12112 by @brentvatne) - Updated
react-native-webview
from10.10.2
to11.2.3
. (#11964 by @tsapeta) - Updated
@react-native-segmented-control/segmented-control
from2.2.1
to2.3.0
. Side note: the package has changed its NPM scope from@react-native-community/segmented-control
. (#11996 by @tsapeta) - Updated
@react-native-community/viewpager
from4.2.0
to5.0.11
. (#12003 by @tsapeta) and (#12169 by @brentvatne) - Updated
react-native-gesture-handler
from1.8.0
to1.10.2
. (#12031 by @tsapeta) - Updated
react-native-screens
from2.15.2
to3.0.0
. (#12047 by @tsapeta, #12355 by @bbarthec) - Updated
react-native-reanimated
to stable release2.0.0
. (#12039 by @tsapeta) - Updated
react-native-safe-area-context
from3.1.9
to3.2.0
. (#12170 by @brentvatne) - Updated
@react-native-community/datetimepicker
from3.0.4
to3.2.0
. (#12171 by @brentvatne) - Updated
firebase
from7.9.0
to8.2.3
. (#11692 by @IjzerenHein) (#12297 by @fson)
- Remove deprecated
Linking
module fromexpo
. (#12128 by @EvanBacon) - Removed module migration errors from
expo
. (#11902 by @EvanBacon) - Removed
DangerZone
fromexpo
. (#11902 by @EvanBacon) - Removed
expo-secure-store
dependency fromexpo
. (#11902 by @EvanBacon) - Dropped support for importing undocumented method
apisAreAvailable
fromexpo
. (#11903 by @EvanBacon) - Remove
expo-linear-gradient
,expo-linking
,expo-location
,expo-permissions
, andexpo-sqlite
dependencies fromexpo
, along with related globals. As a side effect,navigator.geolocation
is no longer automatically polyfilled unless the developer installsexpo-location
in the project. (#12097 by @brentvatne) - Remove warning when
Constants.manifest.experiments.redesignedLogBox
is used in app config, it has been around since SDK 39. (#12097 by @brentvatne) @unimodules/core
@unimodules/react-native-adapter
expo-ads-facebook
expo-ads-admob
- Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Removed the
rewardedVideoWillLeaveApplication
event (use AppState instead). (#12125 by @bbarthec) (#12125 by @bbarthec) - Removed following events:
rewardedVideoDidRewardUser
,rewardedVideoDidOpen
,rewardedVideoDidComplete
,rewardedVideoDidClose
,rewardedVideoDidStart
and introduced:rewardedVideoUserDidEarnReward
,rewardedVideoDidPresent
,rewardedVideoDidFailToPresent
,rewardedVideoDidDismiss
. (#12125 by @bbarthec) (#12125 by @bbarthec)
expo-analytics-amplitude
expo-analytics-segment
expo-app-auth
expo-apple-authentication
expo-application
expo-auth-session
- Make expo-random a peer dependency. (#11280 by @brentvatne) (#11280 by @brentvatne)
expo-barcode-scanner
expo-background-fetch
expo-av
expo-blur
expo-battery
expo-brightness
expo-branch
expo-camera
- Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Remove deprecated
barCodeTypes
prop in favor ofbarCodeScannerSettings.barCodeTypes
. (#11904 by @EvanBacon) (#11904 by @EvanBacon)
expo-cellular
expo-constants
- Fixed
installationId
being backed up on Android which resulted in multiple devices having the sameinstallationId
. (#11005 by @sjchmiela) (#11005 by @sjchmiela) - Deprecated
.installationId
and.deviceId
as these properties can be implemented in user space. Instead, implement the installation identifier on your own usingexpo-application
's.androidId
on Android and a storage API likeexpo-secure-store
on iOS andlocalStorage
on Web. (#10997 by @sjchmiela) (#10997 by @sjchmiela) - Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Remove the
xde
property fromConstants.manifest
. (#12438 by @fson) (#12438 by @fson) - Update
@expo/config
to includecurrentFullName
in embedded config manifest. Related PR on expo-cli.
- Fixed
expo-contacts
expo-crypto
expo-device
expo-calendar
expo-error-recovery
expo-face-detector
expo-file-system
expo-facebook
- Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Upgraded Facebook iOS SDK to
9.0.1
. (#11921 by @dreamolight and @tsapeta) (#11921 by @dreamolight, @tsapeta) - Removed
setAutoInitEnabledAsync
method — we recommend to explicitly useinitializeAsync
instead. (#11921 by @tsapeta) (#11921 by @tsapeta)
expo-document-picker
expo-firebase-core
expo-firebase-analytics
expo-font
expo-google-sign-in
expo-haptics
- Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Dropped deprecated
notification
,impact
,selection
methods. (#11907 by @EvanBacon) (#11907 by @EvanBacon)
expo-gl
expo-image-manipulator
expo-image-loader
expo-image-picker
expo-keep-awake
expo-linear-gradient
expo-local-authentication
- Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Remove deprecated support for passing a string to
authenticateAsync
in favor of thepromptMessage
option. (#11906 by @EvanBacon) (#11906 by @EvanBacon)
expo-localization
expo-mail-composer
expo-location
- Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Splitting location permissions into
Foreground
andBackground
permissions. (#12063 by @lukmccall) (#12063 by @lukmccall)
expo-media-library
- Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Changed location of newly created albums on Android. From now, albums won't be saved in the root folder. (#12017 by @lukmccall) (#12017 by @lukmccall)
expo-network
expo-payments-stripe
expo-permissions
- Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Splitting location permissions into
Foreground
andBackground
permissions. (#12063 by @lukmccall) (#12063 by @lukmccall)
expo-print
expo-notifications
- Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- When migrating installation identifier (used internally to fetch Expo push token)
expo-notifications
will now remove existingSharedPreferences
entry, if the migrated identifier comes from there. This may cause issues in bare workflow projects ifexpo-constants
is installed in version lower than10.0.0
. Please upgradeexpo-constants
in your project to at least10.0.0
when installing new versions ofexpo-notifications
. If you do not upgradeexpo-constants
, its.installationId
may change. (#11283 by @sjchmiela) (#11283 by @sjchmiela)
expo-random
- Remove side-effect, binding the manifest environment variables to the app's
process.env
(#11559 by @EvanBacon) (#11559 by @EvanBacon) - Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Remove side-effect, binding the manifest environment variables to the app's
expo-screen-capture
expo-sensors
expo-secure-store
expo-sharing
expo-screen-orientation
expo-sms
expo-speech
expo-sqlite
expo-store-review
- Dropped support for iOS 10.0 (#11344 by @tsapeta) (#11344 by @tsapeta)
- Removed
StoreReview.isSupported()
in favor ofStoreReview.isAvailableAsync()
. (#11905 by @EvanBacon) (#11905 by @EvanBacon)
expo-task-manager
expo-video-thumbnails
expo-web-browser
unimodules-app-loader
unimodules-barcode-scanner-interface
unimodules-camera-interface
unimodules-constants-interface
unimodules-font-interface
unimodules-face-detector-interface
unimodules-file-system-interface
unimodules-image-loader-interface
unimodules-permissions-interface
unimodules-sensors-interface
unimodules-task-manager-interface
@unimodules/core
@unimodules/react-native-adapter
expo-ads-facebook
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
- Added SKAdNetwork identifiers to iOS plugin. (#12243 by @EvanBacon) (#12243 by @EvanBacon)
- Added user tracking permission to iOS plugin. (#12219 by @EvanBacon) (#12219 by @EvanBacon)
- Updated user tracking permission message. (#12322 by @EvanBacon) (#12322 by @EvanBacon)
expo-ads-admob
- Created config plugin. (#11636 by @EvanBacon) (#11636 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
- Added SKAdNetwork identifiers to iOS plugin. (#12243 by @EvanBacon) (#12243 by @EvanBacon)
- Added user tracking permission to iOS plugin. (#12219 by @EvanBacon) (#12219 by @EvanBacon)
- Updated user tracking permission message. (#12322 by @EvanBacon) (#12322 by @EvanBacon)
expo-analytics-amplitude
expo-analytics-segment
expo-app-auth
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-apple-authentication
- Created config plugin (#11979 by @EvanBacon) (#11979 by @EvanBacon)
expo-application
expo-auth-session
- Use sync random method for PKCE. (#10298 by @EvanBacon) (#10298 by @EvanBacon)
- Add support for useProxy in bare workflow. (#12464 by @EvanBacon) (#12464 by @EvanBacon)
expo-barcode-scanner
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Remove lodash. (#11900 by @EvanBacon) (#11900 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-background-fetch
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-av
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Add optional sound level information in
RecordingStatus
object described withmetering
key. AddisMeteringEnabled
flag inRecordingOptions
to enable computing this information. The flag is set totrue
by default inRecordingOptions
presets (RECORDING_OPTIONS_PRESET_HIGH_QUALITY
,RECORDING_OPTIONS_PRESET_LOW_QUALITY
). (#10759 by @danieloi) (#10759 by @danieloi) - Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-battery
expo-brightness
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-branch
- Created config plugin. (#11623 by @EvanBacon) (#11623 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-camera
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Remove lodash. (#11900 by @EvanBacon) (#11900 by @EvanBacon)
- Add requestPermissionsAsync and getPermissionsAsync for web. (#11694 by @IjzerenHein) (#11694 by @IjzerenHein)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-cellular
expo-constants
- Add support for new Apple devices to
platform.ios.deviceModel
. (#11446 by @sjchmiela) (#11446 by @sjchmiela) - Changed
Constants.platform.ios.model
nullability — it can now benull
, if the value cannot be determined. (#11445 by @sjchmiela) (#11445 by @sjchmiela) - Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
- Use
@expo/config-types
package forExpoConfig
type. (#11810 by @EvanBacon) (#11810 by @EvanBacon) - Added new
Constants.__unsafeNoWarnManifest
property that behaves asConstants.manifest
property, but suppresses warning upon no manifest available. (#12237 by @bbarthec) (#12237 by @bbarthec)
- Add support for new Apple devices to
expo-contacts
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-crypto
expo-device
expo-calendar
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-error-recovery
expo-face-detector
expo-file-system
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
- Added support for Storage Access Framework (Android only). (#12032 by @lukmccall) (#12032 by @lukmccall)
expo-facebook
- Created config plugin. (#11624 by @EvanBacon) (#11624 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
- Exposed
setAdvertiserTrackingEnabled
function to be compliant with Apple's iOS 14 tracking policy. (#11921 by @dreamolight and @tsapeta) (#11921 by @dreamolight, @tsapeta) - Added noop Swift file generation to iOS plugin. (#12251 by @EvanBacon) (#12251 by @EvanBacon)
- Added SKAdNetwork identifiers to iOS plugin. (#12243 by @EvanBacon) (#12243 by @EvanBacon)
- Added user tracking permission to iOS plugin. (#12219 by @EvanBacon) (#12219 by @EvanBacon)
- Updated user tracking permission message. (#12322 by @EvanBacon) (#12322 by @EvanBacon)
expo-document-picker
- Created config plugin. (#11977 by @EvanBacon) (#11977 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-firebase-core
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-firebase-analytics
expo-font
expo-google-sign-in
expo-haptics
expo-gl
expo-image-manipulator
expo-image-loader
expo-image-picker
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-intent-launcher
expo-keep-awake
expo-linear-gradient
expo-local-authentication
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
- Added method to know enrolled security level of device. (#11780 by @mickamy) (#11780 by @mickamy)
expo-linking
- Added bare workflow support. (#11560 by @EvanBacon) (#11560 by @EvanBacon)
Linking.createURL
creates URLs with two slashes in bare workflow. (#11702 by @EvanBacon) (#11702 by @EvanBacon)- Add internal ability to skip warnings for scheme resolution. (#12464 by @EvanBacon) (#12464 by @EvanBacon)
expo-localization
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
- Add
currency
,isMetric
,decimalSeparator
,digitGroupingSeparator
properties. (#11663 by @IjzerenHein) (#11663 by @IjzerenHein) - Add support for
region
property for Android. (#11663 by @IjzerenHein) (#11663 by @IjzerenHein)
expo-mail-composer
expo-location
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-media-library
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-network
expo-payments-stripe
- Created config plugin (#11574 by @EvanBacon) (#11574 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-permissions
expo-print
expo-notifications
- Created config plugin. (#11633 by @EvanBacon) (#11633 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
- Added
YearlyTriggerInput
that allows scheduling a yearly recurring notification for a specific day of the year, hour and minute. It is supported on both iOS and Android. (#11898 by @raulmt) (#11898 by @raulmt) - Allow for remote notifications to overwrite notifications already existing in the tray. (#12050 and #12055 by @cruzach) (#12050, #12055 by @cruzach)
- Notifications from different experiences in Expo Go can no longer overwrite each other. (#12050 and #12055 by @cruzach) (#12050, #12055 by @cruzach)
- Expose
getLastNotificationResponseAsync
method (non-hook version ofuseLastNotificationResponse
). - Add bare workflow support to
getExpoPushTokenAsync
. (#12465 by @EvanBacon) (#12465 by @EvanBacon)
expo-random
expo-screen-capture
expo-sensors
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-secure-store
expo-sharing
expo-screen-orientation
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-sms
expo-speech
expo-sqlite
expo-store-review
expo-task-manager
- Created config plugins (#11538 by @EvanBacon) (#11538 by @EvanBacon)
- Converted plugin to TypeScript. (#11715 by @EvanBacon) (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec) (#11647 by @bbarthec)
expo-video-thumbnails
expo-web-browser
unimodules-app-loader
unimodules-barcode-scanner-interface
unimodules-camera-interface
unimodules-constants-interface
unimodules-font-interface
unimodules-face-detector-interface
unimodules-file-system-interface
unimodules-image-loader-interface
unimodules-permissions-interface
unimodules-sensors-interface
unimodules-task-manager-interface
- Fix Expo CLI logging, which was not always limiting the length of strings to 10k characters. (#11776 by @fson)
- Fix bare templates on Android to pass
null
tocom/facebook/react/ReactActivity.onCreate
to avoid potential inconsistencies when restoring from background. expo-ads-facebook
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Added the app tracking permission. (#12123 by @lukmccall) (#12123 by @lukmccall)
- Update FBAudienceNetwork to 6.3.0. (#12133 by @tsapeta) (#12133 by @tsapeta)
- Stop passing through
iconSize
andorientation
toAdOptionsView
on iOS, where it is not supported. (#12200 by @brentvatne)
expo-ads-admob
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Added the app tracking permission. (#12123 by @lukmccall) (#12123 by @lukmccall)
expo-analytics-segment
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-app-auth
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Added info plist plugin. (#12379 by @EvanBacon) (#12379 by @EvanBacon)
expo-apple-authentication
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-application
- Fixed return type of
getIosIdForVendorAsync
to include possiblenull
value which can be returned if the device hasn't been unlocked yet (for more information consult the Apple documentation foridentifierForVendor
). (#10997 by @sjchmiela) (#10997 by @sjchmiela) - Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Fixed return type of
expo-asset
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Removed annoying yellowbox warning message in bare workflow when there's no manifest available. (#12237 by @bbarthec) (#12237 by @bbarthec)
expo-auth-session
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Fix dependencies to align with bundledNativeModules.json. (#12113 by @brentvatne) (#12113 by @brentvatne)
expo-barcode-scanner
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-av
- Fixed minor syntax error in
AVManager
. (#11375 by @sjchmiela) (#11375 by @sjchmiela) - Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Fixed minor syntax error in
expo-blur
- Explicitly pass down only the expected props on iOS. (#10648 by @cruzach) (#10648 by @cruzach)
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Fix types - tint now a string union
'dark' | 'light' | 'default'
rather than any string. (#12264 by @brentvatne) (#12264 by @brentvatne)
expo-battery
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-brightness
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-branch
- remove ts-ignore from plugin. (#11633 by @EvanBacon) (#11633 by @EvanBacon)
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-camera
expo-cellular
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-constants
- Fixed the
getAppConfig.js
script to work with the latest version of@expo/config
. - Fixed an issue where
Constants.manifest
was still undefined in debug Android builds in the bare workflow - Add @expo/config to dependencies
- Removed
fbjs
dependency (#11396 by @cruzach) (#11396 by @cruzach) - Added support for simulators running on Apple ARM64 processors (previously, constants expected to be exported by native code were unavailable). (#11445 by @sjchmiela) (#11445 by @sjchmiela)
- Fixed support for Android Gradle plugin 4.1+ (#11926 by @esamelson) (#11926 by @esamelson)
- Add deprecation messages for previously deprecated Constants fields. (#11960 by @ide) (#11960 by @ide)
- Fixed the
expo-contacts
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-device
- Removed
fbjs
dependency (#11396 by @cruzach) (#11396 by @cruzach) - Added support for detecting simulators running on Apple ARM64 processors. (#11445 by @sjchmiela) (#11445 by @sjchmiela)
- Removed
expo-calendar
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-error-recovery
- Removed
fbjs
dependency (#11396 by @cruzach) (#11396 by @cruzach) - Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Removed
expo-file-system
- Fixed copying movies from assets not working on iOS. (#11749 by @lukmccall) (#11749 by @lukmccall)
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-facebook
- Added the app tracking permission. (#12123 by @lukmccall) (#12123 by @lukmccall)
expo-firebase-analytics
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-font
- Remove Expo.AppLoading reference in error. (#11204 by @brentvatne) (#11204 by @brentvatne)
- Removed
fbjs
dependency (#11396 by @cruzach) (#11396 by @cruzach) - Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-google-sign-in
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-gl
- Removed
fbjs
dependency (#11396 by @cruzach) (#11396 by @cruzach) - Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Removed
expo-image-manipulator
expo-google-app-auth
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-image-loader
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-image-picker
- Fix typo in media library permission methods. (#11292 by @bycedric) (#11292 by @bycedric)
- Fixed possible unsafe call in VideoResultTask. (#11552 by @Duell10111) (#11552 by @Duell10111)
- Fixed
launchCameraAsync()
withallowsEditing
option crashing for some android users. (#11825 by @lukmccall) (#11825 by @lukmccall) - Fixed cancelled picker dialog not resolving with expected result on web. (#11847 by @jayprado) (#11847 by @jayprado)
- Fixed incorrect file URI on Android. (#11823 by @lukmccall) (#11823 by @lukmccall)
expo-intent-launcher
- Handle
ActivityNotFoundException
error to prevent crashes. (#12078 by @robertying) (#12078 by @robertying)
- Handle
expo-keep-awake
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-linear-gradient
- Revert to class component. (#11111 by @EvanBacon) (#11111 by @EvanBacon)
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-local-authentication
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-linking
- Removed
fbjs
dependency (#11396 by @cruzach) (#11396 by @cruzach) - Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Removed
expo-localization
- Fix invalid
region
property on Web when locale contains script or variant fields. (#11663 by @IjzerenHein) (#11663 by @IjzerenHein) - Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Fix invalid
expo-location
- Fixed background location permission check on Android. (#11399 by @peterdn) (#11399 by @peterdn)
- Remove sticky notification on service stop on Android. (#11775 by @zaguiini) (#11775 by @zaguiini)
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-media-library
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- In 'getAssetInfoAsync', respect the
shouldDownloadFromNetwork
option. (#12086 by @drtangible) (#12086 by @drtangible)
expo-network
- Fixed issue on Android where apps would crash when calling
getIpAddressAsync
when using cellular data or on certain IP addresses. - Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Fixed issue on Android where apps would crash when calling
expo-payments-stripe
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-permissions
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-print
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-notifications
- Added
assert
as a package dependency. (#11171 by @cruzach) (#11171 by @cruzach) - Fixed a case where
requestPermissionsAsync
would ignore the providedNotificationPermissionsRequest
. (#11548 by @cruzach) (#11548 by @cruzach) - Fixed case on Android where
getPermissionsAsync
would always returncanAskAgain: true
. (#11551 by @cruzach) (#11551 by @cruzach) - Fixed migration process to not use
expo-constants
installation ID if there is a notifications-specific identifier. (#11287 by @sjchmiela) (#11287 by @sjchmiela) - Native iOS notifications emitter module no longer registers for notification events as soon as module registry is ready which fixes initial notification response not being delivered to JS in standalone (Expo managed workflow) iOS apps. (#11382 by @sjchmiela) (#11382 by @sjchmiela)
- Changed the visibility of Android's
InstallationId#getNonBackedUpUuidFile
method so it's easier to override by custom implementations. (#11249 by @sjchmiela) (#11249 by @sjchmiela) - Added extra check for marking pending notification responses as delivered which prevents legacy Expo notifications to consume notification responses when we don't want it to which should help fix initial notification response (causing the application to start) not being delivered (only in iOS standalone applications in Expo managed workflow). (#11378 by @sjchmiela) (#11378 by @sjchmiela)
- Removed
fbjs
dependency (#11396 by @cruzach) (#11396 by @cruzach) - Notification categories will no longer be lost after ejecting to the bare workflow (if ejecting after SDK 41). (#11651 by @cruzach) (#11651 by @cruzach)
- Notify all listeners of pending notification responses. (#11536 by @esamelson) (#11536 by @esamelson)
- Added
expo-random
- Export JSON from
react-native.config
(#11456 by @EvanBacon) (#11456 by @EvanBacon)
- Export JSON from
expo-sensors
expo-secure-store
expo-screen-orientation
expo-speech
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-sqlite
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-store-review
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-task-manager
- Add TypeScript definition of
executionInfo.appState
. (#11670 by @Noitidart) (#11670 by @Noitidart) - Accept generic data type of task body objects. (#11669 by @Noitidart) (#11669 by @Noitidart)
- Add TypeScript definition of
expo-video-thumbnails
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
expo-web-browser
- Removed
fbjs
dependency (#11396 by @cruzach) (#11396 by @cruzach) - Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne) (#11980 by @brentvatne)
- Removed
@unimodules/core
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
@unimodules/react-native-adapter
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-barcode-scanner
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-av
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-branch
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-camera
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-contacts
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-face-detector
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-file-system
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-facebook
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-google-sign-in
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-gl
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-location
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-media-library
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-print
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-notifications
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-sensors
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#11224 by @tsapeta) (#11224 by @tsapeta)
expo-ads-admob
expo-face-detector
- Migrated from
Firebase/MLVision
native library toGoogleMLKit/[email protected]
on iOS. (#12125 by @bbarthec) (#12125 by @bbarthec)
- Migrated from
expo-firebase-core
expo-firebase-analytics
- Updated
@react-native-community/[email protected]
to@react-native-picker/[email protected]
. (#11029 by @brentvatne) - Updated
@react-native-community/segmented-control
from2.1.1
to2.2.1
. (#11029 by @brentvatne) - Updated
react-native-gesture-handler
from1.7.0
to1.8.0
. (#11029 by @brentvatne) - Updated
@react-native-community/netinfo
from5.9.6
to5.9.7
. (#11029 by @brentvatne) - Updated
react-native-safe-area-context
from3.1.4
to3.1.9
. (#11029 by @brentvatne) - Updated
@react-native-community/viewpager
from4.1.6
to4.2.0
. (#11009 by @cruzach) - Updated
@react-native-community/datetimepicker
from3.0.0
to3.0.4
. (#10980 by @cruzach) - Updated
react-native-screens
from2.10.1
to2.15.0
. (#10980 by @bbarthec) - Upgraded
react-native-reanimated
v2 support from2.0.0-alpha.6
to2.0.0-rc.0
. (#11048, #11095, #11145 by @sjchmiela)
- Removed
@react-native-community/picker
, replaced with@react-native-picker/picker
. (#11029 by @brentvatne) - Removed “info”, “save” and “pin” functionalities from persistent notification shown in notification tray while developing an experience via Expo client on Android. (#10333, #10334 by @sjchmiela)
- Removed support for
androidShowExponentNotificationInShellApp
property in app manifest (it was responsible for enabling persistent development notification in standalone apps). (#10335 by @sjchmiela) AppLoading
is extracted to the separateexpo-app-loading
module. (#10929 by @bbartec)@unimodules/core
- Removed
org.unimodules.core.InvalidArgumentException
. Please use its coded version,org.unimodules.core.errors.InvalidArgumentException
, instead. (#9961 by @sjchmiela)
- Removed
expo-analytics-amplitude
- Upgraded native Amplitude iOS library from
4.7.1
to6.0.0
. This removes the IDFA code that was previously included with the Amplitude library.disableIDFA
option forAmplitude.setTrackingOptions
is removed. If you would like to collect the IDFA, you must be in the bare workflow. (#9880 by @bbarthec) - Renamed all methods to include the 'Async' suffix:
- All methods now return a Promise. (#9212 by @cruzach)
- Upgraded native Amplitude iOS library from
expo-auth-session
expo-random
is now a peer dependency rather than a dependency. (#11280 by @brentvatne)
expo-blur
expo-branch
expo-mail-composer
expo-media-library
expo-location
expo-notifications
- Changed the way
PermissionResponse.status
is calculated on iOS. Previously, it returns the numeric value ofUMPermissionStatus
which does not match the TypeScript enum declaration. (#10513 by @cHaLkdusT) - Changed the way
NotificationContent.data
is calculated on iOS. Previously it was the contents of remote notification payload with all entries from under"body"
moved from under"body"
to root level. Now it's the sole unchanged contents ofpayload["body"]
. Other fields of the payload can now be accessed on iOS throughPushNotificationTrigger.payload
(similarly to how other fields of native remote message can be accessed on Android underPushNotificationTrigger.remoteMessage
). (#10453 by @sjchmiela) - Changed class responsible for handling Firebase events from
FirebaseMessagingService
to.service.NotificationsService
on Android. (#10558 by @sjchmiela) - Changed how you can override ways in which a notification is reinterpreted from a
StatusBarNotification
and in which aNotification
is built from defining anexpo.modules.notifications#NotificationsScoper
meta-data value inAndroidManifest.xml
to implementing aBroadcastReceiver
subclassingNotificationsService
delegating those responsibilities to your customPresentationDelegate
instance. (#10558 by @sjchmiela) - Removed
removeAllNotificationListeners
method. You can (and should) still remove listeners usingremove
method onSubscription
objects returned byaddNotification…Listener
. (#10883 by @sjchmiela)
- Changed the way
expo-random
expo-screen-capture
expo-permissions
@expo/vector-icons
- Updated icon sets to match [email protected]. (b146b86b) by @brentvatne
expo-auth-session
- Create built-in
providers/google
for easy Google auth. (#9361 by @EvanBacon) - Create built-in
providers/facebook
for easy Facebook auth. (#9361 by @EvanBacon)
- Create built-in
expo-camera
- Added support for video poster to show while the camera is loading on web. (#9930 by @liorJuice)
- Added
videoBitrate
option for camera on Android. (#4878 by @xHeinrich)
expo-clipboard
expo-constants
- Added
Constants.executionEnvironment
to distinguish between apps running in a bare, managed standalone, or App/Play Store development client environment. (#10986 by @esamelson) - Added script to embed app configuration into a bare app and export this object as
Constants.manifest
. (#10948 and #10949 by @esamelson) - If
manifest
is defined onexpo-updates
then use it instead ofExponentConstants.manifest
(#10668 by @esamelson) - Warn when developer attempts to access empty
Constants.manifest
in bare. Throw error when it is empty in managed. (#11028 by @esamelson)
- Added
expo-branch
- Updated
react-native-branch
vendored code to 5.0.0, upgraded underlying Branch SDKs, seereact-native-branch
's changelog for full list of changes. (#10204 by @sjchmiela)
- Updated
expo-gl
- Enable stencil buffer on Android (#9928 by @wkozyra95)
expo-media-library
- Added the
MediaLibrary.presentPermissionsPickerAsync
method that displays the system prompt allowing the user to change the selected permitted assets` on iOS.
- Added the
expo-notifications
- Added
useLastNotificationResponse
React hook that always returns the notification response that has been emitted most recently. (#10883 by @sjchmiela) - Added
WeeklyTriggerInput
that allows scheduling a weekly recurring notification for a specific day of week, hour and minute. It is supported on both iOS and Android. (#9973 by @RikTheunis) - Added
getNextTriggerDateAsync
method allowing you to verify manually when would the next trigger date for a particular notification trigger be. (#10455 by @sjchmiela) - Added support for restoring scheduled notifications alarms on Android after an app is updated. (#10708 by @sjchmiela)
- Added
expo-store-review
- Implemented native In-App Review for Android. (#9607 by @spezzino)
expo-task-manager
- Added
isAvailableAsync
method. (#10657 by @PranshuChittora)
- Added
- Fix
NotificationsHandler
&ExpoNotificationCategoriesModule
reading from the wrong SharedPreferences files, resulting in categories not being applied in Android standalone apps. (#10624 by @cruzach) - Set mIntentUri from intent in DetachActivity.onCreate to fix Linking.getInitialURL in Android standalone apps (#10535 by @esamelson)
- Only update the splash screen when it receives update configuration values on iOS (#10512 by @brentvatne)
- Only update the splash screen when it receives update configuration values on Android (#10522 by @esamelson)
- Show helpful error message when expo-cli responds with an incompatible project on iOS (#10508 by @esamelson)
- Show helpful error message when expo-cli responds with an incompatible project on Android (#10511 by @esamelson)
- Pass experience properties correctly to turbo modules (#10504 by @esamelson)
- Fix splash screen in standalone app builds for Android (#10519 by @bbartec)
- Fix splash screen
hideAsync
warnings in client (#10294 by @bbartec) - Fix EXDisabledRedBox not overriding RCTRedBox, this caused a redbox to appear above the Expo client specific UI when failing to load a published app (#10498 by @sjchmiela)
- Fix reading splash image from the android.splash config (#10494 by @bbartec)
- Remove the large notification icon from managed apps, because there is no mechanism to set it yet (#10492 by @lukmccall)
- Fix the app icon is always added as a notification icon (#10471 by @lukmccall)
expo-updates
Updates.reloadAsync
not supported in development (#10310 by @esamelson)- Support absolute
assetUrlOverride
(#10337 by @esamelson) - Handle
./
inassetUrlOverride
(#10342 by @esamelson)
@unimodules/core
- Fixed the
DoNotStrip
annotation not working with classes. (#10421 by @lukmccall)
- Fixed the
@unimodules/react-native-adapter
- Fixed invalid numbers of listeners being considered unregistered on iOS, resulting in Attempted to remove more '{ModuleName}' listeners than added. errors. (#10771 by @sjchmiela)
expo-ads-facebook
- Upgraded the underlying Android SDK to 5.11.0 (was 5.1.1, which has been deprecated and would result in an error). No user-facing changes involved. (#10430 by @cruzach)
- Upgraded the underlying iOS SDK to 5.9.0. No user-facing changes involved. (#10430 by @cruzach)
- Removed extra padding above banner ads on iOS. (#10433 by @cruzach)
expo-auth-session
- Improved mechanism used to determine whether in bare or managed workflow. (#10993 by @esamelson)
expo-barcode-scanner
- Allow
onBarCodeScanned
prop to beundefined
. (#10068 by @josmithua)
- Allow
expo-brightness
- Removed use of
org.unimodules.core.InvalidArgumentException
in favor of its coded version,org.unimodules.core.errors.InvalidArgumentException
. (#9961 by @sjchmiela)
- Removed use of
expo-av
- Fix orientation being returned incorrectly for videos in portrait mode in onReadyForDisplay on iOS. (#10449 by @lachenmayer)
- Fix looping stops after 3 times on iOS. (#10602 by @IjzerenHein)
- Fix Audio.stopAndUnloadAsync not handling no-data on Android. (#9877 by @IjzerenHein)
expo-contacts
expo-document-picker
- Fixed
UIDocumentPickerViewController
beingnil
on iOS 14 and thus causing the hard-crash of the application. (#10327 by @bbarthec) - Fixed
Promise
not being fulfilled if the document picker view controller was being dismissed by gesture on iOS. (#10325 by @sjchmiela) - Added SSR guard. (#12420 by @EvanBacon) (#12420 by @EvanBacon)
- Fixed
expo-firebase-analytics
- Fix exception in setCurrentScreen on Android. (#10804 by @IjzerenHein)
- Fix setup native firebase link in README. (#10740 by @jarvisluong)
- Make expo-firebase-analytics work with firebase 8.x.x. (#12297 by @fson) (#12297 by @fson)
expo-gl
- Fixed a bug causing an application crash when enabling remote debugging on Android. (#10381 by @sjchmiela)
- Fixed support for offset in TypedArray. (#10692 by @wkozyra95)
expo-image-picker
launchImageLibraryAsync()
should be callable with no options argument (#10306)- Added SSR guard. (#12420 by @EvanBacon) (#12420 by @EvanBacon)
- Reverted focus state listener PR. (#12420 by @EvanBacon) (#12420 by @EvanBacon)
expo-local-authentication
- Fixed
cancelAuthenticate
not working in Android as expected. (#10482 by @huisf) - Guard against crash on Android when
FragmentActivity
is null creating the Biometric Prompt. (#10679 by @vascofg) - Guard against Null Pointer Exception on Android when calling
authenticate
on the Biometric Prompt after resuming the app on some devices. (#10965 by @vascofg) - Avoid LAContext#biometryType bug on iOS 11.0.0. (#12413 by @mickamy) (#12413 by)
- Fixed
expo-linking
- Prevent crash in bare workflow if
Constants.manifest
isn't defined. - Improved mechanism used to determine whether in bare or managed workflow. (#10993 by @esamelson)
- Replace useUrl with useURL and update documentation. (#12310 by @brentvatne) (#12310 by @brentvatne)
- Prevent crash in bare workflow if
expo-linear-gradient
- Added
children
property toLinearGradient
component (#10227 by @sjchmiela)
- Added
expo-media-library
- Fixed
RuntimeException: setDataSource failed: status = 0x80000000
caused byMediaMetadataRetriever
. (#9855 by @lukmccall) - Fixed
media-library
methods failing when not all permissions were granted on iOS 14. (#10026 by @lukmccall)
- Fixed
expo-location
- Redeliver intent when restarting task service. (#10410 by @byCedric)
- Add missing unimodules-permissions-interface dependency
- Lock the unimodules-permissions-interface dependency to the same version in react-native-unimodules
- Add support for user-initiated background tracking without background permission (#12456 by @bycedric) (#12456 by @bycedric)
expo-notifications
- Fixed TypeScript definition:
setNotificationCategoryAsync
should expectoptions.allowAnnouncement
, notoptions.allowAnnouncment
. (#11025 by @cruzach) - Fixed issue where custom notification icon and color weren't being properly applied in Android managed workflow apps. (#10828 by @cruzach)
- Fixed case where Android managed workflow apps could crash when receiving an interactive notification. (#10608 by @cruzach)
- Fixed case where Android apps could crash if you set a new category with a text input action without providing any
options
. (#10141 by @cruzach) - Android apps no longer rely on the
submitButtonTitle
property as the action button title (they rely onbuttonTitle
, which matches iOS behavior). (#10141 by @cruzach) - Fixed
Notifications.requestPermissions()
returningundetermined
instead of a known status in some browsers. (#10296 by @sjchmiela) - Fixed crashing when Proguard is enabled. (#10421 by @lukmccall)
- Fixed the application icon being always added as a notification icon. (#10471 by @lukmccall)
- Fixed faulty trigger detection mechanism which caused some triggers with
channelId
specified get recognized as triggers of other types. (#10454 by @sjchmiela) - Fixed fatal exception sometimes being thrown when notification was received or tapped on Android due to observer being cleared before it's added. (#10640 by @sjchmiela)
- Removed the large icon from managed workflow. (#10492 by @lukmccall)
- Fixed crash happening due to non-existent
ExpoNotificationsService
being declared inAndroidManifest.xml
. (#10638 by @sjchmiela) - Fixed notifications not playing any sound when
shouldShowAlert: false
butshouldPlaySound: true
insetNotificationHandler
. (#10699 by @cruzach) - Add guard against badgin usage in SSR environments. (#10741 by @bycedric)
- Moved notification events handling from main thread to a background thread which makes users' devices more responsive. (#10762 by @sjchmiela)
- Fixed having to define
CATEGORY_DEFAULT
on anActivity
that is expected to receiveexpo.modules.notifications.OPEN_APP_ACTION
intent when handling notification response. (#10755 by @sjchmiela) - Fixed notifications not being returned at all from
getAllPresentedNotificationsAsync()
if the library fails to reconstruct notification request based on marshaled copy in notification data. From now on they'll be naively reconstructed from the Android notification. (#10801 by @sjchmiela) - May have helped fix an issue where "initial notification response" (the one that opened the app) was not being delivered to Android apps. (#10773 by @sjchmiela)
- Prevent scoped category IDs from being returned from
setNotificationCategoryAsync
. ([#12212](expo#12212 by @cruzach) (by @cruzach) - Fixed an issue on Android where dismissing notifications by ID inside of Expo Go did nothing. ([#12306](expo#12306 by @cruzach) (by @cruzach)
- Fixed TypeScript definition:
expo-random
- Clarify that react-native-unimodules is a dependency in README
- Add a placeholder .xcodeproj file so that React Native CLI autolinking will detect the EXRandom podspec
expo-sharing
- Removed use of
org.unimodules.core.InvalidArgumentException
in favor of its coded version,org.unimodules.core.errors.InvalidArgumentException
. (#9961 by @sjchmiela)
- Removed use of
expo-store-review
unimodules-font-interface
- Fix import error when importing from JavaScript. (#10753 by @IjzerenHein)
unimodules-task-manager-interface
- Fix import error when importing from JavaScript. (#10753 by @IjzerenHein)
- Updated
@react-native-community/datetimepicker
from2.4.0
to3.0.0
. (#9543, #9706 by @sjchmiela) - Updated
@react-native-community/netinfo
from5.9.2
to5.9.6
. (#9564, #9737 by @sjchmiela) - Updated
@react-native-community/picker
from1.6.0
to1.6.6
. (#9533, #9737 by @sjchmiela) - Updated
@react-native-community/segmented-control
from1.6.1
to2.1.1
. (ae45e23
, #9534, #9737 by @sjchmiela) - Updated
@react-native-community/slider
from3.0.0
to3.0.3
. (#9532 by @sjchmiela) - Updated
@react-native-community/viewpager
from3.3.0
to4.1.6
. (#9535, #9737 by @sjchmiela, #9807 by @bbarthec) - Updated
react-native-reanimated
from1.9.0
to1.13.0
. (#9608, #9738 by @sjchmiela) - Updated
react-native-safe-area-context
from3.0.2
to3.1.4
. (#9548, #9737 by @sjchmiela) - Updated
react-native-screens
from2.9.0
to2.10.1
. (#9611 by @sjchmiela) - Updated
react-native-webview
from9.4.0
to10.7.0
. (#9549, #9737 by @sjchmiela, #9803 by @bbarthec)
- Removed GCM entirely from the Android client and standalone apps since the server APIs have been shut down. (#6071, #9735 by @esamelson)
expo
- The
SplashScreen
andUpdates
module exports have been removed in favor of theexpo-splash-screen
andexpo-updates
packages. You'll need to install and import from the individual packages if you use either module.
- The
@unimodules/react-native-adapter
- Deprecate
RCTDeviceEventEmitter
in favor of the renamedDeviceEventEmitter
. (#8826 by @EvanBacon)
- Deprecate
expo-analytics-amplitude
- Upgraded native Amplitude iOS library from
4.7.1
to6.0.0
. This removes the IDFA code that was previously included with the Amplitude library.disableIDFA
option forAmplitude.setTrackingOptions
is removed. If you would like to collect the IDFA, you must be in the bare workflow. (#9880 by @bbarthec)
- Upgraded native Amplitude iOS library from
expo-analytics-segment
- Upgraded Segment Analytics iOS to 4.0.4. This removes the IDFA code that was previously included with the Segment library. If you would like to collect the IDFA, you must be in the bare workflow or use SDK < 39. (#9606 by @cruzach).
- The
options
argument forSegment.alias
now accepts context configuration as well as integration configuration. Previously, this expected just theintegrations
configuration. (#9606 by @cruzach). The expected format now is:
expo-barcode-scanner
expo-battery
- Added support for FULL state on web. (#8937 by @EvanBacon)
expo-camera
- Fix bug where
barCodeTypes
needed to be defined on web. (#9630 by @EvanBacon) - Fix bug where camera would sometimes not start on web desktop. (#9630 by @EvanBacon)
- Deleted
CaptureOptions
in favor ofCameraPictureOptions
(#9558 by @EvanBacon) - Added camera permissions declarations to
AndroidManifest.xml
on Android. (#9224 by @bycedric)
- Fix bug where
expo-facebook
- All methods and platforms now return times in JS
Date
objects instead of seconds. (#7101 by @evanbacon) - Error code
E_CONF_ERROR
has been replaced withERR_FACEBOOK_MISCONFIGURED
. (#7101 by @evanbacon) - Some instances of the error code
E_NO_INIT
in the client have been replaced withERR_FACEBOOK_UNINITIALIZED
. (#7101 by @evanbacon) - Some instances of the error code
E_FBLOGIN_ERROR
in the client have been replaced withERR_FACEBOOK_LOGIN
. (#7101 by @evanbacon) initializeAsync
now accepts a single argument of typeFacebookInitializationOptions
, previously this method accepted two arguments:appId: string
&appName: string
. (#7101 by @evanbacon)
- All methods and platforms now return times in JS
expo-gl
- This version requires at least version 0.63.0 of React Native. It may crash when used with older versions. (#7948 by @wkozyra95)
expo-image-picker
expo-localization
Localization.region
changed fromundefined | string
tonull | string
on web to match iOS. (#8824 by @EvanBacon)
expo-location
- Add
scope
field in returned value to indicate whether background permissions are granted. Addandroid.accuracy
field to determine whethercoarse
orfine
location permission is granted. (#9446 by @mczernek) getLastKnownPositionAsync
no longer rejects when the last known location is not available – now it returnsnull
. (#9251 by @tsapeta)- Removed the deprecated
enableHighAccuracy
option ofgetCurrentPositionAsync
. (#9251 by @tsapeta) - Removed
maximumAge
andtimeout
options fromgetCurrentPositionAsync
– it's been Android only and the same behavior can be achieved on all platforms on the JavaScript side. (#9251 by @tsapeta) - Made type and enum names more consistent and in line with our standards — they all are now prefixed by
Location
. The most common ones are still accessible without the prefix, but it's not the recommended way. (#9251 by @tsapeta) geocodeAsync
andreverseGeocodeAsync
no longer falls back to Google Maps API on Android. (#9444 by @tsapeta)
- Add
expo-media-library
expo-screen-orientation
- Now the module will keep the lock active when the app backgrounds. (#8727 by @lukmccall)
expo-permissions
- Fixed motion permission bug on web. (#9670 by @EvanBacon)
- Added support for
experiments.turboModules
flag inapp.json
/app.config.js
allowing developers to enable Turbo Modules on iOS. (#9908 by @sjchmiela) expo-ads-facebook
- Add
onError
property to components created withwithNativeAd
that lets you get notified of errors that might occur when the native SDK tries to fetch ads. (#8662 by @sjchmiela)
- Add
expo-ads-admob
- Added
isAvailableAsync
. (#9690 by @EvanBacon) - Delete
prop-types
in favor of TypeScript. (#8677 by @EvanBacon)
- Added
@unimodules/react-native-adapter
- Remove
prop-types
(#8681 by @EvanBacon) - Add
Platform.isDOMAvailable
to detect web browser environments. (#8645 by @EvanBacon) - Add
Platform.select()
method to switch values between platforms. (#8645 by @EvanBacon) - Upgrade to
react-native-web@~0.12
. (#9023 by @EvanBacon)
- Remove
expo-app-auth
- Change
unimodulePeerDependencies
topeerDependencies
- Remove
fbjs
dependency
- Change
@unimodules/core
- Expo modules applying
unimodules-core.gradle
now automatically depend onunimodule-test-core
project in Android test flavors if thesrc/test
directory exists in the module project. (In packages published to NPM the directory should not be present, so there's no need to change anything in users' projects.) (#8881 by @mczernek) - App delegates can now handle background URL session events via
application:handleEventsForBackgroundURLSession:completionHandler:
method on iOS. (#8599 by @lukmccall)
- Expo modules applying
expo-auth-session
- Added missing
peerDependencies
. (#8821 by @EvanBacon) - Remove
fbjs
dependency. (#8821 by @EvanBacon) - Created
ResponseType.IdToken
for id_token responses. (#8719 by @EvanBacon) authorizationEndpoint
andtokenEndpoint
are now optional. (#8736 by @EvanBacon)- Added exchange, refresh, and revoke token request methods. (#8051 by @EvanBacon)
- Remove
assert
in favor ofinvariant
. (#8934 by @EvanBacon) - Create built-in
providers/google
for easy Google auth. (#9361 by @EvanBacon) - Create built-in
providers/facebook
for easy Facebook auth. (#9361 by @EvanBacon)
- Added missing
expo-asset
expo-av
- [av] Delete
prop-types
in favor of TypeScript. (#8679 by @EvanBacon) - [av] Directly import
createElement
fromreact-native-web
for RNW v12 support. (#8773 by @EvanBacon)
- [av] Delete
expo-barcode-scanner
- Added constants on web. (#4166 by @EvanBacon)
- Delete
prop-types
in favor of TypeScript. (#8678 by @EvanBacon) BarCodeScanner
is now returning barcode's bounding box on iOS. (#8865 by @lukmccall)
expo-battery
- Remove
fbjs
dependency. (#8822 by @EvanBacon)
- Remove
expo-branch
- Updated
react-native-branch
vendored code to 5.0.0-rc.1, upgraded underlying Branch SDKs, seereact-native-branch
's changelog for full list of changes. (#9625 by @sjchmiela)
- Updated
expo-blur
- Delete
prop-types
in favor of TypeScript. (#8676 by @EvanBacon) - Convert Android and web to class components. (#8856 by @EvanBacon)
- Delete
expo-brightness
- Add permissions for web. (#9671 by @EvanBacon)
- Create
isAvailableAsync
method. (#9668 by @EvanBacon)
expo-calendar
createCalendarAsync
now uses default calendar for givenentityType
ifsourceId
parameter (iOS only) is not provided. (#8570 by @tsapeta)- Create isAvailableAsync method. (#9641 by @EvanBacon)
- Add permissions for web. (#9671 by @EvanBacon)
expo-camera
- Added support for QR scanning on web. (#4166 by @EvanBacon)
- Remove
fbjs
dependency - Delete
prop-types
in favor of TypeScript. (#8680 by @EvanBacon) - [camera] Directly import
createElement
fromreact-native-web
for RNW v12 support. (#8773 by @EvanBacon)
expo-contacts
- Added
isAvailableAsync()
method for guarding against web usage. (#9640 by @EvanBacon) - Add permissions for web. (#9671 by @EvanBacon)
- Added
expo-facebook
- Added method to get Facebook authentication state. (#7101 by @evanbacon)
- Added method to log out of Facebook
logOutAsync()
. (#7101 by @evanbacon)
expo-gl
- Full rewrite of expo-gl-cpp, migration to JSI. (#7948 by @wkozyra95)
- Introduced compatibility with Hermes, however you should treat this feature as unstable so use it with Hermes at your own risk. (#7948 by @wkozyra95)
- Enable stencil buffer on Android (#9928 by @wkozyra95)
expo-image-picker
- Added support for the limited
CAMERA_ROLL
permission on iOS 14. (#9423 by @lukmccall) - Added
videoMaxDuration
option tolaunchCameraAsync()
to configure video recording duration limit. (#9486 by @barthap) - Added a way to handle results when activity was killed by the android. (#9697 by @lukmccall)
- Added support for the limited
expo-linear-gradient
- Remove
prop-types
(#8681 by @EvanBacon)
- Remove
expo-localization
- Added doc blocks for everything. (#8824 by @EvanBacon)
- Added support for SSR environments. (#8824 by @EvanBacon)
Localization.isRTL
defaults tofalse
in node environments. (#8824 by @EvanBacon)
expo-location
- Added missing
altitudeAccuracy
to the location object on Android (requires at least Android 8.0). (#9251 by @tsapeta) - Improved support for Web — added missing methods for requesting permissions and getting last known position. (#9251 by @tsapeta)
- Added
maxAge
andrequiredAccuracy
options togetLastKnownPositionAsync
. (#9251 by @tsapeta) - Google Maps Geocoding API can now be used on all platforms with the new
useGoogleMaps
option. (#9444 by @tsapeta) - Added
district
,subregion
andtimezone
values to reverse-geocoded address object. (#9444 by @tsapeta)
- Added missing
expo-media-library
- Added
options
togetAssetInfoAsync()
, which allows specifying whether to download the asset from network in iOS. (#9405 by @jarvisluong) - Added support for the limited
CAMERA_ROLL
permission on iOS 14. (#9423 by @lukmccall) - Add permissions for web. (#9671 by @EvanBacon)
- Added
expo-screen-capture
expo-notifications
- Added support for including foreign (non-
expo-notifications
-created) notifications ingetPresentedNotificationsAsync
on Android. (#8614 by @sjchmiela) - Added
IosAuthorizationStatus.EPHEMERAL
, an option that maps toUNAuthorizationStatusEphemeral
for compatibility with iOS 14. (#8938 by @ide) - Added support for custom large icon on the Android. (#9116 by @lukmccall)
- Added
sticky
property, which defines if notification can be dismissed by swipe. (#9351 by @barthap) - Added Notification categories functionality to allow for interactive push notifications on Android and iOS! (#9015 by @cruzach)
- Added support for channels to local notifications. (#9385 by @lukmccall)
- Added permissions support for web. (#9576 by @EvanBacon)
- Added support for including foreign (non-
expo-random
- Add a synchronous version of
getRandomBytesAsync
calledgetRandomBytes
. (#9750 by @brentvatne)
- Add a synchronous version of
expo-secure-store
- Create
isAvailableAsync
method. (#9668 by @EvanBacon)
- Create
expo-speech
expo-permissions
- Add
usePermissions
hook to simplify permission handling. (#8788 by @bycedric) - Added support for the limited
CAMERA_ROLL
permission on iOS 14. (#9423 by @lukmccall)
- Add
expo-web-browser
- Added
locked
state toopenBrowserAsync
. (#9254 by @EvanBacon) - Add
secondaryToolbarColor
(Android) flag forWebBrowser
(#8615 by @jdanthinne))
- Added
- When debugging JS remotely console logs are now displayed only in the browser console (instead of both in the browser and CLI console). (#8807 by @sjchmiela)
expo-auth-session
- Added custom
Platform.isDOMAvailable
pending@unimodules/react-native-adapter
update. (#8934 by @EvanBacon)
- Added custom
expo-asset
expo-background-fetch
- Added some safety checks to prevent
NullPointerExceptions
on Android. (#8864 by @mczernek) - Usage fails correctly on web. (#9661 by @EvanBacon)
- Added some safety checks to prevent
expo-av
- Allow playing media files embedded as resources in an Android APK. (#8936 by @esamelson)
- Fix stability issues when changing source and/or useNativeControls on iOS. (#9381 by @IjzerenHein)
- Fix stability issue due to player-item observers not cleaned up on iOS. (#9350 by @IjzerenHein)
- Fix audio recording not working after reload app in iOS. (#9283 by @IjzerenHein)
- Fix native fullscreen events not emitted on iOS. (#9323 by @IjzerenHein)
- Fix duplicate full-screen will-dismiss event on iOS. (#9366 by @IjzerenHein)
- Fix mem-leak when unmounting Video component on iOS. (#9379 by @IjzerenHein)
- Fix audio not resumable when app is in background on iOS (react-native-music-control usage). (#9363 by @IjzerenHein)
- Fix posterStyle warning. (#9384 by @IjzerenHein)
- Fix audio-session not de-activated after unloading sound on iOS. (#9365 by @IjzerenHein)
- Fix debugger break in XCode when removing observations. (#9334 by @IjzerenHein)
- Removed unused and potentionally unsafe call on iOS. (#9436 by @IjzerenHein)
- Fix onReadyForDisplay not emitted for HLS streams/m3u8 files on iOS. (#9443 by @IjzerenHein)
- Fix progress events when no playback is active on Android. (#9545 by @IjzerenHein)
- Fix Video resizeMode not updated on Android. (#9567 by @IjzerenHein)
- Fix Video source always reloaded when changing props on Android. (#9569 by @IjzerenHein)
- Fix blank Video after unlocking screen. (#9586 by @IjzerenHein)
- Fix exception on Android when loading invalid Video source. (#9596 by @IjzerenHein)
- Fix Audio prepareToRecordAsync after it failed once on iOS. (#9612 by @IjzerenHein)
- Improve error-messages on iOS. (#9618 by @IjzerenHein)
expo-barcode-scanner
- Fixed scanner throwing
NullPointerException
when barcode type isn't recognized on Android. (#9006 by @lukmccall)
- Fixed scanner throwing
expo-calendar
- Fix
Calendar.getEventsAsync
crashing whenrecurrenceRules
are incorrect. (#8760 by @lukmccall) - Fixed
Calendar.createEventAsync
crashing whenalarms
were set orendTimeZone
was null. (#9269 by @barthap)
- Fix
expo-camera
- Fix QR scanning on Android and iOS. (#9741 by @EvanBacon)
- [web] Fix bug where swapping cameras caused screen to flicker (#9558 by @EvanBacon)
- [web] Fix bug where swapping cameras doesn't persist camera settings (#9558 by @EvanBacon)
expo-contacts
- Fixed
getContactById
not resolving promise when contact with provided id doesn't exist on Android. (#8976 by @lukmccall) - Fixed
addContactAsync
returning incorrect id on Android. (#8980 by @lukmccall) - Fixed
updateContactAsync
creating a new contact on Android. (#9031 by @lukmccall) - Fixed
updateContactAsync
not returning a contact id on iOS. (#9031 by @lukmccall) - Fixed bug, where sorting contacts by
firstName
orlastName
could cause crash on Android. (#9582 by @barthap)
- Fixed
expo-device
expo-document-picker
- Fixed
getDocumentAsync
crashing when picking a folder on iOS. (#8930 by @lukmccall) - Fixed iOS bug, where it could be impossible to select only videos. (#9720 by @barthap)
- Fixed
expo-error-recovery
expo-file-system
- Fix background URL session completion handler not being called. (#8599 by @lukmccall)
- Fix compilation error on macOS Catalyst (#9055 by @andymatuschak)
- Fixed
uploadAsync
native signature on Android. (#9076 by @lukmccall) - Fixed
uploadAsync
throwingDouble cannot be cast to Integer
on Android. (#9076 by @lukmccall) - Fixed
getInfo
returning incorrect size when provided path points to a folder. (#9063 by @lukmccall) - Fixed
uploadAsync()
returning empty response on iOS. (#9166 by @barthap) - Added docs about Android permissions and removed old storage permission. (#9447 by @bycedric)
expo-gl
- Delete
prop-types
in favor of TypeScript. (#8675 by @EvanBacon) - Fix crashes on iOS14 caused by different integer representation in the new JSC. (#9226 by @wkozyra95)
- Fix bug preventing GLView from rendering in SSR environments. (#9691 by @EvanBacon)
- Delete
expo-google-app-auth
- Fix bug where user cancel on iOS threw an error instead of returning dismissed event. (#8685 by @EvanBacon)
expo-font
expo-image-picker
- Fixed downsizing cropped image, when
allowsEditing
wastrue
. (#9316 by @barthap) - Return array of
ImagePickerResult
whenallowsMultipleSelection
is set totrue
on Web. (#9402 by @isthaison)
- Fixed downsizing cropped image, when
expo-linear-gradient
- Renamed type export
LinearGradienPoint
toLinearGradientPoint
. (#8673 by @EvanBacon)
- Renamed type export
expo-localization
Localization.region
now returnsnull
when a partiallocale
is defined by the browser on web. (#8824 by @EvanBacon)
expo-local-authentication
expo-mail-composer
expo-location
- Added some safety checks to prevent
NullPointerExceptions
in background location on Android. (#8864 by @mczernek) - Add
isoCountryCode
toAddress
type and reverse lookup. (#8913 by @bycedric) - Fix geocoding requests not resolving/rejecting on iOS when the app is in the background or inactive state. It makes it possible to use geocoding in such app states, however it's still discouraged. (#9178 by @tsapeta)
- Fixed different types being used on Web platform. (#9251 by @tsapeta)
getLastKnownPositionAsync
no longer requests for the current location on iOS and just returns the last known one as it should be. (#9251 by @tsapeta)- Fixed
getCurrentPositionAsync
not resolving on Android when the lowest accuracy is used. (#9251 by @tsapeta) - Fixed
LocationGeocodedAddress
type to reflect the possibility of receivingnull
values. (#9444 by @tsapeta)
- Added some safety checks to prevent
expo-media-library
- Handled the crash when calling
getAssetInfoAsync
on a slow motion video on iOS. (#8802 by @jarvisluong) - Fixed
getAssetsAsync()
andgetAssetInfoAsync()
location issues on Android Q. (#9315 by @barthap) - Fixed
getAssetsAsync
crashes when given invalidafter
value on Android. (#9466 by @barthap) - Fixed validation for input arguments of
getAssetsAsync
. (#9538 by @barthap) - Fixed bug, where
getAssetsAsync
did not reject on error on Android. (#9538 by @barthap) - Fixed
getAlbumsAsync()
,getAlbum()
and media change listener crashing on Android 10. (#9666 by @barthap) - Fixed handling albums without name on Android. (#9787 by @barthap)
- Handled the crash when calling
expo-payments-stripe
- Upgraded
Stripe
pod on iOS to fix compatibility with Xcode 11.4. Now you can also customize the version ofStripe
pod installed by setting$StripeVersion
variable in yourPodfile
. (#8594 by @sjchmiela) - Fixed misuse of the native module that caused an unhandled Promise being rejected when
cancelApplePayRequestAsync
was called. (#8864 by @sjchmiela)
- Upgraded
expo-notifications
- Fixed
getExpoPushTokenAsync
rejecting whengetDevicePushTokenAsync
'sPromise
hasn't fulfilled yet (and vice versa). Probably also added support for calling these methods reliably with Fast Refresh enabled. (#8608 by @sjchmiela) - Fixed compatibility with
expo-permissions
below9.0.0
(the duplicate symbols problem). (#8753 by @sjchmiela) - Fixed total incompatibility with the web platform – calling unsupported methods will now throw a readable
UnavailabilityError
. (#8853 by @sjchmiela) - Fix notifications not being displayed after five minutes of phone inactivity on Android. (#9287 by @mczernek)
- Include
content-type: application/json
when requesting an Expo push token (#9332 by @ide) - Export
NotificationPermissions.types
to makeNotifications.IosAuthorizationStatus
available. (#8747 by @brentvatne) - Fixed remote notifications ignoring the
channelId
parameter. (#9080 by @lukmccall) - Fixed malformed data object on iOS. (#9164 by @lukmccall)
- Fixed case where iOS notification category would not be set on the very first call to
setNotificationCategoryAsync
. (#9515 by @cruzach) - Fixed notification response listener not triggering in the managed workflow on iOS when app was completely killed (#9478 by @cruzach)
- Fixed notifications being displayed when
shouldShowAlert
wasfalse
on Android. (#9563 by @barthap) - Fixed
Application Not Responding
occurring in the Google Play Console. (#9792 by @lukmccall)
- Fixed
expo-screen-orientation
- Fix
ScreenOrientation.getOrientationAsync
returning a wrong value when the application is starting. (#8727 by @lukmccall)
- Fix
expo-secure-store
- Fix incorrect security attribute applied when using the flag WHEN_UNLOCKED_THIS_DEVICE_ONLY on iOS (#9264 by @cjthompson)
expo-sensors
- Ensure browser globals
DeviceMotionEvent
andDeviceOrientationEvent
exist before attempting to read from them. (#9236 by @evanbacon) - Fixed bug with low Barometer resolution on iOS. (#9441 by @barthap)
- Ensure browser globals
expo-sharing
expo-speech
expo-permissions
- Ensure browser globals
DeviceMotionEvent
andDeviceOrientationEvent
exist before attempting to read from them. (#9236 by @evanbacon) - Fixed
askAsync
rejecting withpermission cannot be null or empty
in the bare workflow. (#8910 by @lukmccall) - Fixed
getPermissionsAsync
returning incorrect status in the Expo Client app on iOS. (#9060 by @lukmccall) - Remove require cycle for
usePermissions
hook. (#9219 by @EvanBacon)
- Ensure browser globals
expo-sqlite
expo-sms
expo-store-review
- [store-review] Fix doc blocks. (#8714 by @EvanBacon)
- Implemented native In-App Review for Android. (#9607 by @spezzino)
expo-task-manager
expo-web-browser
- Fix native Android dependencies used in tests - Kotlin and testing libraries. (#8881 by @mczernek)
- Removed unncecessary Android dependencies. (#9538 by @barthap)
- Fixed
openAuthSessionAsync
crashing when cancelled on iOS. (#9722 by @barthap) - Improve error message when something goes very wrong while loading an app in Expo client (#10239 by @brentvatne)
- Updated
react-native
from0.61.4
to0.62.2
. (#8310, #8542 by @sjchmiela) - Updated
react-native-screens
from2.2.0
to2.9.0
. (#8434 by @sjchmiela) - Updated
react-native-shared-element
from0.5.6
to0.7.0
. (#8427 by @IjzerenHein) - Updated
react-native-reanimated
from1.7.0
to1.9.0
. (#8424 by @sjchmiela) - Updated
react-native-safe-area-context
from0.7.3
to3.0.0
. (#8459, #8479, #8549 by @brentvatne and @tsapeta) - Updated
@react-native-community/datetimepicker
from2.2.2
to2.4.0
. (#8476 by @tsapeta) - Updated
react-native-webview
from8.1.1
to9.4.0
. (#8489 by @tsapeta) - Updated
react-native-svg
from11.0.1
to12.1.0
. (#8491 by @tsapeta) - Updated
react-native-maps
from0.26.1
to0.27.1
. (#8495 by @esamelson) - Updated
@react-native-community/netinfo
from5.5.1
to5.9.2
. (#8499 by @esamelson) - Updated
@react-native-community/masked-view
from0.1.6
to0.1.10
. (#8499 by @esamelson)
react-native-view-shot
is no longer installed by default, install it withexpo install react-native-view-shot
. (#7950 by @evanbacon)- The AR module has been removed from the
expo
package. See https://expo.fyi/deprecating-ar for more information. (#8442 by @sjchmiela) - Importing
Linking
fromexpo
package is now deprecated. Useexpo-linking
module instead. (#8659 by @tsapeta) expo-battery
expo-camera
- The base64 output will no longer contain newline and special character (
\n
,\r
) on Android. (#7841 by @jarvisluong)
- The base64 output will no longer contain newline and special character (
expo-file-system
FileSystem.downloadAsync
andFileSystem.DownloadResumable
work by default when the app is in background too — they won't reject when the application is backgrounded. (#7380 by @lukmccall)FileSystem.downloadAsync
andFileSystem.DownloadResumable
will reject when invalid headers dictionary is provided. These methods accept onlyRecord<string, string>
. (#7380 by @lukmccall)FileSystem.getContentUriAsync
now returns a string. (#7192 by @lukmccall)
expo-image-manipulator
- The base64 output will no longer contain newline and special character (
\n
,\r
) on Android. (#7841 by @jarvisluong)
- The base64 output will no longer contain newline and special character (
expo-image-picker
- The base64 output will no longer contain newline and special character (
\n
,\r
) on Android. (#7841 by @jarvisluong)
- The base64 output will no longer contain newline and special character (
expo-print
- The base64 output will no longer contain newline and special character (
\n
,\r
) on Android. (#7841 by @jarvisluong)
- The base64 output will no longer contain newline and special character (
expo-secure-store
- The base64 output will no longer contain newline and special character (
\n
,\r
) on Android. (#7841 by @jarvisluong)
- The base64 output will no longer contain newline and special character (
expo-sensors
DeviceMotion.addListener
emits events withrotationRate
in degrees instead of radians on all platforms. (#7876 by @evanbacon)DeviceMotion.addListener
emits events withrotationRate
in the form of alpha = x, beta = y, gamma = z on all platforms. (#7876 by @evanbacon)
expo-permissions
- Removed support for fetching notifications-related permissions (they have been moved to
expo-notifications
package). You no longer will be able to callgetAsync
oraskAsync
with.NOTIFICATIONS
or.USER_FACING_NOTIFICATIONS
without havingexpo-notifications
package installed. (#8486 by @sjchmiela)
- Removed support for fetching notifications-related permissions (they have been moved to
- Initial release of
expo-screen-capture
🥳 - Initial release of
expo-notifications
🥳 - Added
@react-native-community/segmented-control
in version1.6.1
. (#8038 by @marchenk0va and #8441 by @tsapeta) - Added
@react-native-community/slider
version3.0.0
. (#8451 by @brentvatne) - Added
@react-native-community/picker
version1.6.0
. (#8451 by @brentvatne) - Added
@react-native-community/async-storage
support for version1.11.0
. (@react-native-community/async-storage#368) expo-apple-authentication
- Add 'Sign up with Apple' option (available as of iOS 13.2). (#7471 by @IjzerenHein)
expo-file-system
- Add
FileSystem.uploadAsync
method. (#7380 by @lukmccall) - Add ability to read Android
raw
anddrawable
resources inFileSystem.getInfoAsync
,FileSystem.readAsStringAsync
, andFileSystem.copyAsync
. (#8104 by @esamelson)
- Add
expo-face-detector
- Added support for overriding the iOS Firebase SDK version in the bare workflow. (#7141 by @IjzerenHein)
expo-firebase-analytics
- Add
setDebugModeEnabled
for enabling DebugView on the Expo client. (#7796 by @IjzerenHein)
- Add
expo-gl
- Improved logging and added some more logging options. (#7550 by @tsapeta)
- Add WebP format as an option when taking GL snapshots (Android only). (#7490 by @pacoelayudante)
expo-local-authentication
- Added support for
promptMessage
,cancelLabel
anddisableDeviceFallback
on Android. (#8219 by @diegolmello) - Added iris local authentication type for Android. (#8431 by @bycedric)
- Added support for
expo-sms
- Add
attachments
as an optional parameter tosendSMSAsync
. It can be used to provide an attachment along with the recipients and message arguments. (#7967 by @thorbenprimke)
- Add
expo-sensors
DeviceMotion.addListener
emits events withinterval
property. (#7876 by @evanbacon)
expo-web-browser
expo-camera
- Added exports for TypeScript definitions: CameraType, ImageType, ImageParameters, ImageSize, CaptureOptions, CapturedPicture (#8457 by @jarvisluong)
expo-permissions
- If permission is not recognized, show the correct expo package to link. ([#8546])(expo#8046) by @jarvisluong
- Fixed
androidNavigationBar.hidden
configuration not remaining applied after backgrounding & foregrounding the app. (#7770 by @cruzach) @unimodules/core
- Fixed error when serializing a
Map
containing anull
(#8153 by @sjchmiela) - Fixed a rare undetermined behavior that may have been a result of misuse of
dispatch_once_t
on iOS (#7576 by @sjchmiela) - Fixed error when serializing a
Map
containing aBundle
(#8068 by @sjchmiela) - Fixed unused variable warnings in
UMAppDelegateWrapper
(#8467 by @sjchmiela) - Fixed a bug in
UMAppDelegateWrapper
when it's used with Swift. (#8526 by @EvanBacon)
- Fixed error when serializing a
expo-av
- Fix unable to call presentFullScreenPlayer twice. (#8343 by @IjzerenHein)
- Fixed multiplied callbacks in
expo-av
after replaying (#7193 by @mczernek) - Fixed
Plaback.loadAsync()
return type. (#7559 by @awinograd) - Fixed the adaptive streaming for exoplayer on android. (#8380 by @watchinharrison)
expo-auth-session
- Fix
AuthSession.getDefaultReturnUrl()
returning wrong URL while using release channels. (#7687 by @lukmccall)
- Fix
expo-brightness
- Fixed
Brightness.requestPermissionsAsync
throwingpermission cannot be null or empty
error on Android. (#7276 by @lukmccall)
- Fixed
expo-calendar
- Fixed
Calendar.getCalendarsAsync
requiring not needed permissions on iOS. (#7928 by @lukmccall) - Fix
recurrence rule
andevent
parsing. (#7527 by @lukmccall)
- Fixed
expo-constants
- Fixed
uuid
's deprecation of deep requiring (#8114 by @actuallymentor)
- Fixed
expo-contacts
- Fix
Contacts.presentFormAsync
pre-filling. (#7285 by @abdelilah & @lukmccall)
- Fix
expo-firebase-analytics
- Fix no events recorded on the Expo client when running on certain Android devices. (#7679 by @IjzerenHein)
- Fix
setAnalyticsCollectionEnabled
throwing an error. - Fixes & improvements to the pure JS analytics client. (#7796 by @IjzerenHein)
- Fixed logEvent in
expo-firebase-analytics
for Android. logEvent's optional properties parameter was causing a NPE on Android when not provided. (#7897 by @thorbenprimke) - Fixes
parseEvent
andparseUserProperty
to allow numeric characters in the name parameter. (#8516 by @thorbenprimke)
expo-font
- Fixed timeout on Firefox #7420
expo-gl
expo-keep-awake
- Fixed
KeepAwake.activateKeepAwake
not working with multiple tags on Android. (#7197 by @lukmccall)
- Fixed
expo-image-picker
- Fixed exception when calling
ImagePicker.getCameraPermissionsAsync
on Web. (#7498 by @IjzerenHein) - Skip asking for camera permissions on web with
ImagePicker.getCameraPermissionsAsync
. (#8475 by @EvanBacon)
- Fixed exception when calling
expo-localization
- Fixed
Localization.locale
throwing an exception on the iOS simulator. (#8193 by @lukmccall)
- Fixed
expo-media-library
- Added missing image loader for
MediaLibrary
in bare workflow. (#8304 by @tsapeta) - Fixed
MediaLibrary
not compiling with theuse_frameworks!
option in the bare React Native application. (#7861 by @Ashoat) - Flip dimensions based on media rotation data on Android to match
<Image>
and<Video>
as well as iOS behavior. (#7980 by @Ashoat)
- Added missing image loader for
expo-permissions
- Fix permissions in the headless mode. (#7962 by @lukmccall)
- Fixed
permission cannot be null or empty
error when asking forWRITE_SETTINGS
permission on Android. (#7276 by @lukmccall) - Fixed a rare undetermined behavior that may have been a result of misuse of
dispatch_once_t
on iOS (#7576 by @sjchmiela) - Fixed
Permissions.NOTIFICATIONS
was granted even if notifications were disabled. (#8539 by @lukmccall)
expo-screen-orientation
- Fixed
ScreenOrientation.addOrientationChangeListener
payload to match docs. (#7774 by @awinograd) - Fixed
ScreenOrientation.lockAsync
to properly convert to web platform equivalent of chosen lock. (#7774 by @awinograd)
- Fixed
expo-sensors
- All sensors use more precise gravity
9.80665
instead of9.8
. (#7876 by @evanbacon)
- All sensors use more precise gravity
expo-web-browser
- Fix
WebBrowser
sendingdismiss
before opening. (#6743 by @LucaColonnello)
- Fix
unimodules-app-loader
- Fixed
appLoaderRegisteredForName
to not only check if a loader class name is in the cache for the provided name but also verifies that the cached and current class name match. When migrating from managed to bare, the class name cache needs to be updated. (#8292 by @thorbenprimke)
- Fixed
expo-local-authentication
@unimodules/react-native-adapter
- Made it possible for SSR (node) environments that don't bundle using platform extensions to work without resolving native code. (#8502 by @EvanBacon)
expo-background-fetch
expo-sqlite
- Fixed support for using
expo-sqlite
on Web (#8518 by @sjchmiela)
- Fixed support for using
expo-task-manager
- Updated
react-native-shared-element
from0.5.1
to0.5.6
. (#7033 by @IjzerenHein) - Updated
@react-native-community/netinfo
from4.6.0
to5.5.0
. Some deprecated methods have been removed in this version, make sure to check outNetInfo
docs for available API. (#7095 by @tsapeta) - Updated
@react-native-community/datetimepicker
from2.1.0
to2.2.2
. (#7119 by @tsapeta) - Updated
react-native-gesture-handler
from1.5.1
to1.6.0
. (#7121 by @tsapeta) - Updated
@react-native-community/masked-view
from0.1.5
to0.1.6
. - Updated
@react-native-community/viewpager
from2.0.2
to3.3.0
. - Updated
react-native-reanimated
from1.4.0
to1.7.0
. - Updated
react-native-svg
from9.13.3
to11.0.1
. - Updated
react-native-view-shot
from3.0.2
to3.1.2
. - Updated
react-native-webview
from7.4.3
to8.1.1
. - Updated
react-native-appearance
from0.2.1
to0.3.3
. (#7250 by @tsapeta) - Updated
react-native-safe-area-context
from0.6.0
to0.7.3
. - Updated
react-native-screens
from2.0.0-alpha.12
to2.2.0
🎉. (#7183 by @tsapeta, (#7201 @bbarthec), (#7215 @LinusU)
- Android push notifications: your Google API key specified in
google-services.json
must allow access to the Cloud Messaging API if you have restricted your API key to access only specific APIs. In the Google Cloud console, browse to APIs & Services -> Credentials. Find the API key that is associated with your app and click the pencil icon to edit it. Under "API restrictions", if the key is restricted, add "Firebase Installations API" and "Cloud Messaging" to the set of allowed APIs and save the changes. (Technical note: Google changed the underlying Firebase Cloud Messaging library incom.google.firebase:firebase-messaging:20.1.2
to depend on the Firebase Installations API, which applies API key restrictions. See Google's notes here and here.) expo-app-auth
Remove SSL features from unsafe connection builder. (#7187 by @evanbacon)expo-constants
Constants.deviceName
now only returns the possible Browser name and doesn't fallback to engine or OS name. (#6809 @evanbacon)expo-constants
Constants.platform.web
now only returns theua
(user agent string). (#6809 @evanbacon)expo-crypto
Removed support for the MD2 and MD4 hashing algorithms in the Expo client and standalone apps. (#6464 @sjchmiela)- Enriched
androidStatusBar
configuration inapp.json
. (#6506 @bbarthec) - Extended
androidNavigationBar.visible
configuration inapp.json
. To keep the same behavior as before, change yourandroidNavigationBar.visible
field fromfalse
toleanback
. (#7049 @cruzach) expo
: RemovedAuthSession
from theexpo
package and extracted intoexpo-auth-session
unimodule. (#6989 by @lukmccall)expo
: RemovedScreenOrientation
from theexpo
package and extracted intoexpo-screen-orientation
unimodule. (#6760 by @lukmccall)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)- Removed
Orientation.PORTRAIT
andOrientation.LANDSCAPE
fromScreenOrientation
in favor of their more specific versions. (#6760 by @lukmccall) LocalAuthentication.authenticateAsync
will now display Android's UI component to prompt the user to authenticate. (#6846 by @LinusU)StatusBar
on Android hasdark-content
by default to match iOS. (#7317 @bbarthec)- All native Facebook API calls made in the Expo Client app on iOS are made with the Expo Client's own Facebook App ID. (#7931 by @cruzach)
- Fixed loading images for manipulation in
expo-image-loader
. (#7417 by @mczernek) - Added support for video mirroring with
expo-camera
. (#7016 by @scandinaro) - Added support for badge numbers. (#4562 by @jaulz)
expo-task-manager
supports bare workflow. (#6828 by @mczernek)- Add support for
expo-firebase-core
. (#7013 by @IjzerenHein) - Add support for
expo-firebase-analytics
. (#7017 by @evanbacon and @IjzerenHein) - Add
MailComposer.isAvailableAsync
method. (#6552 by @evanbacon) - Add
showInRecents
option to theAuthSessions.startAsync
determining whether a browsed website should be shown as a separate entry in Android recent/multitasking view. (#6701 by @esamelson) - Replaced
FingerprintManager
withBiometricPrompt
fromAndroidX
inLocalAuthentication
. (#6846 by @LinusU)
- Fixed parsing booleans in
SQLite
(#7225 by @mczernek) - 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) - Fixed a bug where
safariViewControllerDidFinish
is not called if you close the webview with the "Swipe to dismiss" gesture. (#6581 by @axeldelafosse) - Fixed
FileSystem.downloadAsync()
throwingNullPointerException
in rare failures on Android. (#6819 by @jsamr) MediaLibrary.saveToLibraryAsync
andMediaLibrary.createAssetAsync
will throw an error when provided path does not contain an extension. (#7030 by @lukmccall)- Fixed
FileSystem.getTotalDiskCapacityAsync()
incorrectly returning2^53 - 1
instead of the actual total disk capacity. (#6978 by @cruzach) - Fixed
VideoThumbnails.getThumbnailAsync
crashing when the provided file is corrupted. (#6877 by @lukmccall) - Fixed
Linking.openSettings
is undefined. (#7128 by @lukmccall) - Fixed
Linking.sendIntent
is undefined. (#7386 by @brentvatne) - Fixed
Camera.takePictureAsync
not resolving promise when native camera isn't ready on iOS. (#7144 by @bbarthec) - Fixed NPE crash in GeofencingTaskConsumer when
mTask
is made null mid-execution. (#7147 by @briefjudofox) - Fixed
ImagePicker.launchCameraAsync
reloading the application on the OnePlus 7. (#7162 by @lukmccall) - Fixed the bare React Native application not compiling with the
use_frameworks!
option. (#6503 by @lukmccall) - Fixed
AppRegistry.setWrapperComponentProvider
in managed Expo apps. (#6530 by @serhiipalash) - Fixed
Facebook SDK
not being fully initialized. (#6527 by @sjchmiela) - Fixed
Battery
import breaking on Web. (#6545 by @evanbacon) - Fixed the
RedBox
being covered by the notch on Android. (#6644 by @cruzach) - Fixed SSR support in
ErrorRecovery
. (#6672 by @evanbacon) - Fixed
Linking.makeUrl
andLinking.parse
not matching. (#6688 by @cruzach) - Fixed
StoreReview.requestReview
throwingNullPointerException
in the bare workflow. (#6713 by @cruzach) - Fixed NDK not installing when running
yarn setup:native
. (#6685 by @IjzerenHein) - Fixed
Linking
not decoding query parameters. (#6774 by @cruzach) - Fixed
Contacts
not saving the year correctly. (#6744 by @tasn) - Fixed
Audio.setAudioModeAsync
parameter type. (#6833 by @mxhold) - Fixed
LocalAuthentication.authenticateAsync
resulting in theuser_cancel
error immediately on Android. (#6962 by @LinusU) - Fixed
Permissions.askAsync
crashing on devices with Android 21 and 22 in the bare workflow. (#6736 by @lukmccall) - Fixed
HeadlessAppLoader
crashing after the activity is killed. (#6879 by @tasn) - Fixed
fields
parameter type inContacts.getContactByIdAsync
method. (#6910 by AryanJ-NYC) - Fixed
DocumentPicker.DocumentResult
type. (#7064 by @SimenB) - Fixed
Constants.installationId
beingnull
in the bare workflow after ejecting. (#6906 by @cruzach) - Fixed
Facebook.logInWithReadPermissionsAsync
method throwing error (undefined is not an object (evaluating '_ref.type')
). by (#6527 by @sjchmiela) - Fixed some TypeScript types not being exported. (#7120 by @lukmccall)
- Fixed
TaskManager.defineTask
logging too many warnings and not working well with Fast Refresh. (#7202 by @tsapeta) - Added doc comments to
TaskManager
and exported more types. (#7202 by @tsapeta) - Fixed
Facebook.logInWithReadPermissionsAsync
redirecting to a blank white screen in the Expo Client app on iOS. (#7931 by @cruzach) - Fixed
Facebook.logInWithReadPermissionsAsync
resulting in the WebBrowser login modal remaining open after redirecting back to the app if selected "Sign in with Facebook app." (#7931 by @cruzach)
@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-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
[email protected]
.
- 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
[email protected]
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)