google play says I'm requesting location permission (I'm not)

Please provide the following:

  1. SDK Version: V39
  2. Platforms(Android/iOS/web/all): Android

I have updated android permission under the app.json file but google is still saying that I’m requesting location permission.

I deleted my entire node_module and re-ran npm install and then did another built and then submitted it to Google which they today responded once again that I am requesting location permission and nothing in my app justifies that.

Nothing in my entire freaking application requires location or even does a popup. Even freaking apple approved the godforsaken app. Apple okay it and Google is not.

What do I need to do to get google to understand that I don’t need or want users locations?

1 Like

Hi. You need to explicitly specify all the permissions you need, or upgrade to SDK 40, which makes location permissions opt in.

Background location is now an opt-in permission on Android

Most users do not use this permission and it raises red flags during Play Store submission, so we’ve decided to make this permission opt-in rather than opt-out (it’s easier to fall into the pit of success).

1 Like

I have that in my app.json file. Since I don’t require any permission I left it empty but I’m going to also upgrade to expo 40 and see if it fixes this issue as it’s driving me insane. They are not even pushing updates to my app description

    "android": {
      "package": "com.project.project",
      "versionCode": 4,
      "permissions":[]

    }

Another user says that he also had to re-upload an internal testing version because the previous one he uploaded had not overridden the permissions. Maybe something to consider:

I had removed my internal testing but let me go head and roll out again and see. Right now I’m in full production and it’s doing this.

I will report back

1 Like

Have you ejected from expo. I had this issue too and it turns out that the expo eject process adds all of the expo libraries including expo-location into your yarn.lock or npm.lock file.

Delete your node_modules file, open your yarn.lock or npm.lock file and delete anything that references expo-location and then yarn to collect all of your dependencies again.

so every time I want to submit the app I need to do a expo eject?

Google just rejected my update again. I haven’t been able to send an update to my app since the beginning and my android app now has 2 big bugs and 2 features missing because of this. Even though I’m doing expo publish everyones app is not updating unless they are delete their storage and cache which is not good since they will lose all their local stored data.

issue with your app
Unclear feature description
We were unable to identify the feature that requires access to location in the background based on the declaration you submitted. Please resubmit a declaration with a clear description or additional information regarding the one feature that requires access to location in the background. Even if your app has multiple features that require access to location in the background, please only select one feature and resubmit your declaration form.

When selecting one feature, please note the following:

  • Your selected feature should deliver clear value to the user and be important to the core functionality, or main purpose of the app. Without this core feature, the app is “broken” or rendered unusable.
  • You should also consider if users would expect the app to access their location in the background, and if you can deliver the same experience without accessing location in the background.
  • Since your app does not need background location, please request to remove background usage and reach compliance:
    • For any APKs targeting Android 10 or newer (SDK level 29 or higher):

      • Remove the ACCESS_BACKGROUND_LOCATION permission from your app APK or app bundle

      • If you’re using ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION, examine your code paths and restrict usage to foreground purposes only (learn more)

      • You should no longer see the Location declaration listed under App Content

    • For any APKs targeting Android 9 or older (SDK level 28 or lower):

      • If you’re already using ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION, examine your code paths and restrict usage to foreground purposes only (learn more)

      • In your console declaration, select “No” to the question “Does your app access location in the background in APKs or app bundles targeting Android 9 or older?”

Please note that access to location in the background solely for the purpose of ads will be denied.

You should definitely not have to eject.

am still getting rejected. I’ve reached out to them again. Does the camera request the user location? Because I am building the camera app in the background

No, it does not.

Since you’re building a camera app, you’re going to need to add CAMERA to the android.permissions.

I just got done with the feature and I added to my permissions but google still denying me because of the location thing and I can’t do OTA updates since I upgrade my expo sdk version.

I’m about to lie and just say the camera needs users locations so users can see where they took the picture. This is driving me nuts

Having a similar issue with expo sdk 38. I have explicitly defined permissions too.
"permissions": ["CAMERA", "READ_EXTERNAL_STORAGE", "WRITE_EXTERNAL_STORAGE"],

I think you’ll have to upgrade to at least SDK 39.

Any updates? I have the same issue and so far, in different steps, I have tried:

  • adding empty permission array to app.json "permissions": []

  • updating permission array to app.json "permissions": ["ACCESS_FINE_LOCATION"]

  • updating from Expo 39 to Expo 40

  • removing manually expo-location dependency from package-lock.json

  • updating permission array to app.json "permissions": ["ACCESS_FINE_LOCATION", "ACCESS_COARSE_LOCATION", "ACCESS_BACKGROUND_LOCATION"]

Nothing worked; still getting this response from Google Play:

Feature does not meet requirements for background location access
Based on our review, your declared feature does not meet the requirements for background location access.

Please remove the background location permission requested and submit an update to your app. When declaring a feature for background location access, please note the following:
Your selected feature should deliver clear value to the user and be important to the core functionality, or main purpose of the app. Without this core feature, the app is “broken” or rendered unusable.
You should also consider if users would expect the app to access their location in the background, and if you can deliver the same experience without accessing location in the background.  

Any other suggestions? Thanks

here are the questions we usually ask to help understand what’s going on:

  1. Are you using managed or bare app?

it seems like you have a managed app, correct me if i am wrong

  1. What SDK version do you use?

it sounds like you are now using sdk 40

  1. What packages do you use? (e.g. list your package.json)

please provide a list

  1. What is the output of aapt2 d permissions path/to/app.apk (See this installation/usage guide of aapt2)

please provide this

  1. What is the name of your app (e.g. @acme/app)

please provide this

I am having the same error, and using SDK 40. Everytime I use expo install, expo-location is automatically added. I am constantly getting rejected from Google Play with the following error: “your background location permission declaration needs to be updated”. Please help.

1 Like

I have the exact same problem.

I’m Using managed app, EXPO SDK 40

Have tried: Removing location from from package.lock, and node modules

Nothing works, er have released the app on IOS, but are hold up at android because of this. Please help.

1 Like

This is urgent for me, because I already have the app built and published with Expo 40 on IOS, but now it seems that i have to degrade to Expo 39 to be able to build and publish to google play. This means I can’t use expo publish for hotfixes, which I’m highly reliant on right now.