PackageTrack

npm · #3720

@expo/cli

57.0.19expo/expo

The Expo CLI

Release timeline

501 releases since 2022
20222023202420252026

Releases

  1. 56.0.36 May 2026

    Nothing published for this version

  2. 56.0.25 May 2026

    Nothing published for this version

  3. 56.0.15 May 2026

    Nothing published for this version

  4. 56.0.05 May 2026
    Release notes

    🛠 Breaking changes

    • unimodules-app-loader
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-web-browser
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-video-thumbnails
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-task-manager
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-store-review
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-speech
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-sqlite
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-sms
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-sharing
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-secure-store
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-sensors
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-screen-capture
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-screen-orientation
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-print
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-network
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-notifications
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-localization
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-media-library
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
      • Promote the object-oriented MediaLibrary API to the root expo-media-library import and move the legacy API to expo-media-library/legacy. (#46030 by @Wenszel)
    • expo-mail-composer
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-location
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-keep-awake
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-modules-core
      • [iOS] Replaced the Objective-C++ JSI layer (EXJavaScriptRuntime, EXJavaScriptObject, ExpoModulesHostObject, EXSharedObjectUtils, etc.) with the new ExpoModulesJSI Swift 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)
    • expo-local-authentication
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-linking
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-image-manipulator
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-haptics
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-linear-gradient
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-gl
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-image-picker
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-font
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-document-picker
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-file-system
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
      • copy() and move() methods of File and Directory are now asynchronous and return a Promise. Use copySync() and moveSync() for synchronous behavior. (#44359 by @barthap)
      • [Android] In Expo Go, Paths.cache and Paths.document are now pointing to experience-isolated directories. (#45977 by @barthap)
      • File.write() is now asynchronous and returns a Promise. Use File.writeSync() for synchronous behavior. (#45992 by @wh201906)
      • FileHandle.readBytes() and FileHandle.writeBytes() are now asynchronous and return a Promise. Use FileHandle.readBytesSync() and FileHandle.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-crypto
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-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-contacts import and move the legacy API to expo-contacts/legacy. (#46037 by @Wenszel)
    • expo-constants
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-clipboard
      • Removed deprecated setString function. Use setStringAsync instead. (#41758 by @barthap)
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-cellular
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-camera
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-calendar
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
      • Promote the object-oriented Calendar API to the root expo-calendar import and move the legacy API to expo-calendar/legacy. (#46030 by @Wenszel)
    • expo-brightness
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-blur
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-battery
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-background-fetch
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-application
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-apple-authentication
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)
    • expo-asset
      • Bumped minimum iOS/tvOS version to 16.4, macOS to 13.4. (#43296 by @tsapeta)

    🎉 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-browser
    • expo-task-manager
    • expo-sqlite
    • expo-sharing
    • expo-secure-store
    • expo-sensors
    • expo-screen-orientation
    • expo-notifications
    • expo-localization
    • expo-media-library
    • expo-mail-composer
    • expo-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 Equatable conformance to Either type. (#43954 by @nishan) (#43954 by @intergalacticspacehighway) (#43954, #43954 by @intergalacticspacehighway, @intergalacticspacehighway)
      • [android] Add installModuleClasses and __resolveInWorklet for resolving shared object class prototypes in the worklet runtime. (#44669 by @intergalacticspacehighway)
      • [iOS] Add installModuleClasses for 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.__resolveInWorklet for resolving shared objects in worklet runtimes. (#44215 by @nishan) (#44215 by @intergalacticspacehighway)
      • NativeArrayBuffer and JavaScriptArrayBuffer arguments now also accept typed arrays. (#43082 by @barthap)
      • [Android] Use the RuntimeScheduler to schedule tasks on the JS thread. (#43481 by @alanjhughes)
      • [iOS] Add nativeModule look up function and bundleURL to AppContext. (#43661 by @gabrieldonadel)
      • [iOS] Added a polyfill for Swift Mutex for 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.emit dropping NativeArrayBuffer values in events (#45257 by @alanjhughes)
      • Added single-payload overloads for SharedObject.emit on iOS and Android. The iOS API also accepts an already-converted JavaScriptValue payload to skip the native-to-JS conversion step. (#45596 by @tsapeta)
      • [iOS] Decodable types can now be used as native function arguments. JS values are decoded through the dynamic-type registry, so arrays, dictionaries, optionals, RawRepresentable enums and Convertibles are coerced consistently. (#45705 by @tsapeta)
      • [Android] Create Compose props without View. (#46256 by @jakex7)
    • expo-local-authentication
    • expo-linking
      • Added Linking.clearInitialURL() to reset the cached deep-link URL. (#46265 by @gabrieldonadel)
    • expo-haptics
    • expo-linear-gradient
    • expo-image-picker
    • expo-font
    • expo-document-picker
    • expo-file-system
      • [iOS] Add support for mode option 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 overwrite option to copy and move methods. (#42979 by @barthap)
      • [Android] Add mode option when opening file handle. (#42983 by @barthap)
      • Add onProgress callback and AbortSignal support to File.downloadFileAsync(). (#43053 by @aleqsio)
      • Add file.createUploadTask() and File.createDownloadTask() APIs (#44055 by @barthap)
      • Add File.upload() with legacy-compatible upload semantics, progress callbacks, and AbortSignal support. (#45033 by @barthap)
      • Add support for watching file/directory events. (#44986 by @barthap)
      • Added File.json() and File.formData() to satisfy Blob type augmentations in consumer projects. (#45685 by @mvincentong)
    • expo-device
    • expo-contacts
    • expo-cellular
    • expo-camera
    • expo-calendar
    • expo-brightness
    • expo-background-fetch
    • expo-apple-authentication
    • expo-asset

    🐛 Bug fixes

    • expo-web-browser
      • Fixed openAuthSessionAsync silently failing on iOS 17.4+ when using https:// redirect URLs without Associated Domains entitlements. The HTTPS universal link callback API is now opt-in via the preferUniversalLinks option. (#44452 by @vonovak)
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • 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.pro via consumerProguardFiles so the -keep class expo.modules.taskManager.** rule is added to consumer apps' R8 pass. (#46029 by @jiunshinn)
    • expo-speech
      • [Android] Fix NullPointerException in LanguageUtils.getISOCode when the TTS engine returns a voice with a non-standard locale. (#44807 by @zoontek)
    • expo-sqlite
      • Add explicit secure context error for web/wa-sqlite/AccessHandlePoolVFS.js (#40605 by @BDav24)
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-sharing
      • [iOS] Fix shareAsync promise 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)
    • expo-secure-store
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-sensors
      • [iOS] Fixed TCC crash on iOS 26 during Metro reload when motionPermission: falseCMAltimeter.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)
    • 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 lockAsync silently failing when flipping between previously-applied masks. (#45239 by @alanjhughes)
      • [iOS] Fixed EXC_BAD_ACCESS crash from recursive supportedInterfaceOrientations when react-native-screens per-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 isInternetReachable much more robust. Also emit network state changes when network capabilities change. (#45101 by @LumaDevelopment)
    • expo-notifications
      • [ios] Fixed requestPermissionsAsync returning raw permission result without several documented fields (#43555 by @vonovak)
      • [ios] Guard against crash in BackgroundEventTransformer when notification body is a primitive type. (#45198 by @DORI2001)
      • [web] fix getDevicePushTokenAsync export (#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 / BSPreconditionFailure on iOS 16. (#45096 by @qutrek)
      • [android] Apply bundled proguard-rules.pro via consumerProguardFiles so 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)
    • expo-localization
      • Prevalidate locale strings in config-plugin (#45888 by @kitten)
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-media-library
      • [Android] Read video dimensions from MediaStore cursor instead of opening each file with MediaMetadataRetriever, fixing extremely slow getAssetsAsync on devices with many videos. (#44714 by @oeddyo)
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-mail-composer
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-location
      • [iOS] Ignore locationUnknown errors in watchPositionAsync. (#44027 by @tsapeta)
      • [Android] Foreground service notification icon now falls back to notification_icon drawable before applicationInfo.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)
    • 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.readEntries race condition by serializing reads on the dispatch queue. (#43958 by @ramonclaudio)
      • [iOS] Fixed looking up the EXConstants.bundle from 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 ExpoHostWrapper instead of reactBridge.uiManager. (#44375 by @vonovak)
      • [iOS] Resolve react-native-worklets from 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 eventEmitter in SwiftUIVirtualView.dispatchEvent to 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 Record on Field.options. The set is now guarded by a per-field lock and accessed through a single withOptions API. (#45072 by @nishan) (#45072 by @intergalacticspacehighway)
      • [iOS] Fixed converting Enumerable function 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(...) and rgba(...) color strings when converting JS color values to android.graphics.Color. (#44023 by @dileepapeiris)
      • [iOS] Fix missing jsi headers when building static frameworks (#44865 by @gabrieldonadel)
      • Fixed runtime crash when missing Host component for SwiftUI or Jetpack Compose components. (#44118 by @kudo)
      • [iOS] Restore pre-ExpoModulesJSI Record conversion behavior by hydrating only declared fields, preserving undefined handling 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.so via 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 Encodable function results so arrays, dictionaries, optionals, RawRepresentable enums and Convertibles 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 associatedCookies in Network.requestWillBeSentExtraInfo CDP events serializing as a JSON object instead of an array. (#45720 by @huntie)
      • [Android] Keep ExpoComposeView content visible during parent view transitions (e.g., react-native-screens pop navigation). (#45942 by @intergalacticspacehighway)
      • [iOS] Fix occasional SharedObject.emit crashes caused by an off-thread JSI lookup. (#45986 by @tsapeta)
      • [Android] Suppress -Wunused-result compiler warning in FrontendConverter.cpp. (#46073 by @tomekzaw)
      • [android] Fix nested Host double-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-authentication
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-intent-launcher
      • [Android] Fixed getApplicationIcon throwing an error on Android below API 26. (#46043 by @lukmccall)
    • 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 msaaSamples and enableExperimentalWorkletSupport optional in GLViewProps to align TypeScript types with their runtime defaultProps values. (#43767 by @jcarlosroldan)
      • Install WebGLRenderingContext and WebGL2RenderingContext globals 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 WebGL2RenderingContext inherit from WebGLRenderingContext, matching the WebGL spec. gl2 instanceof WebGLRenderingContext now returns true for WebGL2 contexts, and shared constants and methods are no longer duplicated on the WebGL2 prototype. (#45871 by @tsapeta)
    • 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 null mime type reported (#43734 by @vonovak)
      • [android] Fix potential vulnerability in com.canhub.cropper.CropImageActivity being exported. (#45357 by @behenate)
      • [iOS] Fix base64 result 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-font
      • Align ServerFontResourceDescriptor.crossOrigin type with React (#45115 by @hassankhan)
      • [android] include xml-fonts in the getLoadedFonts() list (#43860 by @vonovak)
      • Sanitize values in web font loader and Android config plugin (#45887 by @kitten)
    • expo-document-picker
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-file-system
      • [Android] Fix copy/move support for SAF and content provider URIs. (#42887 by @barthap)
      • Fix out-of-memory errors when calculating file md5 hash. (#44064 by @barthap)
      • [iOS] Fix totalDiskSpace returning free disk space instead of total disk capacity. (#44849 by @shanebdavis)
      • Fix onProgress callback of File.downloadFileAsync() sometimes not firing on download completion. (#45238 by @barthap)
      • [iOS] Fix File.pickFileAsync() greying out all files when using wildcard MIME types like */* or image/*. (#45245 by @barthap)
      • Fixed the jest mock's FileSystemFileHandle to honor FileMode string values ('r', 'w', 'wa', 'wt', 'rw') instead of the obsolete name table, expose handle and file metadata, and match the documented default mode for content:// URIs. The dispatch is now exhaustive over FileMode, so future enum additions fail to compile in the mock. (by @radko93)
      • [Android] Added missing permission checks to delete() and openHandle() in the next-gen File System API. (#45967 by @barthap)
      • [Android] Fixed path traversal vulnerability in createFile, createDirectory, and rename that allowed escaping the parent directory. (#45967 by @barthap)
      • [Android] Fixed Paths.cache and Paths.document pointing to wrong directory in Expo Go. (#45977 by @barthap)
    • expo-crypto
    • expo-contacts
      • Fix expo-contacts/next throwing Cannot find native module 'ExpoContactsNext' when imported on web by adding a web shim. (#46018 by @zoontek)
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
      • Fix getDetails throwing NPE on malformed label (#46405 by @Wenszel)
    • expo-cellular
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-camera
      • [Web] Fix isAvailableAsync returning true on 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 type value 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.launchScanner is interactively dismissed and the app is backgrounded/foregrounded. (#45063 by @alanjhughes)
      • [Android] Remove RECORD_AUDIO from the manifest so recordAudioAndroid depends on the plugin. (#45132 by @alanjhughes)
      • [iOS] Fix itf14 barcode type not detecting generic Interleaved 2 of 5 barcodes, so behavior matches Android's FORMAT_ITF. (#44796 by @mduchev)
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-calendar
      • Fixed NumberFormatException crash on Android when calendar/event IDs exceed Integer.MAX_VALUE. (#43344 by @olivier-bouillet)
      • [iOS] Fix deleteEventAsync deleting wrong recurring event instance when instanceStartDate is provided. (#40172 by @marcelogdeandrade)
      • [Android] Add missing escaping of calendarIds filter 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)
    • expo-brightness
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-blur
    • expo-battery
      • [android] Add BatteryState.NOT_CHARGING when power is connected but the battery is not charging (e.g. battery protection); map BATTERY_STATUS_DISCHARGING to UNPLUGGED only (#44212) (#44451 by @vj2303)
    • expo-background-fetch
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-application
    • expo-apple-authentication
      • Fix an ES module import error in the typed config plugin. (#46089 by @zoontek)
    • expo-asset
      • Fixed incorrect MD5 checksum on Android. (#43909 by @kudo)

    💡 Others

    • unimodules-app-loader
      • [iOS] Added missing Foundation.h imports in header files. (#44248 by @chrfalch)
    • expo-web-browser
      • [Android] Bring back the experimentalLauncherActivity config plugin option. (#44073 by @lukmccall)
    • expo-store-review
      • [iOS] Migrated requestReview to the new @MainActor async-function API. (#44337 by @tsapeta)
    • expo-sqlite
      • Bumped dev-plugin-webui to SDK 55. (#43412 by @kudo)
      • [iOS] Updated sync function signatures (runSync, applyChangesetSync, invertChangesetSync) to accept any AnyArrayBuffer in place of the removed JavaScriptArrayBuffer. (#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-sensors
      • Updated permission type and permission status imports to be imported from expo instead of expo-modules-core (#45565 by @Wenszel)
    • expo-screen-capture
      • Updated permission hooks and permission type imports to be imported from expo instead of expo-modules-core (#45565 by @Wenszel)
    • expo-screen-orientation
      • [iOS] Added explicit import React for xcframework compatibility. (#44248 by @chrfalch)
    • expo-notifications
      • Skip redundant device push token registration when token and metadata are unchanged since last successful registration. (#44836 by @stephanepham)
      • [iOS] Added explicit import React for xcframework compatibility. (#44248 by @chrfalch)
      • Updated permission type and permission status imports to be imported from expo instead of expo-modules-core (#45565 by @Wenszel)
    • expo-localization
    • expo-media-library
      • Mark legacy API deprecated (#44605 by @Wenszel)
      • [next] Replace JS static overrides with StaticAsyncFunction (#44473 by @Wenszel)
      • Updated permission hooks and permission type imports to be imported from expo instead of expo-modules-core (#45565 by @Wenszel)
    • expo-location
      • Updated permission hooks and permission type imports to be imported from expo instead of expo-modules-core (#45565 by @Wenszel)
    • expo-modules-core
    Open source →
  5. 56.0.0-canary-20260506-964f25d6 May 2026pre-release

    Nothing published for this version

  6. 56.0.0-canary-20260506-326540f6 May 2026pre-release

    Nothing published for this version

  7. 56.0.0-canary-20260506-1b0052a6 May 2026pre-release

    Nothing published for this version

  8. 56.0.0-canary-20260506-03817f56 May 2026pre-release

    Nothing published for this version

  9. 56.0.0-canary-20260505-84af74c5 May 2026pre-release

    Nothing published for this version

  10. 56.0.0-canary-20260501-870dcba1 May 2026pre-release

    Nothing published for this version

  11. 56.0.0-canary-20260501-15d35291 May 2026pre-release

    Nothing published for this version

  12. 56.0.0-canary-20260423-c31bd8e23 Apr 2026pre-release

    Nothing published for this version

  13. 56.0.0-canary-20260420-2ac87c020 Apr 2026pre-release

    Nothing published for this version

  14. 56.0.0-canary-20260417-141204f17 Apr 2026pre-release

    Nothing published for this version

  15. 56.0.0-canary-20260414-e3dbafd14 Apr 2026pre-release

    Nothing published for this version

  16. 56.0.0-canary-20260409-6fc29919 Apr 2026pre-release

    Nothing published for this version

  17. 56.0.0-canary-20260402-87c5ce22 Apr 2026pre-release

    Nothing published for this version

  18. 56.0.0-canary-20260305-51637465 Mar 2026pre-release

    Nothing published for this version

  19. 56.0.0-canary-20260212-4f6130912 Feb 2026pre-release

    Nothing published for this version

  20. 56.0.0-canary-20260128-67ce8d528 Jan 2026pre-release

    Nothing published for this version

  21. 55.0.3625 Aug 2026

    Nothing published for this version

  22. 55.0.3517 Aug 2026

    Nothing published for this version

  23. 55.0.3415 Jul 2026

    Nothing published for this version

  24. 55.0.3325 Jun 2026

    Nothing published for this version

  25. 55.0.3221 May 2026

    Nothing published for this version

  26. 55.0.3119 May 2026

    Nothing published for this version

  27. 55.0.3013 May 2026

    Nothing published for this version

  28. 55.0.295 May 2026

    Nothing published for this version

  29. 55.0.284 May 2026

    Nothing published for this version

  30. 55.0.271 May 2026

    Nothing published for this version

  31. 55.0.2622 Apr 2026

    Nothing published for this version

  32. 55.0.2521 Apr 2026

    Nothing published for this version

  33. 55.0.2413 Apr 2026

    Nothing published for this version

  34. 55.0.239 Apr 2026

    Nothing published for this version

  35. 55.0.227 Apr 2026

    Nothing published for this version

  36. 55.0.212 Apr 2026

    Nothing published for this version

  37. 55.0.202 Apr 2026

    Nothing published for this version

  38. 55.0.20-canary-20260402-9da566b2 Apr 2026pre-release

    Nothing published for this version

  39. 55.0.20-canary-20260401-5e87ef71 Apr 2026pre-release

    Nothing published for this version

  40. 55.0.20-canary-20260328-bdc627328 Mar 2026pre-release

    Nothing published for this version

  41. 55.0.20-canary-20260328-204918728 Mar 2026pre-release

    Nothing published for this version

  42. 55.0.20-canary-20260327-0789fbc27 Mar 2026pre-release

    Nothing published for this version

  43. 55.0.1927 Mar 2026

    Nothing published for this version

  44. 55.0.1819 Mar 2026

    Nothing published for this version

  45. 55.0.1717 Mar 2026

    Nothing published for this version

  46. 55.0.1611 Mar 2026

    Nothing published for this version

  47. 55.0.155 Mar 2026

    Nothing published for this version

  48. 55.0.1427 Feb 2026

    Nothing published for this version

  49. 55.0.1326 Feb 2026

    Nothing published for this version

  50. 55.0.13-canary-20260429-a5e59cf29 Apr 2026pre-release

    Nothing published for this version

  51. 55.0.13-canary-20260424-7bedc9d24 Apr 2026pre-release

    Nothing published for this version

  52. 55.0.1225 Feb 2026

    Nothing published for this version

  53. 55.0.1125 Feb 2026

    Nothing published for this version

  54. 55.0.1020 Feb 2026

    Nothing published for this version

  55. 55.0.916 Feb 2026

    Nothing published for this version

  56. 55.0.816 Feb 2026

    Nothing published for this version

  57. 55.0.78 Feb 2026

    Nothing published for this version

  58. 55.0.63 Feb 2026

    Nothing published for this version

  59. 55.0.53 Feb 2026

    Nothing published for this version

  60. 55.0.427 Jan 2026

    Nothing published for this version