Google Play rejected because of "Unable to verify background feature in app"

Please provide the following:

  1. SDK Version: 39
  2. Platforms: Android

Hi guys, I’ve got this rejection message on Google Play after submitting latest expo build 39.


Issue with your app
Unable to verify background feature in app
In our review, we were unable to verify that the app offers the declared background feature.

Our review team must be able to verify the feature’s functionality in your app. If your feature is not visible to the user then you must demonstrate its functionality in your submitted video.

Your video should show the in-app feature’s functionality using location in the background and how a user would trigger the prominent disclosure, runtime permission (with user consent), and the declared feature. If your feature’s functionality is not directly visible to the user, then you will need to show us its functionality in a video showing the in-app experience (e.g. notifying the user of a fraud alert).

Please modify your video to demonstrate the declared feature for which you are requesting access to the location in the background, and resubmit your declaration form via the Play Console. Affected APK(s):
App Bundle:18, App Bundle:2

About the Permissions & Location Permissions policies
You may only request permissions that are necessary to implement critical current features or services in your application. You may not use permissions that give access to user or device data for undisclosed, unimplemented, or disallowed features or purposes. In order for our team to check for compliance, we must be able to review and verify your in-app experience.

Anyone has the same issue?

Yes, I am also the same problem

I am facing same problem.my app rejected two time.

Are any of you using location services at all?

If you don’t need any specific permissions, you can exclude this by adding the “permissions” key, set to an empty array, to the “android” key in your app.json

e.g.

...
  "android": {
     ...
    "permissions": []
  }

If you need specific permissions you can add them to this array. By default, Expo standalone apps ask for all supported permissions to make the process of deploying standalone as smooth as possible.

See here: Deploying to App Stores - Expo Documentation

1 Like

Same problem here

Expo 38 and 39
Platform Android

I use the manage app and i don’t use in my app the backgroud location feature. I don’t need in my app getting the location so my perimissions in app.json is empty. Making a npm list expo-location on the root of my project i see this

└─┬ expo@38.0.9
  └── expo-location@8.2.1 

for expo 38 and this for expo 39

└─┬ expo@39.0.3
  └── expo-location@9.0.0 

i’ve not installed this module directly but as i can see the expo install it. Here my package.json

"dependencies": {
    "@babel/plugin-transform-react-jsx-source": "^7.2.0",
    "@react-native-community/datetimepicker": "2.4.0",
    "expo": "^38.0.0",
    "expo-font": "~8.2.1",
    "expo-linking": "^1.0.3",
    "expo-permissions": "~9.0.1",
    "expo-web-browser": "~8.3.1",
    "moment": "^2.20.1",
    "native-base": "^2.13.12",
    "react": "16.11.0",
    "react-dom": "16.11.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-38.0.2.tar.gz",
    "react-native-autocomplete-input": "4.1.0",
    "react-native-elements": "^0.19.0",
    "react-native-gallery-swiper": "^1.21.0",
    "react-native-gesture-handler": "~1.6.0",
    "react-native-masked-text": "^1.6.5",
    "react-native-modal-datetime-picker": "^8.5.1",
    "react-native-reanimated": "~1.9.0",
    "react-native-router-flux": "^4.0.4",
    "react-native-screens": "~2.9.0",
    "react-native-vector-icons": "^6.1.0",
    "react-native-webview": "^10.6.0",
    "react-redux": "^5.0.6",
    "redux": "^3.7.2",
    "redux-thunk": "^2.2.0"
  },

Now Google is asking me to explain why i’m using the backgroud location feature otherwise my app will be removed. So that mean i can do a

expo remove expo-location

to solve the problem ?

please read App was required to update for Background Location by Google · Issue #11102 · expo/expo · GitHub

In addition to the information from the issue that Brent pointed you at, see if the following helps:

Yarn and npm do basically the same job. They both install dependencies listed in package.json . Npm keeps track of the package versions etc. in package-lock.json and yarn uses yarn.lock for the same reason.

You should use npm or yarn to manage your dependencies. Not both. If you use npm, make sure you have deleted yarn.lock . If you use yarn, make sure you have deleted package-lock.json .

After you’ve made sure app.json and package.json are right and you only have one lock file, run npm install (if you’re using npm) or yarn (if you’re using yarn). Double check that you still only have one lock file. Then build the app again and that should work.

Note that e.g. if you have a version that you uploaded to the play store for internal testing that did not specify the list of permissions in app.json and you are now trying to submit a new production build you will need to upload a new internal testing version again too after rebuilding as per Brent’s answer.

hello, i have the same problem. Use expo 38 android platform. my app using location service that are core function to this apps, the function send location (lat lng) when submitting form and it is not using background location. i’ve already filled permission declaration form but my app still get rejected. is there something i missed? thanks in advance

Hi

I think you’ll need to upgrade to SDK 39 or 40. In SDK 40, background location permissions are disabled by default. In SDK 39 it’s still included by default, except if you manually specify the Android permissions in your app.json.

1 Like

hello mr wodin, thank very much for reply my answer.
i’ve found solution and my app already approved by google. Like you said, i dont set “permission” in app.json so all the possible permission are submited include background location.

1 Like

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