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

Hi Brent,

Thanks for replying.

  1. Workflow: Managed

  2. Expo SDK: 40.0.0

  3. My package.json

{
  "main": "./src/App.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@react-native-community/datetimepicker": "3.0.4",
    "@react-native-community/masked-view": "0.1.10",
    "@react-navigation/bottom-tabs": "^5.11.0",
    "@react-navigation/native": "^5.8.8",
    "@react-navigation/stack": "^5.12.5",
    "expo": "^40.0.0",
    "expo-constants": "~9.3.3",
    "expo-font": "~8.4.0",
    "expo-google-app-auth": "^8.1.3",
    "expo-image-picker": "~9.2.0",
    "expo-localization": "~9.1.0",
    "firebase": "7.9.0",
    "i18n-js": "^3.5.1",
    "lottie-react-native": "~2.6.1",
    "moment": "^2.25.3",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
    "react-native-action-button": "^2.8.5",
    "react-native-dotenv": "^2.4.3",
    "react-native-gesture-handler": "~1.8.0",
    "react-native-image-progress": "^1.1.1",
    "react-native-keyboard-aware-scroll-view": "^0.9.1",
    "react-native-modal-datetime-picker": "^8.6.0",
    "react-native-modal-selector": "^2.0.1",
    "react-native-picker-select": "^7.0.0",
    "react-native-progress": "^4.1.2",
    "react-native-reanimated": "~1.13.0",
    "react-native-safe-area-context": "3.1.9",
    "react-native-screens": "~2.15.2",
    "react-native-svg": "12.1.0",
    "react-native-web": "~0.13.12"
  },
  "devDependencies": {
    "@babel/core": "~7.9.0",
    "@babel/plugin-proposal-optional-chaining": "^7.9.0",
    "babel-preset-expo": "8.3.0",
    "prettier": "^2.2.0",
    "typescript": "~4.0.0"
  },
  "private": true
}

  1. output of aapt2
package: com.myfridge.App
permission: com.myfridge.App.permission.C2D_MESSAGE
uses-permission: name='com.myfridge.App.permission.C2D_MESSAGE'
uses-permission: name='com.google.android.c2dm.permission.RECEIVE'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.SYSTEM_ALERT_WINDOW'
uses-permission: name='android.permission.WAKE_LOCK'
uses-permission: name='android.permission.CAMERA'
uses-permission: name='android.permission.ACCESS_FINE_LOCATION'
uses-permission: name='host.exp.exponent.permission.C2D_MESSAGE'
uses-permission: name='android.permission.MODIFY_AUDIO_SETTINGS'
uses-permission: name='android.permission.ACCESS_WIFI_STATE'
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
uses-permission: name='android.permission.FOREGROUND_SERVICE'
uses-permission: name='com.sonymobile.home.permission.PROVIDER_INSERT_BADGE'
uses-permission: name='com.huawei.android.launcher.permission.CHANGE_BADGE'
uses-permission: name='com.huawei.android.launcher.permission.READ_SETTINGS'
uses-permission: name='com.huawei.android.launcher.permission.WRITE_SETTINGS'
uses-permission: name='android.permission.READ_APP_BADGE'
uses-permission: name='com.oppo.launcher.permission.READ_SETTINGS'
uses-permission: name='com.oppo.launcher.permission.WRITE_SETTINGS'
uses-permission: name='me.everything.badger.permission.BADGE_COUNT_READ'
uses-permission: name='me.everything.badger.permission.BADGE_COUNT_WRITE'
uses-permission: name='com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE'
  1. @angelopalmieri/myfridge

Thanks for your help.

1 Like

your app does not include background locations permission, the only location permission it includes is:

uses-permission: name=‘android.permission.ACCESS_FINE_LOCATION’

are you sure that you have submitted this version of the binary to the play store? if so, you could share this information with google and ask them for clarification on their concerns about background location usage

1 Like

Hi @angelopalmieri!

I also took a look at your package.json and builds from your app. Here are some findings that might help:

  1. Your dependencies from package.json:


    As you can see in this screenshot, there aren’t a lot of dependencies in your project that includes Android permissions. However, expo-location is installed because it’s a dependency of expo itself. That means both ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION are added if you didn’t specify the expo.android.permissions array in the manifest.

  2. Your latest builds
    I also pulled in your APKs to decompile them and see the defined permissions. I checked build ids e89eda3e-4a70-440a-a5cc-2323806c6ff0 and 5ec85d63-a164-4554-9e47-3d966d614916. These actually includes the ACCESS_BACKGROUND_LOCATION, along with the other location permissions mentioned above. But, that’s not because we add it, it’s because it’s listed in the expo.android.permissions array:
    Screenshot 2021-02-03 at 22.43.59
    Luckily, your last build 94c2b53f-7074-4c8b-8460-1dbf91714d1f only includes ACCESS_FINE_LOCATION and CAMERA permissions in your expo.android.permissions list. And shouldn’t include any of the background permissions.

As Brent mentioned, if you still get warnings about used background location I think it’s good to contact Google about that. We aren’t adding it to your app, so it could be an issue on Google’s end.

Hope this helps!

3 Likes

Same problem with expo 40, after eliminating all expo-location blocks from lock file.

If you are using SDK 40 and you do not have “ACCESS_BACKGROUND_LOCATION” in your android.permissions list then the problem is not with that version of your app. Manually removing stuff from the lock file is the wrong thing to do and will not solve the problem.

TLDR. Make sure all test tracks have the correct non-location requiring app version.

I had this problem because I had an old version of my app in a testing track I didn’t use anymore. No one was using it, but because it was built on an earlier SDK version it did have the location permission and Google’s automated checks flagged the entire app even when I tried updating another test track.

It was hard to spot and took quite a bit of time as I had to pause the entire track (you can’t delete it) and then when that didn’t work I updated that testing track app to the latest non-location requiring app version (even though no one was using it) and that finally released my other tracks to accept updates.

Google recently updated their checks which kicks off this problem.

1 Like

Hey there, hello guys, I’m facing the same issue here :sweat_smile:

I updated that testing track app to the latest non-location requiring app version

Were you able to edit an existing release on a testing track, or did you create a new release in the track with the new app?

I am unable to edit existing releases, and I can’t upload new releases as it says I need to update my location declaration… The new app bundle I am uploading definitely doesn’t use location permissions, but I still can’t create a new release.

I had to upload a new version to the track with the old one, I couldn’t update any other track until that “offending” apk had been replaced with a new version.

am having this same problem, pls how do i solve this?

Yes unfortunately it won’t let me update any track, as there is currently a published app that does request location in the background (even though I am not using location, it was just an expo default I was unaware of).

I got a response from Google:

App Content is based on the active (published) artifacts. As you have previously published a release that uses these permissions, you would need to fill up the declaration form.

So basically, my only option is to fill in the declaration form, fabricating a reason that I need to use location and developing a fake feature to capture a video of… Crazy.

And they understand that your app has never actually used background location?

Any solution???

Please answer the questions from this comment.

Add privacy policy. You can use this site to generate one for free https://app-privacy-policy-generator.firebaseapp.com/

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.