expo-modules-core
Advanced tools
Changelog
52.0.0 — 2024-11-08
react-native-svg
from 15.2.0
to 15.7.1
. (#31567 by @lukmccall)unimodules-app-loader
expo-web-browser
expo-video-thumbnails
expo-task-manager
expo-store-review
expo-sqlite
expo-secure-store
expo-sms
expo-speech
expo-sensors
expo-screen-capture
expo-sharing
expo-print
expo-screen-orientation
expo-network
expo-notifications
expo-modules-core
expo-media-library
expo-mail-composer
expo-location
expo-local-authentication
expo-localization
expo-linking
expo-keep-awake
expo-linear-gradient
expo-image-manipulator
expo-image-picker
READ_MEDIA_IMAGES
and READ_MEDIA_VIDEO
permissions. (#31902 by @aleqsio)quality
option has been changed from 0.2
to 1.0
for better performance and to match the most common expectation. (#30896 by @tsapeta)ImagePicker.MediaTypeOptions
have been deprecated. Use a single MediaType or an array of MediaTypes instead. (#30957 by @behenate)expo-gl
expo-face-detector
expo-image-loader
expo-haptics
expo-document-picker
expo-font
expo-device
expo-file-system
expo-contacts
expo-crypto
expo-constants
expo-clipboard
expo-cellular
expo-camera
expo-camera/legacy
. (#32173 by @alanjhughes)expo-calendar
expo-brightness
expo-battery
expo-blur
expo-background-fetch
expo-av
expo-asset
expo-apple-authentication
expo-application
expo-web-browser
dismissBrowser
function updated to return a promise. (#31210 by @nishan) (#31210 by @intergalacticspacehighway)expo-sqlite
@react-native-async-storage/async-storage
. (#31596, #31676 by @kudo)expo-secure-store
expo-sensors
expo-network
expo-notifications
expo-modules-core
onKeyDown
and onKeyLongPress
to ReactActivityHandler
on Android. (#28684 by @lukmccall)onUserLeaveHint
. (#32033 by @behenate)startObserving
and stopObserving
on the web. (#28953 by @aleqsio)EventEmitter
to the C++ implementation. (#28946 by @tsapeta)OnStartObserving
and OnStopObserving
can now be attached to a specific event. (#29012 by @lukmccall)SharedObject
from functions. (#30426 by @lukmccall)customizeRootView
in ExpoAppDelegateSubscriber
. (#30550 by @alanjhughes)toJSON
function on shared objects that includes dynamic properties defined in their prototype chain. (#30813 by @tsapeta)EitherTypeConverter
now can work with the Dynamic
class. (#31074 by @lukmccall)SharedRef
converter now checks the inner ref type. (#31441 by @lukmccall)expo.SharedRef
). (#31513 & #31706 by @lukmccall) (#31513, #31706 by @lukmccall)onStartListeningToEvent
and onStopListeningToEvent
to the SharedObject
. (#31385 by @lukmccall)nativeRefType
to SharedRef
. (#31776 by @lukmccall)kotlin.time.Duration
support. (#31858 by @lukmccall)CMTime
from CoreMedia
a convertible type. (#31967 by @tsapeta)expo-media-library
expo-location
expo-local-authentication
expo-linking
react-server
environments. (#31622 by @EvanBacon)getLinkingURL
function. (#29405 by @aleqsio)expo-linear-gradient
expo-image-manipulator
ImageManipulator.manipulate
and useImageManipulator
. (#32346 by @tsapeta)ImageManipulator.manipulate
and useImageManipulator
. (#32346, #32354 by @tsapeta)ImageManipulator.manipulate
and useImageManipulator
. (#32398 by @lukmccall)expo-image-picker
file
object from input for server uploads. (#31788 by @EvanBacon)expo-haptics
expo-font
expo-device
expo-file-system
File
and Directory
constructors. (#31467 by @aleqsio)exists()
function to a property. (#31522 by @aleqsio)parentDirectory
, extension
fields to the new file system module. (#31333 by @aleqsio)base64()
new file system module. (#31357 by @aleqsio)Paths.appleSharedContainers
to get the paths to the Apple App Groups shared containers. (#31525 by @IgorKhramtsov and @kudo) (#31525 by @IgorKhramtsov, @kudo)expo-constants
expo-camera
autoFocus
prop to allow setting the device focus mode. (#28650 by @alanjhughes)Android
, add support for setting the aspect ratio of the camera. (#29822 by @alanjhughes)Android
, support mirroring video when using front facing camera. Control mirroring with a prop. Deprecate mirror
option on takePictureAsync
and recordAsync
. (#30548 by @alanjhughes)active
prop to stop and start the camera session. Useful with navigation where the camera is can still be active on a previous screen. (#30802 by @alanjhughes)shutterSound
key to CameraPictureOptions
, allowing users to disable the camera shutter sound when invoking takePictureAsync
. (#31038) by @yuna5566 (#31038 by @yuna5566)expo-calendar
expo-av
expo-web-browser
expo-video-thumbnails
expo-task-manager
expo-store-review
expo-sqlite
NativeStatementBinding
. (#29937 by @lukmccall)<SQLiteProvider assetSource={{ assetId: require(...) }}>
database always being overwrite on iOS 16 and lower. (#29945 by @kudo)react
and react-native
peer dependencies for isolated modules. (#30483 by @byCedric)incremental_installation
mode in CocoaPods. (#30918 by @kudo)app.json
doesn't specify any plugin properties for expo-sqlite
. (#31672 by @kudo)SQLiteDatabase -> pathUtils -> SQLiteDatabase
require cycle warning from metro. (#31956 by @kudo)expo-secure-store
expo-secure-store
data. (#29943 by @behenate)expo-speech
expo-sensors
expo-screen-capture
ScreenCaptureModule
was crashing in the dev-client when going back to the home screen. (#29694 by @lukmccall)react
peer dependencies for isolated modules. (#30480 by @byCedric)expo-print
expo-screen-orientation
expo-network
java.lang.IllegalArgumentException: NetworkCallback was not registered
. (#30185 by @lukmccall)react
peer dependencies for isolated modules. (#30477 by @byCedric)expo-notifications
placeholder
instead of the actual user input (#27479 by @Victor-FT)useLastNotificationResponse
should have only one effect. (#30653 by @douglowder)channelId
into account when presenting notifications. (#31201 by @vonovak)createNotificationChannel
could return incorrect channel information (#32000 by @vonovak)ChannelAwareTrigger
not being presented (#31999 by @vonovak)PermissionStatus
as value, not as type (#31968 by @vonovak)react
and react-native
peer dependencies for isolated modules. (#30478 by @byCedric)NotificationTrigger
type (#32659 by @vonovak)expo-modules-core
No implementation found for com.facebook.jni.HybridData expo.modules.kotlin.jni.JavaScriptModuleObject.initHybrid
. (#29513 by @lukmccall)null
to Record
sometimes didn't work as expected. (#29508 by @lukmccall)ExpoRequestInterceptorProtocol
. (#29798 by @kudo)getPathPermissions
permission error for local path with spaces on iOS 16 and older. (#29958 by @kudo)addUIBlock
and executeUIBlock
on New Architecture mode. (#30030 by @kudo)RCTTriggerReloadCommandListeners
not found build error on iOS. (#30014 by @kudo)RNHeadlessAppLoader
class for New Architecture support. (#32146 by @chrfalch)null
to be null
instead of undefined
. (#31301 by @aleqsio)Enumerable
s did not correctly convert to JS values. (#30191 by @vonovak)uuid
mock in jest-expo
. (#29840 by @EvanBacon)getContext().getNativeModule(UIManagerModule.class)
in Bridgeless. (#29203 by @arushikesarwani94)PersistentFileLogSpec.swift
. (#28924 by @hakonk)Swift.Float
. (#29053 by @behenate)getName
of ModuleRegistryReadyNotifier.java
(#30358 by @WoLewicki)SharedObject
that was passed as an argument is returned, it no longer creates a new object. (#30231 by @lukmccall)expo.modules.kotlin.jni.tests.RuntimeHolder
class not found crash when R8 is enabled. (#30572 by @kudo)Class declares 0 type parameters, but X were provided
on Android when R8 is enabled. (#30659 by @lukmccall)CodedException.getCode()
crash when R8 is enabled. (#31392 by @kudo)Either
. (#31443 by @lukmccall)Missing class expo.modules.kotlin.types.ExperimentalJSTypeConverter$URIConverter
. on macOS host. (#31452 by @kudo)No space left on device
when saving persistent log. (#31583 by @RodolfoGS)AppContext
instance. (#31897 by @lukmccall)registerAdditionalModuleClasses
deadlock issue on old architecture mode. (#32209 by @kudo)EXAppDelegateWrapper
to fix crashes caused by deallocated RCTFabricSurface
. (#32233 by @tsapeta)ExpoRequestCdpInterceptor
. (#32289 by @kudo)use_frameworks!
. (#32358 by @kudo)expo-media-library
iOS
, add back image loader to handle ph://
and assets-library://
schemes. (#29747 by @alanjhughes)iOS
, getAssets crashed when result was is empty (#29969 by @vonovak)Android
, throw an error when deleting an asset was unsuccessful. (#29777 by @mathieupost)react-native
peer dependencies for isolated modules. (#30476 by @byCedric)Android
, adding an asset to an album containing another album would throw an exception. (#29777 by @nafeij) (#31027 by @Nafeij)expo-location
iOS
, fix an issue where if the user selects "Allow Once" for location permissions, we needed to request background permissions twice because the first time had effect. (#29272 by @alanjhughes)expo-local-authentication
expo-localization
regionCode
response on iOS. (#32081 by @aleqsio)react
peer dependencies for isolated modules. (#30474 by @byCedric)expo/config
to follow proper dependency chains. (#30501 by @byCedric)expo/config-plugins
to follow proper dependency chains. (#30499 by @byCedric)expo-linking
react
and react-native
peer dependencies for isolated modules. (#30473 by @byCedric)expo-keep-awake
expo-linear-gradient
expo-image-manipulator
iOS
correctly handle urls coming from the users photo library. (#28777 by @alanjhughes)expo-image-picker
expo/config-plugins
to follow proper dependency chains. (#30499 by @byCedric)expo-gl
textureRef
in EXGLCameraObject
. (#29092 by @hakonk)react
and react-native
peer dependencies for isolated modules. (#30468 by @byCedric)react-native-web
optional peer dependency for isolated modules. (#30689 by @byCedric)expo-document-picker
video/*
MIME Type not allowing to select videos with audio. (#29673 by @gabrieldonadel)expo-font
iOS
, store the font postscriptName
instead of fullName
which is what iOS
will use to register the font. (#29502 by @alanjhughes)iOS
, fix issues where fonts were removed when the app is backgrounded. (#30400 by @alanjhughes)useFonts
could previously attempt to set state on an unmounted component (#31143 by @vonovak)loadAsync()
will reject if font loading fails. (#31053 by @vonovak)react
peer dependencies for isolated modules. (#30467 by @byCedric)expo/config
to follow proper dependency chains. (#30501 by @byCedric)expo-file-system
getFreeDiskStorageAsync
returns result that's closer to the value reported by the system. (#29732 by @vonovak)EXFileSystemAssetLibraryHandler
. (#29091 by @hakonk)react-native
peer dependencies for isolated modules. (#30466 by @byCedric)expo-contacts
requestPermissionsAsync
promise throws when denying access to contacts on iOS. (#29529 by @jp1987)presentFormAsync
promise doesn't resolve when the form is closed on Android. (#29201 by @jp1987)presentContactPickerAsync
promise doesn't resolve when using the Android back button. (#29202 by @jp1987)react-native
peer dependencies for isolated modules. (#30465 by @byCedric)ContactQuery
id
field not accepting arrays. (#32651 by @behenate)expo-constants
expo-clipboard
expo-cellular
expo-camera
iOS
, fix ean13
barcodes not returning data. (#28674 by @alanjhughes)maxDuration
in CameraRecordingOptions
. (#28749 by @alanjhughes)iOS
, fix dead frames when switching from picture to video. (#28783 by @alanjhughes)iOS
, prevent a crash when rendering the view on a simulator. (#28911 by @alanjhughes)iOS
, fix incorrect orientation when taking pictures in landscape. (#28917 by @alanjhughes)iOS
, set previewLayer on scanner to get correct dimensions. (#28931 by @alanjhughes)Android
, correctly handle orientation when landscape pictures are rendered. (#28929 by @alanjhughes)web
, fix missing function "getCapabilities" in Firefox. (#28947 by @miso-belica)iOS
, return the correct orientation in the exif data. (#29681 by @alanjhughes)Android
, correct image orientation when exif
is set to true in takePictureAsync
. (#29712 by @alanjhughes)iOS
, fix calling takePicture
from the simulator. (#30103 by @alanjhughes)iOS
, fix touch interactions when using gesture handler. (#30338 by @alanjhughes)iOS
, correctly stop the session when the CameraView
is removed. (#30580 by @alanjhughes)scaleType
when the aspect ratio is set. (#30831 by @alanjhughes)pictureSize
. (#31093 by @alanjhughes)react
and react-native
peer dependencies for isolated modules. (#30462 by @byCedric)expo/config-plugins
to follow proper dependency chains. (#30499 by @byCedric)react-native-web
optional peer dependency for isolated modules. (#30689 by @byCedric)takePictureAsync
quality
option when set to 0. (#31587 by @davidavz)sublayers
on 0.75 and above on the new architecture. (#32194 by @alanjhughes)Actor
to ensure correct order of changes to the barcode scanners outputs. (#32353 by @alanjhughes)expo-calendar
iOS
, workaround a bug in iOS 15 where an invalid EKCalendarType
is returned in the calendar object when siri suggestions are enabled. (#28714 by @alanjhughes)getEventsAsync
to return events sorted by start date (#28353 by @demfabris)react-native
peer dependencies for isolated modules. (#30461 by @byCedric)expo-brightness
expo-battery
expo-blur
expo-auth-session
expo-av
shouldCorrectPitch
being ignored on web. (#28837 by @behenate)loadAsync()
promise never settled when given an invalid file uri (#30020 by @vonovak)react
and react-native
peer dependencies for isolated modules. (#30456 by @byCedric)react-native-web
optional peer dependency for isolated modules. (#30689 by @byCedric)NullPointerException
in the installJSIBindings
function. (#31464 by @lukmccall)expo-asset
expo-apple-authentication
expo-web-browser
Platform.Version
checks. (#31557 by @reichhartd)expo-video-thumbnails
MediaMetadataRetriever
is safely released. (#29015 by @lukmccall)expo-task-manager
TaskManagerTaskExecutor
. (#32557 by @Simek)expo-store-review
expo-sqlite
EventEmitter
instance. (#28946 by @tsapeta)@testing-library/react-hooks
with @testing-library/react-native
. (#30742 by @byCedric)@expo/dom-webview
. (#31662 by @kudo)enableCRSQLite
and show a warning if using this option. (#32117 by @kudo)expo-sqlite/async-storage
to expo-sqlite/kv-store
. (#32699 by @kudo)expo-secure-store
NativeModulesProxy
occurrences. (#31496 by @reichhartd)expo-sms
NativeModulesProxy
occurrences. (#31496 by @reichhartd)expo-speech
expo-sensors
EventEmitter
instance. (#28946 by @tsapeta)expo-screen-capture
EventEmitter
instance. (#28946 by @tsapeta)useScreenCapturePermissions
to usePermissions
in the example. (#30076 by @mrakesh0608)expo-module-scripts
. (#31915 by @reichhartd)expo-screen-orientation
EventEmitter
instance. (#28946 by @tsapeta)NativeModulesProxy
occurrences. (#31496 by @reichhartd)expo-notifications
interruptionLevel
. (#28921 by @lukmccall)expo-modules-core
ExpoFabricView
and remove the view wrapper for each native component. (#28829 by @kudo)Utilities
class for Expo Modules common tasks. (#29945 by @kudo)customizeRootView:
support to EXAppDelegateWrapper.createRCTRootViewFactory
. (#30245 by @kudo)Record
and Field
implementations (#31997 by @vonovak)process.env
type. (#31267 by @EvanBacon)async
extension for OkHttp requests. (#30841 by @aleqsio)sideEffects
to use src
folder. (#29964 by @EvanBacon)crypto
object for UUID. (#29828 by @EvanBacon)process.env.EXPO_OS
for Platform.OS
and Platform.select
, when available. (#29429 by @EvanBacon)EventEmitter
) from expo-modules-core/types
. (#28994 by @tsapeta)process
object declaration to global declaration. (#29745 by @tsapeta)src
folder as the Metro target. (#29702 by @tsapeta)pointer
property in the SharedRef
class to ref
for parity with Android. (#30061 by @tsapeta)noexcept
. (#30128 by @lukmccall)AppContext
(#30098 by @lukmccall)URLSessionSessionDelegateProxy
class. (#30173 by @kudo)Accept: text/event-stream
header to bypass streaming requests from ExpoNetworkInspectOkHttpInterceptors
. (#30219 by @kudo)@testing-library/react-hooks
with @testing-library/react-native
. (#30742 by @byCedric)RN_FABRIC_ENABLED
flag with RCT_NEW_ARCH_ENABLED
. (#31044 by @tsapeta)enumerated
function. (#31226 by @tsapeta)func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?)
open
. (#31398 by @abulenok)RuntimeContext.eval()
as JavaScriptRuntime.eval()
on iOS. (#31445 by @kudo)NativeModulesProxy
occurrences. (#31496 by @reichhartd)@expo/dom-webview
. (#31662 by @kudo)expo_patch_react_imports!
and align more stardard react-native project layout. (#31700 by @kudo)Either
type. (#31787 by @lukmccall)ExpoView
recycling from the New Architecture. (#31841 by @tsapeta)SharedObject.deallocate
to SharedObject.sharedObjectDidRelease
. (#31921 by @lukmccall)SharedObject
. (#31922 by @lukmccall)surfaceId
. (#32227 by @lukmccall)shouldUseAndroidLayout
flag to ExpoView
. (#32446 by @lukmccall)process
an interface. (#32464 by @tsapeta)ClassCastException
in headless app loader under the old architecture. (#32390 by @robertying)expo-media-library
expo-location
expo-localization
expo-linking
expo-module-scripts
. (#31915 by @reichhartd)expo-keep-awake
expo-image-manipulator
src
folder as the Metro target. (#30079 by @tsapeta)UIGraphicsImageRenderer
over UIGraphicsBeginImageContext
. (#30211 by @alanjhughes)expo-image-picker
expo-gl
expo-haptics
expo-font
@testing-library/react-hooks
with @testing-library/react-native
. (#30742 by @byCedric)NativeModulesProxy
occurrences. (#31496 by @reichhartd)expo-file-system
expo-contacts
iOS
18. (#29639 by @alanjhughes)expo-constants
Constants.appOwnership
. (#30021 by @amandeepmittal)NativeModulesProxy
occurrences. (#31496 by @reichhartd)expo-clipboard
EventEmitter
instance. (#28946 by @tsapeta)expo-module-scripts
. (#31915 by @reichhartd)expo-cellular
expo-camera
interval
from BarcodeSettings
. (#28760 by @alanjhughes)type
in BarCodeScanningResult
consistent. (#29421) by @alanjhughes) (#29421 by @alanjhughes) (#29421, #29421 by @alanjhughes, @alanjhughes)EventEmitter
instance. (#28946 by @tsapeta)pictureSize
prop. (#30195 by @alanjhughes)preferredVideoStabilizationMode
until is is fully supported. (#31514 by @alanjhughes)expo-brightness
expo-battery
expo-auth-session
index.ts
). (#28970 by @Simek)type
for describing the shape of objects. (#28970 by @Simek)expo-module-scripts
. (#31915 by @reichhartd)expo-av
expo-asset
expo-apple-authentication
iOS
18. (#29639 by @alanjhughes)EventEmitter
instance. (#28946 by @tsapeta)expo-sensors
expo-modules-core
expo-gl
expo-camera
expo-av