NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3013 most downloaded on npm
A library for Expo config plugins
Last release today
16 Sep 2026
Ships on a steady schedule
a new release about every 9 days
Most releases are documented
notes for 44 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
357 releases · first in 2020
One column per quarter.
Nothing published for this version
Nothing published for this version
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Added optional codeSignIdentity parameter to setProvisioningProfileForPbxproj to allow callers to specify the code signing identity instead of always
Nothing published for this version
Nothing published for this version
Deprecated and turned into no-ops the androidStatusBar.backgroundColor and androidStatusBar.translucent app config properties. (#43276 by @zoontek)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Nothing published for this version
Drop slash dependency (#42484 by @kitten)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Add android:maxSdkVersion="32" to storage permissions in templates. (#42401 by @brentvatne)
android:maxSdkVersion="32" to storage permissions in templates. (#42401 by @brentvatne)Removed deprecated content property of the clipboard event listener. Use getStringAsync() instead. (#41739 by @barthap)
expo-notifications
expo-modules-core
ignoreSafeAreaKeyboardInsets to ignoreSafeArea on Host component. It now accepts 'all' or 'keyboard' instead of a boolean. (#42598 by @nishan) (#42598 by @intergalacticspacehighway)expo-localization
expo-image-loader
expo-clipboard
expo-cellular
expo-brightness
expo-blur
expo-web-browser
expo-sqlite
expo-speech
expo-sharing
expo-notifications
expo-modules-core
ExpoAppDelegate inheritance requirement in ExpoReactNativeFactory (#39417 by @gabrieldonadel)applicationDidReceiveMemoryWarning subscribing to ExpoAppDelegateSubscriberManager (#40504 by @szydlovsky)Encodable types can now be converted to JavaScript values. (#40621 by @tsapeta)subscriberDidRegister function to AppDelegate subscribers. (#40684 by @tsapeta)reloadAppAsync method to AppContext. (#42295 by @aleqsio)map to ValueOrUndefined. (#40593 by @Wenszel)process.env.EXPO_DOM_HOST_OS. (#40382 by @EvanBacon)ComposableScope for compose Content functions. (#39155 by @aleqsio)ArrayBuffer. (#39943 by @lukmccall)convertResult to Convertible. (#40302 by @jakex7)ReactActivityHandler.onDidCreateReactActivityDelegateNotification. (#40537 by @lukmccall)ReactNativeHostHandler.onDidCreateReactHost. (#40561 by @lukmccall)hermesEnabled property requirement for internal testing (#40678 by @gabrieldonadel)Class definition for shared objects is now optional. (#40708 by @tsapeta)ArrayBuffers. (#41404 by @barthap)ArrayBuffers in native modules. (#41415 by @barthap)appDelegateWillBeginInitialization function to AppDelegate subscribers. (#41456 by @tsapeta)RNHost to improve RN component layout inside SwiftUI views (#40938 by @nishan) (#40938 by @intergalacticspacehighway)ignoreSafeAreaKeyboardInsets to SwiftUIHostingView. (#41302 by @nishan) (#41302 by @intergalacticspacehighway)ArrayBuffers. (#41548 by @barthap)RCTHostRuntimeDelegate instead of unofficial bridge.runtime. (#41311 by @tsapeta)JavaScriptActor to isolate code requiring running on the JavaScript thread. (#41793 by @tsapeta)NSEdgeInsets.zero extension to better match UIEdgeInsets. (#42675 by @tsapeta)expo-media-library
expo-location
androidForegroundServiceIcon for controlling the icon for the foreground service. (#41132 by @jeppester)accuracy field to PermissionDetailsLocationIOS exposing iOS 14+ precise/reduced location authorization. (#42931 by @sbs44)expo-image-picker
expo-font
expo-file-system
idempotent option to downloadFileAsync (#39681 by @vonovak)append option to write methods. (#42778 by @aleqsio)expo-device
expo-constants
expo-crypto
expo-camera
expo-contacts
Contacts@Next (#40886 by @Wenszel)hasContactsAsync function (#40756 by @hryhoriiK97)expo-calendar
ExpoCalendar@next (#39108 by @kosmydel and @arturgesiarz) (#39108 by @kosmydel, @arturgesiarz)expo-blur
expo-auth-session
extraHeaders option to TokenRequest and RevokeTokenRequest. (#31381) by @levizimmerman and @lsarni (#31381 by @levizimmerman, @lsarni)expo-web-browser
dismissBrowser hanging when called with no browser open. (#40799 by @alanjhughes)expo-video-thumbnails
expo-task-manager
expo-sqlite
ExpoSQLite.defaultDatabaseDirectory returns undefined. (#40680 by @kudo)useSQLCipher. (#40781 by @ronickg)serializeAsync / serializeSync errors from memory database on web. (#40899 by @kudo)expo-store-review
expo-sensors
expo-sharing
expo-screen-capture
expo-screen-orientation
expo-network
expo-notifications
deleteNotificationChannelGroupAsync export (#43244 by @vonovak)NotificationForwarderActivity on Android 11/12 when Parcelable extras fail to deserialize by using byte array serialization as fallback. (#43203 by @vonovak)requestPermissionsAsync not forwarding new options to the OS when notifications were already granted (#43378 by @vonovak)expo-modules-core
TurboModuleRegistry on web (#39726 by @satya164)useReleasingSharedObject getting destroyed after a fast refresh caused by a change in its dependencies. (#39753 by @behenate)[NSString UTF8String] could return nil for certain string inputs (non-English), leading to an attempt to dereference a null pointer during jsi::String creation. (#40639 by @mohammadamin16)androidNavigationBar.enforceContrast app config property not working. (#40263 by @behenate)Either conversion in Record (#40655 by @vonovak)TextField causing crash when reload and unmounting. (#40960 by @nishan) (#40960 by @intergalacticspacehighway) (#40960, #40960 by @intergalacticspacehighway, @intergalacticspacehighway)useReleasingSharedObject to defer releasing until after render.InvalidArgsNumberException when declaring AsyncFunction with optional arguments and Promise. (#41054 by @Wenszel)AppContextActivityResultLauncher coroutine continuation is active before resuming (#41319 by @vonovak)register overload in ModuleRegistry. (#40149 by @alanjhughes)invalidate callback to SwiftUIVirtualView. (#40237 by @intergalacticspacehighway)ValueOrUndefined conversion in Record. (#40289 by @jakex7)null not being correctly converted to ValueOrUndefined in Record. (#41005 by @lukmccall)NativeModule extending Record<string, any>, which made it not type-safe. (#41320 by @lukmccall)expo -> expo-modules-core/types -> ./build/global rather than types="node" (#42751 by @kitten)DynamicBoolType to correctly distinguish boolean values from numeric 0/1. (#42978 by @nishan) (#42978 by @intergalacticspacehighway)DynamicBoolType to throw NullCastException for nil values, matching DynamicRawType behavior. (#43085 by @nishan) (#43085 by @intergalacticspacehighway)PersistentFileLog. (#43283 by @alanjhughes)field.options.insert() silently failing in fieldsOf() due to mutation on protocol existential. (#43341 by @just1and0)Prop definition component by isolating its setter to the main actor. (#43348 by @tsapeta)expo-mail-composer
expo-media-library
endCursor description in the documentation. (#39120 by @Wenszel)id to URI format (#39920 by @Wenszel)delete() throwing security exception (#39914 by @Wenszel)asset.getModificationTime to return milliseconds (#39715 by @Wenszel)expo-location
mIsHostPaused initialization. Location updates are now delivered immediately when app is in foreground, matching iOS behavior. (#41659 by @tyrauber)scope field in a permissions request result (#41328 by @vonovak)expo-localization
expo-intent-launcher
expo-image-manipulator
expo-image-picker
expo-gl
expo-font
expo-file-system
createFile and createDirectory methods. (#40314 by @jakex7)File/Directory/Paths API. (#43005 by @aleqsio)File and Directory static methods. (#43282 by @alanjhughes)expo-clipboard
expo-constants
expo-crypto
expo-camera
expo-contacts
namePrefix on iOS (#39974 by @hryhoriiK97)editWithForm throws error (#43315 by @Wenszel)expo-calendar
expo-brightness
expo-asset
expo-web-browser
experimentalLauncherActivity config plugin option as it was replaced with the useProxyActivity option on openBrowserAsync and openAuthSessionAsync methods. (#41535 by @lukmccall)warmUpAsync JSDoc. (#42944 by @brentvatne)expo-video-thumbnails
androidx.annotation:annotation dependency. (#39755 by @lukmccall)expo-task-manager
expo-sqlite
expo-sensors
expo-sms
androidx.annotation:annotation dependency. (#39756 by @lukmccall)expo-sharing
androidx.legacy:legacy-support-v4 dependency. (#39757 by @lukmccall)expo-screen-capture
removeScreenshotListener call as deprecated (#42098 by @vonovak)expo-secure-store
expo-screen-orientation
expo-notifications
assertValidAndroidAssetName from expo/config-plugins (#39883 by @vonovak)NotificationImportance.UNSPECIFIED as not suitable for use (#41709 by @vonovak)assert dependency (#42970 by @kitten)expo-modules-core
kotlinOptions to compilerOptions DSL. (#39794 by @huextrat)expo-module.config.json. (#39985, #40241 by @jakex7)RuntimeScheduler to schedule tasks on the JS thread. (#40473 by @alanjhughes)EXConstantsService) from expo-constants. (#41339 by @tsapeta)appContext.fileSystem, appContext.utilities, appContext.imageLoader and appContext.permissions with the core implementations. (#41350, #41370, #41396 by @tsapeta)executeOnJavaScriptThread in favor of runtime.schedule. (#41478 by @tsapeta & #41551 by @lukmccall) (#41478, #41551 by @tsapeta, @lukmccall)ShadowNodeProxy.setStyleSize() for Jetpack Compose integration. (#41553 by @kudo)RCTHost. (#41632 by @alanjhughes)NativeViewManagerAdapter. (#41804 by @tsapeta)EXReactNativeEventEmitter class. (#41915 by @tsapeta)NativeModulesProxy is absent. (#43020 by @tsapeta)Either type stable. (#43267 by @lukmccall)ExpoModulesCorePlugin. (#43312 by @lukmccall)expo-media-library
removeSubscription calls as deprecated (#42098 by @vonovak)android:maxSdkVersion annotation to READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions. (#40976 by @behenate)expo-location
androidx.annotation:annotation dependency. (#39758 by @lukmccall)expo-localization
expo-keep-awake
expo-intent-launcher
androidx.annotation:annotation dependency. (#39760 by @lukmccall)expo-image-manipulator
androidx.annotation:annotation dependency (#39764 by @lukmccall)expo-image-loader on iOS. (#41395 by @tsapeta)expo-image-picker
expo-image-loader
expo-gl
expo-haptics
await for performHapticsAsync (#40987 by @kamui545)androidx.annotation:annotation dependency. (#39759 by @lukmccall)expo-font
expo-file-system
android:maxSdkVersion annotation to READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions. (#40976 by @behenate)expo-device
androidx.legacy:legacy-support dependency. (#39762 by @lukmccall)expo-clipboard
removeClipboardListener call as deprecated (#42098 by @vonovak)expo-constants
expo-crypto
ExpoCrypto.getRandomBase64String() fallback in getRandomBytes() (#41517 by @hassankhan)expo-camera
CGImageProperties in exif data. (#40801 by @alanjhughes)expo-contacts
CNContactStore lazily (#42096 by @vonovak)androidx.annotation:annotation dependency (#39761 by @lukmccall)expo-calendar
@ in @platform ios JSDoc tag for EntityTypes enum. (#42944 by @brentvatne)expo-blur
expo-asset
expo-gl
texImage2D expo wrapper. (#41499 by @psnet)stb_image.h used for image decoding in texImage2D expo wrapper to support only JPEG, PNG, GIF image formats. Formats BMP, PSD, TGA, HDR, PIC, PNM are no longer supported. (#41001 by @psnet)stb_image.h used for image decoding in texImage2D expo wraper method. A lot of fixes and performance improvements, see related PR. (#41000 by @psnet)newArchEnabled option. (#41684 by @gabrieldonadel)@main as the anchor. (#41868 by @kudo)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Update to glob@^13.0.0 (#41079 by @kitten)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
add functions for android resource name validation (#39882 by @vonovak)
Nothing published for this version
Nothing published for this version
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
…to load full EXIF data for images. This is a breaking change for Android apps, as it might break the orientation of images in some cases. (#37957 by @…
expo-sqlite
expo-camera
expo-notifications
expo-media-library
expo-intent-launcher
expo-image-picker
uri to use blob URLs instead of base64 data URLs for better performance. The uri property will now be a blob URL instead of a base64 data URL, while the base64 property behavior remains unchanged. (#37447 by @hirbod)preferredAssetRepresentationMode is now .current instead of .automatic. This keeps the asset in its original container/codec (e.g. HEIC instead of JPEG) and is required for the new fast-path. Apps that relied on .automatic re-encoded output can pass preferredAssetRepresentationMode: '.automatic' to restore the old behaviour. (#37569 by @hirbod)expo-font
expo-file-system
expo-document-picker
unimodules-app-loader
expo-web-browser
expo-video-thumbnails
expo-task-manager
expo-sqlite
loadExtensionAsync / loadExtensionSync APIs and pre-bundled sqlite-vec extension. (#38693 by @kudo)expo-sqlite/localStorage/install for localStorage drop-in replacement API. (#38699 by @kudo)expo-speech
expo-screen-capture
useScreenshotListener hook. (#37411 by @hryhoriiK97)expo-modules-core
rgb color conversions. (#36914 by @alanjhughes)testID support to ExpoComposeView. (#38005 by @mateoguzmana)ValueOrUndefined. (#38620 by @lukmccall)ValueOrUndefined. (#39116 by @lukmccall)disableForceFlatten prop to control flattening of display contents views. (#39262 by @nishan) (#39262 by @intergalacticspacehighway)appContext.jsLogger. (#39159 by @behenate)expo-media-library
expo-localization
supportedLocales option to set app language from settings (#37232 by @alextoudic)expo-local-authentication
promptSubtitle and promptDescription parameters to authenticateAsync. (#35335 by @filipejuan)expo-image-manipulator
expo-intent-launcher
expo-image-picker
shape option to customize the shape of the crop zone (#38148) by @janicduplessis (#38148 by @janicduplessis)expo-font
expo-image-loader
expo-file-system
rename method for files and directories (#39138 by @kosmydel)idempotent option for creating directories (#39121 by @kosmydel)pickFileAsync support (#39173 by @kosmydel)pickDirectoryAsync support (#39210 by @kosmydel)expo-document-picker
expo-contacts
addContactsChangeListener() to detect contact changes with platform-specific behavior. . (#39434 by @hryhoriiK97)expo-calendar
expo-camera
expo-auth-session
rawResponse to TokenResponse, allows reading fields that are not part of RFC 6749. (#20284 by @stefan-schweiger)expo-asset
expo-task-manager
expo-sqlite
Statement.executeAsync. (#36674 by @kudo)SQLiteProvider with same options. (#37872 by @kudo):memory: path issue when building on Xcode 26. (#39511 by @kudo)expo-speech
expo-secure-store
expo-screen-orientation
Split View on iPad. (#36667 by @alanjhughes)createRootViewController from the ExpoReactNativeFactoryDelegate. (#36787 by @alanjhughes)expo-screen-capture
expo-print
expo-notifications
getLastNotificationResponseAsync does not return null when no response listener added (#36930 by @jmysliv)expo-notifications (#37833 by @chrfalch)setBadgeCountAsync(0) also cleared notifications (#39009 by @vonovak)TextInputNotificationResponse events (#39356 by @vonovak)setNotificationCategoryAsync (#39306 by @vonovak)expo-modules-core
extraMavenRepos not applied on Gradle subprojects. (#36500 by @lukmccall)getSharedObjectId for devices running android 7 and below. (#36698 by @lukmccall)XMLHttpRequest when network inspector is enabled. (#36715 by @kudo)createRootViewController from the ExpoReactNativeFactoryDelegate. (#36787 by @alanjhughes)Value is undefined, expected an Object in the JNIUtils::emitEventOnJSIObject. (#37778 by @lukmccall)ExpoRequestInterceptorProtocol to properly notify client about HTTP redirects. (#38078 by @kudo)RuntimeHolder bindings. (#38345 by @alanjhughes)SharedRef converter. (#39446 by @lukmccall)JNI detected error in application: obj == null in ExpoModulesHostObject::get. (#39523 by @lukmccall)expo-media-library
deleteAssetsAsync not working on android 11 or above (#33211 by @Zeeshan404)expo-location
shouldUseForegroundService being always true. (#35875 by @filipef101)expo-linking
createURL double-encodes URI parameters. (#36704 by @lukmccall)expo-mail-composer
expo-image-manipulator
expo-image-picker
expo-font
getLoadedFonts returns an empty array. (#36586 by @brentvatne)expo-gl
expo-file-system
UploadTask.uploadAsync method's return type did not indicate that the method could resolve to null. (#36476 by @DoctorJohn)textSync() to return string instead of Promise<string> (#38898 by @LeonDvlpmnt)expo-document-picker
expo-contacts
Contact.id required for updateContactAsync (#36603 by @NorseGaud)updateContactAsync() removing contact rawDates / birthday (#37054 by @NorseGaudCNContactViewController presentation (#39004 by @vonovak)instantMessageAddresses on iOS (#38985 by @hryhoriiK97)expo-constants
expo-calendar
expo-camera
PictureRef objects.(#37393 by @alanjhughes)launchScanner. (#38322 by @alanjhughes)videoQuality and pictureSize affecting modes they don't apply too. (#38757 by @alanjhughes)onDetachedFromWindow. (#39119 by @alanjhughes)expo-blur
expo-background-fetch
expo-av
expo-auth-session
expo-asset
expo-video-thumbnails
expo-task-manager
expo-sqlite
kv-store. (#36669 by @kudo)maybeFinalizeAllStatements throwing exceptions. (#36843 by @kudo)loadExtensionAsync() and loadExtensionSync(). (#38905 by @kudo)expo-speech
expo-sharing
expo-secure-store
expo-sensors
expo-screen-capture
expo-print
expo-notifications
typescript@5.9 (#38833 by @kitten)expo-modules-core
@expo/ui/swift-ui-primitives integrations. (#36937 by @kudo)ExpoComposeView to support virtual view. (#36255 by @kudo)react and react-native (#38528 by @kitten)Constants in favor of Constant and Property. (#38748 by @jakex7)ExpoGlobal with namespace and to preserve type+value overlay on re-exported core globals (#38649 by @kitten)JavaScriptValue and added props.globalEventDispatcher for expo-ui. (#38542 by @kudo)appContext to ExpoSwiftUI.ViewProps. (#39231 by @kudo)requireOptionalNativeModule will now catch errors which occur while requiring a module. (#39290 by @behenate)Color convertible support without passing AppContext. (#39183 by @aleqsio)FileSystemUtilities (#39210 by @kosmydel)kotlin.reflect.full.*. (#39385 by @lukmccall)expo-media-library
expo-local-authentication
expo-keep-awake
expo-location
expo-linking
useURL in favor of useLinkingURL. (#37005 by @aleqsio)expo-image-manipulator
expo-image-picker
quality: 1, allowsEditing: false and preferredAssetRepresentationMode: .current (new default) (#37569 by @hirbod)VideoExportPreset.Passthrough are no longer transcoded and are copied only once. (#37569 by @hirbod)expo-font
expo-gl
react-dom and react-native-reanimated peer dependencies (#38569 by @kitten)findDOMNode usage. (#38800 by @alanjhughes)expo-file-system
expo-document-picker
expo-device
expo-clipboard
expo-contacts
FileSystemUtilities (#39210 by @kosmydel)expo-cellular
expo-constants
expo-camera
createCamera a suspend function. (#37038 by @alanjhughes)typescript@5.9 (#38833 by @kitten)expo-battery
expo-background-fetch
expo-av
expo-auth-session
expo-asset
expo-application
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →