Changelog
Unpublished
🛠 Breaking changes
🎉 New features
🐛 Bug fixes
💡 Others
18.1.5 — 2025-05-08
🐛 Bug fixes
18.1.4 — 2025-04-30
This version does not introduce any user-facing changes.
18.1.3 — 2025-04-25
This version does not introduce any user-facing changes.
18.1.2 — 2025-04-14
This version does not introduce any user-facing changes.
18.1.1 — 2025-04-09
This version does not introduce any user-facing changes.
18.1.0 — 2025-04-04
🐛 Bug fixes
💡 Others
18.0.10 - 2025-04-01
🐛 Bug fixes
- [iOS] Fixed issue with some permission request flows resolving too soon on iOS. (#35693 by @chrfalch)
- [iOS] Remove restarting all services when CLLocationManager reports an error (#35478 by @chrfalch)
18.0.9 - 2025-03-31
This version does not introduce any user-facing changes.
18.0.8 - 2025-03-14
💡 Others
- On iOS, added setting the scope value as per our documentation. (#35452 by @chrfalch)
18.0.7 - 2025-02-19
🐛 Bug fixes
- [iOS] Added guards to avoid task options to crash the app. (#35477 by @chrfalch)
- [iOS] Added error handler to the streaming location/heading methods since these can fail while streaming (#35004 by @chrfalch)
18.0.6 - 2025-02-10
🐛 Bug fixes
- [Android] Use less specific exception in catch block of
resolveUserSettingsForRequest
. (#34784 by @alanjhughes)
18.0.5 - 2025-01-10
This version does not introduce any user-facing changes.
18.0.4 - 2024-12-10
This version does not introduce any user-facing changes.
18.0.3 - 2024-11-29
This version does not introduce any user-facing changes.
18.0.2 — 2024-11-19
🐛 Bug fixes
- Fixed NoClassDefFoundError for
Landroid/support/v4/app/ActivityCompat;
. (#33088 by @kudo)
18.0.1 — 2024-10-22
This version does not introduce any user-facing changes.
18.0.0 — 2024-10-22
🛠 Breaking changes
- Remove deprecated code: geocoding using Google Maps API, old permission methods and related types. (#29961 by @Simek)
- Bumped iOS deployment target to 15.1. (#30840, #30867 by @tsapeta)
🎉 New features
🐛 Bug fixes
- On
iOS
, fix an issue where if the user selects "Allow Once" for location permissions, we needed to request background permissions twice because the first time had effect. (#29272 by @alanjhughes)
💡 Others
- Added warning when using background location in Expo Go. (#31461 by @chrfalch)
- Keep using the legacy event emitter as the module is not fully migrated to Expo Modules API. (#28946 by @tsapeta)
- Rework package exports. (#29953 by @Simek)
- Updated documentation for default LocationAccuracy (#31066 by @johnculviner)
17.0.1 — 2024-04-23
This version does not introduce any user-facing changes.
17.0.0 — 2024-04-18
🛠 Breaking changes
- [Web]
getPermissionsAsync
no longer prompts the user for permission instead we use the new browser API navigator.permissions.query
to check the permission status. (#26836 by @hems)
🎉 New features
- Add ability to disable permissions in config plugin by passing
false
instead of permission messages. (#28107 by @EvanBacon)
💡 Others
16.5.5 - 2024-02-29
This version does not introduce any user-facing changes.
16.5.4 - 2024-02-27
🎉 New features
- [Android] Make foreground service permission opt-in with
isAndroidForegroundServiceEnabled
config plugin option #27265 by @brentvatne)
- [Android] Enable foreground service by default when background location is enabled #27359 by @brentvatne)
16.5.3 - 2024-02-06
🐛 Bug fixes
- [Android] Fixed:
NullPointerException: it must not be null
. (#26688 by @lukmccall)
- On
Android
, prevent location service from starting when permission is not in the manifest. (#27355 by @alanjhughes)
16.5.2 - 2024-01-10
🎉 New features
🐛 Bug fixes
- [Android] Fix the module requiring the
expo-task-manager
module for methods that don't use it. (#26200 by @behenate)
16.5.1 - 2023-12-19
This version does not introduce any user-facing changes.
16.5.0 — 2023-11-14
🛠 Breaking changes
💡 Others
📚 3rd party library updates
- Updated
com.google.android.gms:play-services-location
to 21.0.1
. (#25028 by @behenate)
16.4.0 — 2023-10-17
🛠 Breaking changes
16.3.0 — 2023-09-04
🎉 New features
16.2.1 — 2023-08-02
This version does not introduce any user-facing changes.
16.2.0 — 2023-07-28
This version does not introduce any user-facing changes.
16.1.0 - 2023-07-13
🐛 Bug fixes
16.0.0 — 2023-06-21
This version does not introduce any user-facing changes.
15.3.0 — 2023-06-13
📚 3rd party library updates
- Updated
com.google.android.gms:play-services-location
to 21.0.1
and io.nlopez.smartlocation:library
to 3.3.3
(#22468 by @josephyanks)
🐛 Bug fixes
💡 Others
- On Android, removed use of deprecated
LocationRequest
constructor and replaced with LocationRequest.Builder
. (#22653 by @alanjhughes)
- Removed the Geocoding API service. (#22830 by @alanjhughes)
15.2.0 — 2023-05-08
This version does not introduce any user-facing changes.
15.1.1 — 2023-02-09
This version does not introduce any user-facing changes.
15.1.0 — 2023-02-03
🐛 Bug fixes
💡 Others
- On Android bump
compileSdkVersion
and targetSdkVersion
to 33
. (#20721 by @lukmccall)
15.0.1 — 2022-10-28
This version does not introduce any user-facing changes.
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
- Fixed
trueHeading
is sometimes bigger then 360 on Android. (#19629 by @lukmccall)
💡 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.3.0 — 2022-07-07
🐛 Bug fixes
- Fixed Android 12+ runtime crash caused by
PendingIntent
misconfiguration. (#17333 by @kudo)
14.2.1 — 2022-04-20
This version does not introduce any user-facing changes.
14.2.0 — 2022-04-18
🐛 Bug fixes
⚠️ Notices
- On Android bump
compileSdkVersion
to 31
, targetSdkVersion
to 31
and Java
version to 11
. (#16941 by @bbarthec)
14.1.0 — 2022-01-26
🐛 Bug fixes
- Allow location to work on Android with only coarse location permission. All apps do not require fine/precise location permission, but in past Expo was enforcing fine/precise even if you only needed coarse level location. (#15760 by @Noitidart)
Unpublished
🛠 Breaking changes
- Add an option to whether kill or keep the foreground service when app is killed on Android. (#15633 by @islamouzou)
- Updated
@expo/config-plugins
from 4.0.2
to 4.0.14
(#15621 by @EvanBacon)
14.0.2 — 2022-02-01
🐛 Bug fixes
- Fix
Plugin with id 'maven' not found
build error from Android Gradle 7. (#16080 by @kudo)
14.0.1 — 2021-12-15
This version does not introduce any user-facing changes.
14.0.0 — 2021-12-03
🛠 Breaking changes
🎉 New features
🐛 Bug fixes
💡 Others
- Extract nested
foregroundService
object from LocationTaskOptions
type to the separate type LocationTaskServiceOptions
. (#14672 by @Simek)
13.0.1 — 2021-10-01
This version does not introduce any user-facing changes.
13.0.0 — 2021-09-28
🛠 Breaking changes
🎉 New features
- [plugin] Added
isIosBackgroundLocationEnabled
to enable the background location UIMode (#14142 by @EvanBacon)
- Use stable manifest ID where applicable. (#12964 by @wschurman)
- Add useForegroundPermissions and useBackgroundPermissions hooks from modules factory. (#13860 by @bycedric)
🐛 Bug fixes
- Fixed
Location.getCurrentPositionAsync
throwing Location provider is unavailable.
error. (#14281 by @m1st4ke)
- Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)
- Update error message for
LocationUnavailableException
on Android. (#14539 by @kylerjensen)
💡 Others
12.1.0 — 2021-06-16
🐛 Bug fixes
- Fixed
startLocationUpdatesAsync
requiring the background location permission even if was used when the app is in the foreground on iOS. (#12594 by @lukmccall)
- Enable kotlin in all modules. (#12716 by @wschurman)
💡 Others
- Migrated from
unimodules-permissions-interface
to expo-modules-core
. (#12961 by @tsapeta)
12.0.4 — 2021-04-13
This version does not introduce any user-facing changes.
12.0.3 — 2021-04-09
🐛 Bug fixes
- Add support for user-initiated background tracking without background permission (#12456 by @bycedric)
12.0.2 — 2021-03-29
🐛 Bug fixes
- Lock the unimodules-permissions-interface dependency to the same version in react-native-unimodules
12.0.1 — 2021-03-26
🐛 Bug fixes
- Add missing unimodules-permissions-interface dependency
12.0.0 — 2021-03-10
🛠 Breaking changes
- Splitting location permissions into
Foreground
and Background
permissions. (#12063 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 sticky notification on service stop on Android. (#11775 by @zaguiini)
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne)
11.0.0 — 2021-01-15
⚠️ Notices
🛠 Breaking changes
🎉 New features
🐛 Bug fixes
- Fixed background location permission check on Android. (#11399 by @peterdn)
10.0.0 — 2020-11-17
🛠 Breaking changes
- Make background location an opt-in permission on Android. (#10989 by @bycedric)
9.0.1 — 2020-10-02
🐛 Bug fixes
9.0.0 — 2020-08-18
🛠 Breaking changes
- Add
scope
field in returned value to indicate whether background permissions are granted. Add android.accuracy
field to determine whether coarse
or fine
location permission is granted. (#9446 by @mczernek)
getLastKnownPositionAsync
no longer rejects when the last known location is not available – now it returns null
. (#9251 by @tsapeta)
- Removed the deprecated
enableHighAccuracy
option of getCurrentPositionAsync
. (#9251 by @tsapeta)
- Removed
maximumAge
and timeout
options from getCurrentPositionAsync
– it's been Android only and the same behavior can be achieved on all platforms on the JavaScript side. (#9251 by @tsapeta)
- Made type and enum names more consistent and in line with our standards — they all are now prefixed by
Location
. The most common ones are still accessible without the prefix, but it's not the recommended way. (#9251 by @tsapeta)
geocodeAsync
and reverseGeocodeAsync
no longer falls back to Google Maps API on Android. (#9444 by @tsapeta)
🎉 New features
- Added missing
altitudeAccuracy
to the location object on Android (requires at least Android 8.0). (#9251 by @tsapeta)
- Improved support for Web — added missing methods for requesting permissions and getting last known position. (#9251 by @tsapeta)
- Added
maxAge
and requiredAccuracy
options to getLastKnownPositionAsync
. (#9251 by @tsapeta)
- Google Maps Geocoding API can now be used on all platforms with the new
useGoogleMaps
option. (#9444 by @tsapeta)
- Added
district
, subregion
and timezone
values to reverse-geocoded address object. (#9444 by @tsapeta)
🐛 Bug fixes
- Fixed different types being used on Web platform. (#9251 by @tsapeta)
getLastKnownPositionAsync
no longer requests for the current location on iOS and just returns the last known one as it should be. (#9251 by @tsapeta)
- Fixed
getCurrentPositionAsync
not resolving on Android when the lowest accuracy is used. (#9251 by @tsapeta)
- Fixed
LocationGeocodedAddress
type to reflect the possibility of receiving null
values. (#9444 by @tsapeta)
8.3.0 — 2020-07-16
🐛 Bug fixes
- Added some safety checks to prevent
NullPointerExceptions
in background location on Android. (#8864 by @mczernek)
- Add
isoCountryCode
to Address
type and reverse lookup. (#8913 by @bycedric)
- Fix geocoding requests not resolving/rejecting on iOS when the app is in the background or inactive state. It makes it possible to use geocoding in such app states, however it's still discouraged. (#9178 by @tsapeta)
8.2.1 — 2020-05-29
This version does not introduce any user-facing changes.
8.2.0 — 2020-05-27
This version does not introduce any user-facing changes.