Changelog
Unpublished
🛠 Breaking changes
🎉 New features
🐛 Bug fixes
💡 Others
18.2.1 — 2025-12-05
This version does not introduce any user-facing changes.
18.2.0 — 2025-09-16
🎉 New features
18.1.1 — 2025-09-10
💡 Others
- Extracted the read permission check from
FileSystemUtilities (#39210 by @kosmydel)
18.1.0 — 2025-09-08
🎉 New features
18.0.6 — 2025-09-02
💡 Others
18.0.5 — 2025-08-31
This version does not introduce any user-facing changes.
18.0.4 — 2025-08-27
This version does not introduce any user-facing changes.
18.0.3 — 2025-08-25
This version does not introduce any user-facing changes.
18.0.2 — 2025-08-16
This version does not introduce any user-facing changes.
18.0.1 — 2025-08-15
This version does not introduce any user-facing changes.
18.0.0 — 2025-08-13
🛠 Breaking changes
- [Android] Fix
getAssetsAsync loading performance, add resolveWithFullInfo option to control whether 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 @kosmydel).
🎉 New features
🐛 Bug fixes
💡 Others
17.1.7 - 2025-06-04
🐛 Bug fixes
- [Android] Fix
deleteAssetsAsync not working on android 11 or above (#33211 by @Zeeshan404)
17.1.6 — 2025-04-30
This version does not introduce any user-facing changes.
17.1.5 — 2025-04-30
This version does not introduce any user-facing changes.
17.1.4 — 2025-04-25
🐛 Bug fixes
- Fixed
medialibraryassetschangeevent listener not capturing assets changes. (#36459 by @aleqsio)
- Fixed build error from AppDelegate.swift integration. (#36368 by @kudo)
17.1.3 — 2025-04-21
This version does not introduce any user-facing changes.
17.1.2 — 2025-04-14
This version does not introduce any user-facing changes.
17.1.1 — 2025-04-09
💡 Others
- [Android] Add
granularPermissions option to config plugin. (#36142 by @bang9)
17.1.0 — 2025-04-04
🎉 New features
💡 Others
17.0.6 - 2025-02-14
💡 Others
17.0.5 - 2025-01-10
This version does not introduce any user-facing changes.
17.0.4 - 2024-12-19
🐛 Bug fixes
- [iOS] Fix
unknown file type being returned for video files. (#33589 by @behenate)
17.0.3 — 2024-11-22
🐛 Bug fixes
17.0.2 — 2024-11-05
🐛 Bug fixes
17.0.1 — 2024-11-04
This version does not introduce any user-facing changes.
17.0.0 — 2024-10-22
🛠 Breaking changes
🎉 New features
- [iOS] include more error information in native rejections (#30504 by @vonovak)
- On
Android 14+, when user gave only partial asset access, presentPermissionsPickerAsync() presents the permissions dialog to allow the user to change the selected assets. (#29882 by @vonovak)
🐛 Bug fixes
- On
iOS, getAssets crashed when result was is empty (#29969 by @vonovak)
- On
Android, throw an error when deleting an asset was unsuccessful. (#29777 by @mathieupost)
- Add missing
react-native peer dependencies for isolated modules. (#30476 by @byCedric)
- On
Android, adding an asset to an album containing another album would throw an exception. (#29777 by @nafeij)
- [Android] Fix exceptions when moving or deleting video assets. (#31424 by @behenate)
💡 Others
- Removed redundant usage of
EventEmitter instance. (#28946 by @tsapeta)
16.0.4 - 2024-06-20
🐛 Bug fixes
- On
iOS, add back image loader to handle ph:// and assets-library:// schemes. (#29747 by @alanjhughes)
16.0.3 — 2024-04-23
This version does not introduce any user-facing changes.
16.0.2 — 2024-04-22
🐛 Bug fixes
16.0.1 — 2024-04-19
This version does not introduce any user-facing changes.
16.0.0 — 2024-04-18
🎉 New features
- [Android] Add support for allowing access permissions to only selected photos. (#27749 by @behenate)
- [Android] Add support for granular permissions. (#27729 by @behenate)
🐛 Bug fixes
💡 Others
- Prevent config plugin from writing permissions until prebuild. (#28107 by @EvanBacon)
- [iOS] Add privacy manifest describing required reason API usage. (#27770 by @aleqsio)
- drop unused web
name property. (#27437 by @EvanBacon)
- [iOS] Migrate to expo modules. (#25587 by @alanjhughes)
- Removed deprecated backward compatible Gradle settings. (#28083 by @kudo)
- The
ACCESS_MEDIA_LOCATION Android permission should not pulled into by default and should be pulled through Config Plugins. (#28230 by @kudo)
15.9.1 - 2023-12-19
This version does not introduce any user-facing changes.
15.9.0 — 2023-12-12
🐛 Bug fixes
- On iOS, fix iOS 14 limited library picker presentation, using
presentPermissionsPickerAsync, on nested views and reject Promise if state is not limited. (#25521 by @exodusanto)
- Fix promises being resolved twice on Android. (#25763 by @lukmccall)
15.8.0 — 2023-11-14
🛠 Breaking changes
15.7.0 — 2023-10-17
🛠 Breaking changes
15.6.0 — 2023-09-04
🎉 New features
15.5.1 — 2023-08-02
🐛 Bug fixes
- On iOS, fix issue where the wrong requester class was used if the user had requested
writeOnly permissions. (#23780 by @alanjhughes)
15.5.0 — 2023-07-28
This version does not introduce any user-facing changes.
15.4.1 - 2023-07-23
🐛 Bug fixes
- Fix
albumNeedsMigrationAsync crashing if called with invalid albumId on Android. (#23516 by @lukmccall)
- Fix
the bind value at index 1 is null exception thrown by ExpoMediaLibrary.migrateAlbumIfNeededAsync on Android. (#23515 by @lukmccall)
15.4.0 — 2023-06-21
📚 3rd party library updates
🎉 New features
🐛 Bug fixes
- Fixed missing permissions error on Android when the user only requests write permissions (#22457 by @alanjhughes)
- Fixed Android build warnings for Gradle version 8. (#22537, #22609 by @kudo)
15.3.0 — 2023-05-08
🐛 Bug fixes
15.2.1 — 2023-02-09
This version does not introduce any user-facing changes.
15.2.0 — 2023-02-03
💡 Others
- On Android bump
compileSdkVersion and targetSdkVersion to 33. (#20721 by @lukmccall)
15.1.0 — 2022-12-30
🎉 New features
🐛 Bug fixes
- Renamed the module on iOS to match the name used on Android. (#20283 by @alanhughes)
- Fixed an issue where passing the
sortBy argument to MediaLibrary.getAssetsAsync would cause the method to throw an error. (#21363 by @alanhughes)
15.0.0 — 2022-10-25
🛠 Breaking changes
- Bumped iOS deployment target to 13.0 and deprecated support for iOS 12. (#18873 by @tsapeta)
🐛 Bug fixes
- Fix promise rejection on M1 iOS Simulator due to
UTTypeCreatePreferredIdentifierForTag not working as expected. (#19669 by @aleqsio)
💡 Others
- [plugin] Migrate import from @expo/config-plugins to expo/config-plugins and @expo/config-types to expo/config. (#18855 by @brentvatne)
- Drop
@expo/config-plugins dependency in favor of peer dependency on expo. (#18595 by @EvanBacon)
14.2.0 — 2022-07-07
🐛 Bug fixes
- Use
PHAssetCollectionSubtypeAny subtype to avoid Recently Deleted album to show up (#17561 by @chuganzy)
- Fix
MediaLibrary._exportAsset crashing if filename is nil. (#17999 by @ken0nek)
14.1.0 — 2022-04-18
🐛 Bug fixes
- Don't ask for
ACCESS_MEDIA_LOCATION permission if it's not present in AndroidManifest.xml. (#16034 by @barthap)
- [plugin] Fix prebuild is failing when the
withMediaLibrary plugin is enabled on Android. (#15169 by @MorganV)
💡 Others
⚠️ Notices
- On Android bump
compileSdkVersion to 31, targetSdkVersion to 31 and Java version to 11. (#16941 by @bbarthec)
14.0.1 - 2022-02-01
🐛 Bug fixes
- Fix
Plugin with id 'maven' not found build error from Android Gradle 7. (#16080 by @kudo)
14.0.0 — 2021-12-03
💡 Others
13.0.1 — 2021-10-01
🐛 Bug fixes
- Fix permissions always returning denied on android api < 29. (#14570 by @kudo)
- Fix unhandled rejection when asset creation fails on Android. (#14583 by @barthap)
13.0.0 — 2021-09-28
🛠 Breaking changes
🎉 New features
🐛 Bug fixes
- Restore location exif data getter for Android 10+ devices. (#14413 by @ajsmth)
- EXIF parsing failure no longer crashes the
getAssetsAsync and getAssetInfoAsync, the promise returns exif: null instead. (#14408 by @barthap)
- Fixed
createAssetAsync and saveToLibraryAsync on Android 11. (#14518 by @barthap)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
💡 Others
- Migrated from
@unimodules/core to expo-modules-core. (#13755 by @tsapeta)
- Added
AlbumType and MediaSubtype types, added missing orientation key to the Asset type. (#13936 by @Simek)
- Remove
assets-library:// uri scheme usage in favour of ph:// (#14173 by @ajsmth)
- Updated
@expo/config-plugins (#14443 by @EvanBacon)
12.1.0 — 2021-06-16
🐛 Bug fixes
💡 Others
- Migrated from
unimodules-file-system-interface and unimodules-permissions-interface to expo-modules-core. (#12961 by @tsapeta)
12.0.2 — 2021-04-13
This version does not introduce any user-facing changes.
12.0.1 — 2021-03-31
This version does not introduce any user-facing changes.
12.0.0 — 2021-03-10
🛠 Breaking changes
- Changed location of newly created albums on Android. From now, albums won't be saved in the root folder. (#12017 by @lukmccall)
🎉 New features
- Converted plugin to TypeScript. (#11715 by @EvanBacon)
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec)
🐛 Bug fixes
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne)
- In 'getAssetInfoAsync', respect the
shouldDownloadFromNetwork option. (#12086 by @drtangible)
11.0.0 — 2021-01-15
⚠️ Notices
🛠 Breaking changes
🎉 New features
10.0.0 — 2020-11-17
🛠 Breaking changes
- On iOS enabled
use_frameworks! usage by replacing React dependency with React-Core. (#11057 by @bbarthec)
- Renamed
MediaLibrary.MediaLibraryAssetChangeEvent type to MediaLibrary.MediaLibraryAssetsChangeEvent.
🎉 New features
- Added the
MediaLibrary.presentPermissionsPickerAsync method that displays the system prompt allowing the user to change the selected permitted assets` on iOS.
9.2.1 — 2020-09-02
🐛 Bug fixes
- Fixed
RuntimeException: setDataSource failed: status = 0x80000000 caused by MediaMetadataRetriever. (#9855 by @lukmccall)
- Fixed
media-library methods failing when not all permissions were granted on iOS 14. (#10026 by @lukmccall)
9.2.0 — 2020-08-18
🐛 Bug fixes
- Fixed handling albums without name on Android. (#9787 by @barthap)
9.1.0 — 2020-08-13
🎉 New features
🐛 Bug fixes
- Fixed
getAlbumsAsync(), getAlbum() and media change listener crashing on Android 10. (#9666 by @barthap)
9.0.0 — 2020-08-11
🛠 Breaking changes
- Added external storage permissions declarations to
AndroidManifest.xml on Android. (#9231 by @bycedric)
🐛 Bug fixes
- Fixed validation for input arguments of
getAssetsAsync. (#9538 by @barthap)
- Fixed bug, where
getAssetsAsync did not reject on error on Android. (#9538 by @barthap)
8.5.0 — 2020-07-29
🎉 New features
- Added
options to getAssetInfoAsync(), which allows specifying whether to download the asset from network in iOS. (#9405 by @jarvisluong)
- Added support for the limited
CAMERA_ROLL permission on iOS 14. (#9423 by @lukmccall)
🐛 Bug fixes
- Fixed
getAssetsAsync crashes when given invalid after value on Android. (#9466 by @barthap)
8.4.0 — 2020-07-27
🐛 Bug fixes
- Fixed
getAssetsAsync() and getAssetInfoAsync() location issues on Android Q. (#9315 by @barthap)
8.3.0 — 2020-07-02
🐛 Bug fixes
- Handled the crash when calling
getAssetInfoAsync on a slow motion video on iOS. (#8802 by @jarvisluong)
8.2.1 — 2020-05-29
This version does not introduce any user-facing changes.
8.2.0 — 2020-05-27
🐛 Bug fixes
- Added missing image loader for
MediaLibrary in bare workflow. (#8304 by @tsapeta)
- Fixed
MediaLibrary not compiling with the use_frameworks! option in the bare React Native application. (#7861 by @Ashoat)
- Flip dimensions based on media rotation data on Android to match
<Image> and <Video> as well as iOS behavior. (#7980 by @Ashoat)