android - expo șterge permisiunea locație
Încerc să îmi posteaz aplicația pe Google Play Store, dar ei spun că nu pot pentru că folosesc locația, deși eu nu o folosesc niciodată..
Dacă creez un pachet de aplicație și îl deschid cu Android Studio, găsesc asta în Manifest:
[...]
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
[...]
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
[...]
Cum ar trebui să îl șterg? Și cum să știu unde se folosește acesta?
Fișierul meu package.json :
"dependencies": {
"@react-native-community/masked-view": "0.1.10",
"@react-native-community/netinfo": "5.9.2",
"@react-navigation/drawer": "^5.9.0",
"@react-navigation/material-bottom-tabs": "^5.2.16",
"@react-navigation/native": "^5.7.3",
"@react-navigation/stack": "^5.9.0",
"@types/react-native-snap-carousel": "^3.8.2",
"expo": "~38.0.8",
"expo-barcode-scanner": "~8.2.1",
"firebase": "7.9.0",
"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-barcode-builder": "^2.0.0",
"react-native-circular-progress": "^1.3.6",
"react-native-gesture-handler": "~1.6.0",
"react-native-paper": "^4.1.0",
"react-native-reanimated": "~1.9.0",
"react-native-safe-area-context": "~3.0.7",
"react-native-screens": "~2.9.0",
"react-native-snap-carousel": "^3.9.1",
"react-native-svg": "^12.1.0"
},
"devDependencies": {
"@babel/core": "^7.8.6",
"@types/react": "~16.9.41",
"@types/react-native": "~0.62.13",
"typescript": "~3.9.5"
},
Răspuns #1
M-am confruntat cu aceeași problemă și Play Store și-a schimbat politica privind permisiunile de locație începând cu 29 martie 2021. Iată ce am descoperit:
1. Pentru Expo gestionat:
Modificați app.json pentru a adăuga „permissions” și specificați doar pe cele pe care le doriți. Aceasta va suprascrie setul implicit de permisiuni al Expo. Un array gol este în regulă dacă nu aveți nevoie de niciun fel de permisiuni.
android: {
permissions: ["READ_CONTACTS", "WRITE_SETTINGS"]
...
Ref: https://docs.expo.io/versions/latest/config/app/#permissions
Rețineți că Expo include unele permisiuni ale producătorului în mod implicit. S-ar putea să doriți să le adăugați:
"com.google.android.c2dm.permission.RECEIVE",
"com.anddoes.launcher.permission.UPDATE_COUNT",
"com.majeur.launcher.permission.UPDATE_BADGE",
"com.google.android.providers.gsf.permission.READ_GSERVICES",
"com.sonyericsson.home.permission.BROADCAST_BADGE",
"com.htc.launcher.permission.READ_SETTINGS",
"com.htc.launcher.permission.UPDATE_SHORTCUT",
"com.sec.android.provider.badge.permission.READ",
"com.sec.android.provider.badge.permission.WRITE"
2. Pentru Expo simplu:
Îndepărtați permisiunile specifice folosind tools:node="remove" în AndroidManifest.xml
Ref: https://docs.expo.io/versions/latest/sdk/permissions/#excluding-android-permissions-in-bare-workflow
3. locație-expoziție
Dacă aveți instalat expo-location, acesta va solicita automat ACCESS_COARSE_LOCATION și ACCESS_FINE_LOCATION (se pare că și ACCESS_BACKGROUND_LOCATION). Am avut instalat expo-location la un moment dat și a trebuit să-l elimin manual din node_modules și package-lock.json.
Ref: https://docs.expo.io/versions/latest/sdk/permissions/#permissions-on-android
