The Expo CLI
Last release today
26 Aug 2026
Ships on a steady schedule
a new release about every 9 days
Rarely documented
notes for 4 of 350 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
501 releases · first in 2022
Release timeline
501 releases since 2022Releases
- 56.0.36 May 2026
Nothing published for this version
- 56.0.25 May 2026
Nothing published for this version
- 56.0.15 May 2026
Nothing published for this version
- 56.0.05 May 2026
Release notes
Open source →🛠 Breaking changes
unimodules-app-loaderexpo-web-browserexpo-video-thumbnailsexpo-task-managerexpo-store-reviewexpo-speechexpo-sqliteexpo-smsexpo-sharingexpo-secure-storeexpo-sensorsexpo-screen-captureexpo-screen-orientationexpo-printexpo-networkexpo-notificationsexpo-localizationexpo-media-libraryexpo-mail-composerexpo-locationexpo-keep-awakeexpo-modules-core- [iOS] Replaced the Objective-C++ JSI layer (
EXJavaScriptRuntime,EXJavaScriptObject,ExpoModulesHostObject,EXSharedObjectUtils, etc.) with the newExpoModulesJSISwift package. Third-party native modules depending on these types must migrate to the new Swift-first API. (#44337 by @tsapeta) - Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
- [iOS] Replaced the Objective-C++ JSI layer (
expo-local-authenticationexpo-linkingexpo-image-manipulatorexpo-hapticsexpo-linear-gradientexpo-glexpo-image-pickerexpo-fontexpo-document-pickerexpo-file-system- Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
copy()andmove()methods ofFileandDirectoryare now asynchronous and return a Promise. UsecopySync()andmoveSync()for synchronous behavior. (#44359 by @barthap)- [Android] In Expo Go,
Paths.cacheandPaths.documentare now pointing to experience-isolated directories. (#45977 by @barthap) File.write()is now asynchronous and returns a Promise. UseFile.writeSync()for synchronous behavior. (#45992 by @wh201906)FileHandle.readBytes()andFileHandle.writeBytes()are now asynchronous and return a Promise. UseFileHandle.readBytesSync()andFileHandle.writeBytesSync()for synchronous behavior. (#46280 by @wh201906)
expo-device- [iOS] Change the names of "iPad Air (11-inch) (6th generation)", "iPad Air (13-inch) (6th generation)" and "iPhone SE" to "iPad Air 11-inch (M2)", "iPad Air 13-inch (M2)" and "iPhone SE (1st generation)". (#43644 by @prusnak)
- Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
expo-cryptoexpo-contacts- [next] Fix permission functions, presentPicker cancel, presentAccessPicker types (#44847 by @Wenszel)
- Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
- Promote the object-oriented Contacts API to the root
expo-contactsimport and move the legacy API toexpo-contacts/legacy. (#46037 by @Wenszel)
expo-constantsexpo-clipboardexpo-cellularexpo-cameraexpo-calendarexpo-brightnessexpo-blurexpo-batteryexpo-background-fetchexpo-applicationexpo-apple-authenticationexpo-asset
🎉 New features
- Initial release of
@expo/cli🥳 - Initial release of
@expo/package-manager🥳 - Initial release of
expo🥳 - Initial release of
expo-brownfield🥳 - Initial release of
expo-json-utils🥳 - Initial release of
expo-modules-autolinking🥳 - Initial release of
expo-router🥳 - Initial release of
expo-module-scripts🥳 - Initial release of
expo-modules-jsi🥳 - Initial release of
@expo/ui🥳 - Initial release of
pod-install🥳 expo-web-browserexpo-task-managerexpo-sqliteexpo-sharingexpo-secure-storeexpo-sensorsexpo-screen-orientationexpo-notificationsexpo-localizationexpo-media-library- [next] Add support for listeners (#44326 by @Wenszel)
- [next] Add
presentPermissionsPicker(#44432 by @Wenszel) - [next][iOS] Add
asset.getMediaSubtypes(),asset.getLivePhotoVideoUri(),asset.getIsInCloud(), andasset.getOrientation()(#44568 by @Wenszel) - [next] Add
asset.getAlbums()(#44604 by @Wenszel) - [next] Add
Album.getAll()(#44446 by @Wenszel) - [next][iOS] Add
album.removeAssets()(#44455 by @Wenszel) - [next] Add usePermissions (#44403 by @Wenszel)
- [next][iOS] Fixed
Query.limit(0)returning all assets instead of an empty array (#44245 by @Wenszel) - [next] Add getPermissionsAsync (#44244 by @Wenszel)
- Expose a typed config plugin function (#44098 by @zoontek)
- [next][iOS] Added support to add or remove assets from Favorites smart album (#43598 by @awaisanjumx2)
- [iOS] Added support to add or remove assets to Favorites smart album (#43459 by @awaisanjumx2)
- [android] Add
getFavorite()/setFavorite()(#45768 by @Wenszel)
expo-mail-composerexpo-location- Expose a typed config plugin function (#44098 by @zoontek)
- Added motion activity APIs:
getMotionActivityAsync,watchMotionActivityAsync, and permission helpers. (#44893 by @Guccio163)
expo-modules-core- [iOS] Added
Equatableconformance toEithertype. (#43954 by @nishan) (#43954 by @intergalacticspacehighway) (#43954, #43954 by @intergalacticspacehighway, @intergalacticspacehighway) - [android] Add
installModuleClassesand__resolveInWorkletfor resolving shared object class prototypes in the worklet runtime. (#44669 by @intergalacticspacehighway) - [iOS] Add
installModuleClassesfor building shared object class prototypes in alternate JS runtimes. (#44214 by @nishan) (#44214 by @intergalacticspacehighway) - [iOS] Install sync functions on shared object worklet prototypes and add
SharedObject.__resolveInWorkletfor resolving shared objects in worklet runtimes. (#44215 by @nishan) (#44215 by @intergalacticspacehighway) NativeArrayBufferandJavaScriptArrayBufferarguments now also accept typed arrays. (#43082 by @barthap)- [Android] Use the
RuntimeSchedulerto schedule tasks on the JS thread. (#43481 by @alanjhughes) - [iOS] Add
nativeModulelook up function andbundleURLto AppContext. (#43661 by @gabrieldonadel) - [iOS] Added a polyfill for Swift
Mutexfor older platform versions. (#44122 by @tsapeta) - [Android] Exposed a shared OkHttpClient instance through AppContext with new coroutine-friendly extensions. (#44854 by @lukmccall)
- [Android] Allow compile-time optimization of compose view props when the property class is annotated with
@OptimizedComposeProps. (#45021 by @lukmccall) - [iOS] Fixed
SharedObject.emitdroppingNativeArrayBuffervalues in events (#45257 by @alanjhughes) - Added single-payload overloads for
SharedObject.emiton iOS and Android. The iOS API also accepts an already-convertedJavaScriptValuepayload to skip the native-to-JS conversion step. (#45596 by @tsapeta) - [iOS]
Decodabletypes can now be used as native function arguments. JS values are decoded through the dynamic-type registry, so arrays, dictionaries, optionals,RawRepresentableenums andConvertibles are coerced consistently. (#45705 by @tsapeta) - [Android] Create Compose props without View. (#46256 by @jakex7)
- [iOS] Added
expo-local-authenticationexpo-linking- Added
Linking.clearInitialURL()to reset the cached deep-link URL. (#46265 by @gabrieldonadel)
- Added
expo-haptics- Add web haptics for iOS Safari using checkbox. (#44261 by @EvanBacon)
expo-linear-gradient- Add macOS support (#45448 by @gabrieldonadel)
expo-image-picker- Expose a typed config plugin function (#44098 by @zoontek)
- [iOS] Allow
launchCameraAsyncto be invoked on the simulator. (#45923 by @EvanBacon)
expo-font- Expose a typed config plugin function (#44098 by @zoontek)
- Add structured server resource descriptors for streaming SSR (#44927 by @hassankhan)
expo-document-pickerexpo-file-system- [iOS] Add support for
modeoption when opening file handle. (#44559 by @gfemec) - Expose a typed config plugin function (#44098 by @zoontek)
- Add support picking for multiple files and choosing multiple MIME types. File.pickFileAsync() has now feature parity with
expo-document-picker. (#43411 by @HubertBer) - Add
overwriteoption to copy and move methods. (#42979 by @barthap) - [Android] Add
modeoption when opening file handle. (#42983 by @barthap) - Add
onProgresscallback andAbortSignalsupport toFile.downloadFileAsync(). (#43053 by @aleqsio) - Add
file.createUploadTask()andFile.createDownloadTask()APIs (#44055 by @barthap) - Add
File.upload()with legacy-compatible upload semantics, progress callbacks, andAbortSignalsupport. (#45033 by @barthap) - Add support for watching file/directory events. (#44986 by @barthap)
- Added
File.json()andFile.formData()to satisfyBlobtype augmentations in consumer projects. (#45685 by @mvincentong)
- [iOS] Add support for
expo-deviceexpo-contactsexpo-cellularexpo-camera- [Web] Expands support for barcode types that can be scanned. (#43403 by @alanjhughes)
- Expose a typed config plugin function (#44098 by @zoontek)
expo-calendar- [iOS][next] Add support for writeOnly permissions (#44967 by @Wenszel)
- [iOS][next] Add
calendar.addEventWithForm()(#44966 by @Wenszel) - [iOS][next] Add
presentPicker()(#44965 by @Wenszel) - Expose a typed config plugin function (#44098 by @zoontek)
- [Android][next] Add
calendar.addEventWithForm()(#46004 by @Wenszel)
expo-brightnessexpo-background-fetchexpo-apple-authenticationexpo-asset
🐛 Bug fixes
expo-web-browser- Fixed
openAuthSessionAsyncsilently failing on iOS 17.4+ when usinghttps://redirect URLs without Associated Domains entitlements. The HTTPS universal link callback API is now opt-in via thepreferUniversalLinksoption. (#44452 by @vonovak) - Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
- Fixed
expo-task-manager- Fixed JS timers hanging during background task execution on Android by registering with
HeadlessJsTaskContext. (#43821 by @janicduplessis) - Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
- [android] Apply bundled
proguard-rules.proviaconsumerProguardFilesso the-keep class expo.modules.taskManager.**rule is added to consumer apps' R8 pass. (#46029 by @jiunshinn)
- Fixed JS timers hanging during background task execution on Android by registering with
expo-speechexpo-sqliteexpo-sharing- [iOS] Fix
shareAsyncpromise leaking when the user picks an activity and then cancels its follow-up dialog (e.g. taps Print, then cancels the print dialog). The completion handler now resolves unconditionally on dismissal. (@Elehiggle) (by @Elehiggle) - Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
- [iOS] Fix
expo-secure-storeexpo-sensors- [iOS] Fixed TCC crash on iOS 26 during Metro reload when
motionPermission: false—CMAltimeter.stopRelativeAltitudeUpdates()now only runs if updates were started. (#45396 by @JustinFay01) - Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
- [iOS] Fixed TCC crash on iOS 26 during Metro reload when
expo-screen-orientation- [iOS] Fixed per-screen orientation not working with expo-dev-client by searching child VCs for react-native-screens orientation when an intermediate VC blocks the traversal. (#44181 by @vonovak)
- [iOS] Fixed
lockAsyncsilently failing when flipping between previously-applied masks. (#45239 by @alanjhughes) - [iOS] Fixed
EXC_BAD_ACCESScrash from recursivesupportedInterfaceOrientationswhenreact-native-screensper-screen orientation is set. (#45733 by @rayabelcode) - Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
expo-network- [Android] Fixed network state listener emitting a stale "connected" event when the device disconnects from the network on Android 13+. (#44656 by @gueroverdenwshq)
- [Android] Make
isInternetReachablemuch more robust. Also emit network state changes when network capabilities change. (#45101 by @LumaDevelopment)
expo-notifications- [ios] Fixed
requestPermissionsAsyncreturning raw permission result without several documented fields (#43555 by @vonovak) - [ios] Guard against crash in
BackgroundEventTransformerwhen notification body is a primitive type. (#45198 by @DORI2001) - [web] fix
getDevicePushTokenAsyncexport (#44413 by @vonovak) - [ios] fix unhandled promise rejection in
getRegistrationInfoAsync, relax keychain accessibility to allow access after device unlocked. (#43829 by @jmalmo) - [ios] Dispatch foreground notification completion handler on the main thread to prevent SIGTRAP /
BSPreconditionFailureon iOS 16. (#45096 by @qutrek) - [android] Apply bundled
proguard-rules.proviaconsumerProguardFilesso the-keep class expo.modules.notifications.**rule is added to consumer apps' R8 pass. (#45974 by @jiunshinn) - Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
- [ios] Fixed
expo-localizationexpo-media-libraryexpo-mail-composerexpo-location- [iOS] Ignore
locationUnknownerrors inwatchPositionAsync. (#44027 by @tsapeta) - [Android] Foreground service notification icon now falls back to
notification_icondrawable beforeapplicationInfo.icon. The launcher icon is full-color and renders as a solid white square in notifications. (#44309 by @creatornader) - Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
- [iOS] Ignore
expo-keep-awake- fix(keep-awake): catch activation promise rejection on Android (#45006 by @cortinico)
expo-modules-core- [Android] Fixed Compose view clipping that caused Material ripple effects to be cut off (e.g., Switch thumb ripple). (#43656 by @vonovak)
- [iOS] Fix memory leak due to retain cycle in SwiftUI views. (#43468 by @nishan) (#43468 by @intergalacticspacehighway) (#43468, #43468 by @intergalacticspacehighway, @intergalacticspacehighway)
- [iOS] Fixed compilation issues due to missing fallthrough case in
EXJavaScriptSerializable. (#43634 by @tjzel) - [iOS] Fixed adding SwiftUI views to tabs BottomAccessory. (#44247 by @t0maboro)
- [iOS] Fix crash that can occur when reloading JavaScript bundle due to object deallocating off the JavaScript thread. (#43937 by @cltnschlosser)
- [iOS] Fixed runtime setup crashing in the old bridge module. (#44121 by @tsapeta)
- [iOS] Make access to module registry thread safe. (#44042 by @alanjhughes)
- [iOS] Fixed
PersistentFileLog.readEntriesrace condition by serializing reads on the dispatch queue. (#43958 by @ramonclaudio) - [iOS] Fixed looking up the
EXConstants.bundlefrom the main bundle to allow running with precompiled XCFrameworks. (#44551 by @chrfalch) - [iOS] Fixed Constants.expoConfig returning null due to optional value wrapping in ConstantsProvider. (#44550 by @chrfalch)
- [iOS] Fixed view lookup in bridgeless mode by using
ExpoHostWrapperinstead ofreactBridge.uiManager. (#44375 by @vonovak) - [iOS] Resolve
react-native-workletsfrom existing podspec, falling back to peer resolution (#44232 by @kitten) - [iOS] Fix finding EXConstants.bundle inside framework bundle for brownfield (#44810 by @gabrieldonadel)
- [iOS] Guard against null
eventEmitterinSwiftUIVirtualView.dispatchEventto prevent SIGSEGV after view teardown. (#45175 by @DORI2001) - [iOS] Fix double to UIColor conversion (#45387 by @Wenszel)
- [iOS] Fix random crash when concurrent access of the same
RecordonField.options. The set is now guarded by a per-field lock and accessed through a singlewithOptionsAPI. (#45072 by @nishan) (#45072 by @intergalacticspacehighway) - [iOS] Fixed converting
Enumerablefunction results to JS values. (#45168 by @tsapeta) - [iOS] Fixed prebuild dependencies for
ExpoModulesJSI(#45124 by @chrfalch) - [iOS] Add async/await overload for StaticAsyncFunction (#44471 by @Wenszel)
- [Android] Added support for CSS
rgb(...)andrgba(...)color strings when converting JS color values toandroid.graphics.Color. (#44023 by @dileepapeiris) - [iOS] Fix missing jsi headers when building static frameworks (#44865 by @gabrieldonadel)
- Fixed runtime crash when missing
Hostcomponent for SwiftUI or Jetpack Compose components. (#44118 by @kudo) - [iOS] Restore pre-ExpoModulesJSI
Recordconversion behavior by hydrating only declared fields, preservingundefinedhandling for object properties, and emitting typed records directly to JS. (#45085 by @barthap) - Fix reading EXConstants.bundle when using prebuilds + brownfield with SPM (#45148 by @gabrieldonadel)
- [Android] Resolve
libworklets.sovia prefab before falling back to local CMake output. (#43863 by @Insik-Han) - [iOS] Fix dictionary/array returns from sync functions invoked in the worklet runtime. (#45419 by @nishan) (#45419 by @intergalacticspacehighway)
- [Android] Fix unsetting border width on views with border radius causing views to disappear (#45467 by @fractalbeauty)
- [iOS] Fix encoding
Encodablefunction results so arrays, dictionaries, optionals,RawRepresentableenums andConvertibles route through their dynamic types instead of producing wrong shapes. (#45575 by @tsapeta) - [Android] Avoid remounting Jetpack Compose views during same-frame React Native reparenting. (#45711 by @mvincentong)
- [Android] Fixed
associatedCookiesinNetwork.requestWillBeSentExtraInfoCDP events serializing as a JSON object instead of an array. (#45720 by @huntie) - [Android] Keep
ExpoComposeViewcontent visible during parent view transitions (e.g.,react-native-screenspop navigation). (#45942 by @intergalacticspacehighway) - [iOS] Fix occasional
SharedObject.emitcrashes caused by an off-thread JSI lookup. (#45986 by @tsapeta) - [Android] Suppress
-Wunused-resultcompiler warning inFrontendConverter.cpp. (#46073 by @tomekzaw) - [android] Fix nested
Hostdouble-composing children. (#46304 by @nishan) (#46304 by @intergalacticspacehighway) - [iOS] Propagate async-function promise construction failures instead of trapping the app. (#46106 by @qutrek) (#46145 by @mvincentong) (#46145 by @qutrek, @mvincentong)
- [iOS] Read iPad-specific supported orientations from
UISupportedInterfaceOrientations~ipad. (#46281 by @bryandent) (#46306 by @mvincentong) (#46306 by @bryandent, @mvincentong)
expo-local-authenticationexpo-intent-launcher- [Android] Fixed
getApplicationIconthrowing an error on Android below API 26. (#46043 by @lukmccall)
- [Android] Fixed
expo-image-manipulator- [iOS] Preserve HEIC orientation when loading local files for image manipulation. (#43725 by @maxsz)
- [Android] Save manipulated images in the scoped cache directory. (#45708 by @mvincentong)
- [Web] Throw an error when requested mime type is not supported. (#46165 by @alanjhughes)
expo-gl- Make
msaaSamplesandenableExperimentalWorkletSupportoptional inGLViewPropsto align TypeScript types with their runtimedefaultPropsvalues. (#43767 by @jcarlosroldan) - Install
WebGLRenderingContextandWebGL2RenderingContextglobals and their numeric constants at module init so libraries that read them before any GL context is created no longer crash. (#45865 by @tsapeta) - Make
WebGL2RenderingContextinherit fromWebGLRenderingContext, matching the WebGL spec.gl2 instanceof WebGLRenderingContextnow returnstruefor WebGL2 contexts, and shared constants and methods are no longer duplicated on the WebGL2 prototype. (#45871 by @tsapeta)
- Make
expo-image-picker- [android] fix cropper default colors in light mode (#42437 by @fobos531)
- [android] Handle edge-to-edge display in crop activity. (#44208 by @zoontek)
- fix potential
nullmime type reported (#43734 by @vonovak) - [android] Fix potential vulnerability in
com.canhub.cropper.CropImageActivitybeing exported. (#45357 by @behenate) - [iOS] Fix
base64result not being a JPEG data. (#43806 by @barthap) - [Android] Follow system day/night theme in crop activity. (#44944 by @jeferson-sb)
- Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
expo-fontexpo-document-pickerexpo-file-system- [Android] Fix copy/move support for SAF and content provider URIs. (#42887 by @barthap)
- Fix out-of-memory errors when calculating file
md5hash. (#44064 by @barthap) - [iOS] Fix
totalDiskSpacereturning free disk space instead of total disk capacity. (#44849 by @shanebdavis) - Fix
onProgresscallback ofFile.downloadFileAsync()sometimes not firing on download completion. (#45238 by @barthap) - [iOS] Fix
File.pickFileAsync()greying out all files when using wildcard MIME types like*/*orimage/*. (#45245 by @barthap) - Fixed the jest mock's
FileSystemFileHandleto honorFileModestring values ('r','w','wa','wt','rw') instead of the obsolete name table, expose handle and file metadata, and match the documented default mode forcontent://URIs. The dispatch is now exhaustive overFileMode, so future enum additions fail to compile in the mock. (by @radko93) - [Android] Added missing permission checks to
delete()andopenHandle()in the next-gen File System API. (#45967 by @barthap) - [Android] Fixed path traversal vulnerability in
createFile,createDirectory, andrenamethat allowed escaping the parent directory. (#45967 by @barthap) - [Android] Fixed
Paths.cacheandPaths.documentpointing to wrong directory in Expo Go. (#45977 by @barthap)
expo-crypto- Access
cryptoonglobalThisrather than justwindow.crypto(#43405 by @bradleyayers)
- Access
expo-contactsexpo-cellularexpo-camera- [Web] Fix
isAvailableAsyncreturningtrueon devices without a camera. (#43932 by @alanjhughes) - [iOS] Use runtime camera availability checks in Simulator so camera code paths can run when a runtime video device is present while preserving fallback behavior when no device is available. (by @kmagiera) (#44159 by @kmagiera) (#44159 by @kmagiera, @kmagiera) (#44159, #44159 by @kmagiera, @kmagiera, @kmagiera, @kmagiera)
- [iOS] Fix inconsistent barcode
typevalue returned by ZXing fallback scanner (code39, pdf417, codabar) — it now returns the same format as the AVFoundation scanner (e.g."code39"instead of"org.iso.Code39"). (#44726 by @jensdev) - [iOS] Fix orientation issue caused by upstream changes. (#44171 by @alanjhughes)
- [iOS] Fix camera activity indicator remaining active after
CameraView.launchScanneris interactively dismissed and the app is backgrounded/foregrounded. (#45063 by @alanjhughes) - [Android] Remove
RECORD_AUDIOfrom the manifest sorecordAudioAndroiddepends on the plugin. (#45132 by @alanjhughes) - [iOS] Fix
itf14barcode type not detecting generic Interleaved 2 of 5 barcodes, so behavior matches Android'sFORMAT_ITF. (#44796 by @mduchev) - Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
- [Web] Fix
expo-calendar- Fixed
NumberFormatExceptioncrash on Android when calendar/event IDs exceedInteger.MAX_VALUE. (#43344 by @olivier-bouillet) - [iOS] Fix
deleteEventAsyncdeleting wrong recurring event instance wheninstanceStartDateis provided. (#40172 by @marcelogdeandrade) - [Android] Add missing escaping of
calendarIdsfilter input (#45951 by @kitten) - [next] Remove legacy exports (#45739 by @Wenszel)
- Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
- Fixed
expo-brightnessexpo-blur- [Android] Fix Fabric mount/detach mismatch in
BlurTargetViewthat could triggerview already removed from parenterrors during root tree transitions. (#43595 by @stathis) (#43595 by @efstathiosntonas) (#43595, #43595 by @efstathiosntonas, @efstathiosntonas) - [Android] Fix the initial blur value not taking the
blurReductionFactorinto account. (#43814 by @behenate)
- [Android] Fix Fabric mount/detach mismatch in
expo-batteryexpo-background-fetchexpo-application- [Android] Fix
PromiseAlreadySettledExceptioncrash ingetInstallReferrerAsyncwhenonInstallReferrerServiceDisconnectedgets called after promise settlement. (#43419 by @nishan) (#43419 by @intergalacticspacehighway) (#43419, #43419 by @intergalacticspacehighway, @intergalacticspacehighway)
- [Android] Fix
expo-apple-authenticationexpo-asset
💡 Others
unimodules-app-loaderexpo-web-browser- [Android] Bring back the
experimentalLauncherActivityconfig plugin option. (#44073 by @lukmccall)
- [Android] Bring back the
expo-store-reviewexpo-sqlite- Bumped dev-plugin-webui to SDK 55. (#43412 by @kudo)
- [iOS] Updated sync function signatures (
runSync,applyChangesetSync,invertChangesetSync) to acceptany AnyArrayBufferin place of the removedJavaScriptArrayBuffer. (#44337 by @tsapeta) - Session changesets now use native
ArrayBuffers. (#42638 by @barthap) - Statement bind params now use native
ArrayBuffers for blob columns. (#42639 by @barthap) - [Android] Returned blob columns now use native
ArrayBuffers. (#42640 by @barthap) - [iOS] Returned blob columns now use native
ArrayBuffers. (#42642 by @barthap)
expo-sensorsexpo-screen-captureexpo-screen-orientationexpo-notifications- Skip redundant device push token registration when token and metadata are unchanged since last successful registration. (#44836 by @stephanepham)
- [iOS] Added explicit
import Reactfor xcframework compatibility. (#44248 by @chrfalch) - Updated permission type and permission status imports to be imported from
expoinstead ofexpo-modules-core(#45565 by @Wenszel)
expo-localization- Use ReactI18nUtil dependency for enabling RTL support. (#40575 by @nishan) (#40575 by @intergalacticspacehighway)
expo-media-libraryexpo-locationexpo-modules-core- [iOS] Extracted ObjC protocols (
EXAppContextProtocol,EXReactDelegateProtocol,EXAppContextFactoryRegistry) for cross-xcframework module boundaries. Refactored legacy module registry, Fabric view headers, JSI layer, and podspecs for xcframework compatibility. (#44248 by @chrfalch) - [iOS] Add
ViewWrapperprotocol andAnyContentViewProviderfor type-erased access to wrapped SwiftUI views. (#43669 by @nishan) (#43669 by @intergalacticspacehighway) (#43669, #43669 by @intergalacticspacehighway, @intergalacticspacehighway) - [iOS] Make RNHostView SwiftUI view (#43570 by @nishan) (#43570 by @intergalacticspacehighway) (#43570, #43570 by @intergalacticspacehighway, @intergalacticspacehighway)
- [iOS] Reduced per-call overhead of invoking native functions from JavaScript. (#45093 by @tsapeta)
- [iOS] Fixed precompile build failing on
SwiftUIVirtualViewSharedImpl+Private.hleaking into the public module umbrella. (#44993 by @chrfalch) - [iOS] Added explicit c++ linkage specifier to
ExpoModulesCore.podspecto propagate to swift-only targets like Expo Widgets (#44984 by @chrfalch) - [iOS] Rewrote the core type system, definitions,
AppContext, and worklets integration on top of the newExpoModulesJSIpackage. (#44337 by @tsapeta) - [iOS] Decoupled Worklets integration into separate podspec. (#42971 by @chrfalch)
- [iOS] Improved conversions of returned arrays and dict
- [iOS] Extracted ObjC protocols (
- 56.0.0-canary-20260506-964f25d6 May 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260506-326540f6 May 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260506-1b0052a6 May 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260506-03817f56 May 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260505-84af74c5 May 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260501-870dcba1 May 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260501-15d35291 May 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260423-c31bd8e23 Apr 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260420-2ac87c020 Apr 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260417-141204f17 Apr 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260414-e3dbafd14 Apr 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260409-6fc29919 Apr 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260402-87c5ce22 Apr 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260305-51637465 Mar 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260212-4f6130912 Feb 2026pre-release
Nothing published for this version
- 56.0.0-canary-20260128-67ce8d528 Jan 2026pre-release
Nothing published for this version
- 55.0.3625 Aug 2026
Nothing published for this version
- 55.0.3517 Aug 2026
Nothing published for this version
- 55.0.3415 Jul 2026
Nothing published for this version
- 55.0.3325 Jun 2026
Nothing published for this version
- 55.0.3221 May 2026
Nothing published for this version
- 55.0.3119 May 2026
Nothing published for this version
- 55.0.3013 May 2026
Nothing published for this version
- 55.0.295 May 2026
Nothing published for this version
- 55.0.284 May 2026
Nothing published for this version
- 55.0.271 May 2026
Nothing published for this version
- 55.0.2622 Apr 2026
Nothing published for this version
- 55.0.2521 Apr 2026
Nothing published for this version
- 55.0.2413 Apr 2026
Nothing published for this version
- 55.0.239 Apr 2026
Nothing published for this version
- 55.0.227 Apr 2026
Nothing published for this version
- 55.0.212 Apr 2026
Nothing published for this version
- 55.0.202 Apr 2026
Nothing published for this version
- 55.0.20-canary-20260402-9da566b2 Apr 2026pre-release
Nothing published for this version
- 55.0.20-canary-20260401-5e87ef71 Apr 2026pre-release
Nothing published for this version
- 55.0.20-canary-20260328-bdc627328 Mar 2026pre-release
Nothing published for this version
- 55.0.20-canary-20260328-204918728 Mar 2026pre-release
Nothing published for this version
- 55.0.20-canary-20260327-0789fbc27 Mar 2026pre-release
Nothing published for this version
- 55.0.1927 Mar 2026
Nothing published for this version
- 55.0.1819 Mar 2026
Nothing published for this version
- 55.0.1717 Mar 2026
Nothing published for this version
- 55.0.1611 Mar 2026
Nothing published for this version
- 55.0.155 Mar 2026
Nothing published for this version
- 55.0.1427 Feb 2026
Nothing published for this version
- 55.0.1326 Feb 2026
Nothing published for this version
- 55.0.13-canary-20260429-a5e59cf29 Apr 2026pre-release
Nothing published for this version
- 55.0.13-canary-20260424-7bedc9d24 Apr 2026pre-release
Nothing published for this version
- 55.0.1225 Feb 2026
Nothing published for this version
- 55.0.1125 Feb 2026
Nothing published for this version
- 55.0.1020 Feb 2026
Nothing published for this version
- 55.0.916 Feb 2026
Nothing published for this version
- 55.0.816 Feb 2026
Nothing published for this version
- 55.0.78 Feb 2026
Nothing published for this version
- 55.0.63 Feb 2026
Nothing published for this version
- 55.0.53 Feb 2026
Nothing published for this version
- 55.0.427 Jan 2026
Nothing published for this version