Set*_*eth 7 android android-manifest android-permissions react-native react-native-android
好的,所以 Google 告诉我们“未声明后台位置访问权限”并且不让我们发布我们的应用程序。我们没有使用背景位置,所以我们试图完全消除它。
当然我的清单没有它:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="com.android.vending.BILLING" />
<uses-feature android:name="android.hardware.location.gps"/>
Run Code Online (Sandbox Code Playgroud)
我在任何地方都搜索过任何可以将 ACCESS_BACKGROUND_LOCATION 添加到我们的应用程序的内容,但一无所获。
使用银搜索器:
ag ACCESS_BACKGROUND_LOCATION .
Run Code Online (Sandbox Code Playgroud)
我已经检查了责备报告的线索,并对任何带有“背景”一词的内容进行了倒推,但无济于事:android/app/build/intermediates/manifest_merge_blame_file/myAppRelease/manifest-merger-blame-myapp-release-report 。文本
不过,我确实找到了一些额外的权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)
但我在那里没有看到任何红旗..
我试过节点删除选项:
<manifest ...xmlns:tools="http://schemas.android.com/tools"...>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)
但没什么。
我也运行了 aapt2
$ aapt2 d permissions android/app/build/outputs/apk/myapp/release/app-myapp-release.apk
package: com.myapp
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.ACCESS_COARSE_LOCATION'
uses-permission: name='android.permission.ACCESS_FINE_LOCATION'
uses-permission: name='android.permission.SYSTEM_ALERT_WINDOW'
uses-permission: name='com.android.vending.BILLING'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.ACCESS_WIFI_STATE'
uses-permission: name='android.permission.WAKE_LOCK'
Run Code Online (Sandbox Code Playgroud)
这并没有告诉我更多..
我还观看了谷歌发布的关于背景位置的整个 YouTube 视频,阅读了官方文档,并检查了每个堆栈溢出帖子 - 但他们只是推荐我已经采取的步骤。
这是一个很累的过程!我累极了。我最好的猜测是我们的依赖项是问题之一,但我没有很好的线索来确定它可能是哪一个。
真的很感激一些新鲜的眼睛..也许有人用下面的这些包之一遇到了这个问题,并且会像,就是这样!删除它!
否则,它会回到绝望的搜索和基于最少信息的蛮力重建。
"dependencies": {
"@mapbox/geo-viewport": "0.4.1",
"@mapbox/geojson-extent": "0.3.2",
"@mapbox/polyline": "1.1.1",
"@ptomasroos/react-native-multi-slider": "1.0.0",
"@react-native-community/async-storage": "1.12.0",
"@react-native-community/masked-view": "0.1.10",
"@react-native-community/netinfo": "4.7.0",
"@react-native-mapbox-gl/maps": "7.0.8",
"@sentry/react-native": "1.8.2",
"@turf/along": "^6.0.1",
"@turf/bearing": "^6.0.1",
"@turf/distance": "^6.0.1",
"@turf/helpers": "^6.1.4",
"@turf/line-distance": "^4.7.3",
"@turf/nearest": "^4.7.3",
"check-node-version": "4.0.3",
"deprecated-react-native-listview": "^0.0.6",
"eslint-plugin-react": "7.21.2",
"install": "^0.13.0",
"npm": "6.14.8",
"prop-types": "^15.6.0",
"react": "16.11.0",
"react-native": "0.62.2",
"react-native-billing": "^3.0.0",
"react-native-config": "^1.4.2",
"react-native-elements": "^1.2.7",
"react-native-gesture-handler": "1.8.0",
"react-native-in-app-utils": "6.1.0",
"react-native-linear-gradient": "^2.5.6",
"react-native-mixpanel": "1.2.5",
"react-native-rate": "1.0.9",
"react-native-safe-area-context": "^3.1.8",
"react-native-screens": "2.8.0",
"react-native-splash-screen": "3.2.0",
"react-native-sqlite-2": "1.7.0",
"react-native-vector-icons": "^6.6.0",
"react-native-webview": "10.9.3",
"react-navigation": "4.0.10",
"react-navigation-stack": "2.0.16",
"url": "^0.11.0",
"util": "0.12.3",
"which-polygon": "2.2.0"
},
"devDependencies": {
"babel-eslint": "^10.1.0",
"eslint": "^6.8.0",
"eslint-plugin-import": "2.22.1",
"fs-extra": "^8.1.0",
"jetifier": "1.6.6",
"metro-react-native-babel-preset": "^0.58.0",
"minimatch": "^3.0.4",
"node-watch": "0.6.4",
"rimraf": "2.7.1"
}
Run Code Online (Sandbox Code Playgroud)
希望右眼能看到这个,或者可以指出一些东西..谢谢!
更新,从谷歌得到了更多细节:
由于您的应用不需要后台位置,请请求移除后台使用并达到合规性:
如果您的目标是 Android 10 或更高版本(SDK 级别 29 或更高版本):从您的应用 APK 或应用包中移除 ACCESS_BACKGROUND_LOCATION 权限。如果您使用 ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION,请检查您的代码路径并将使用限制为仅用于前台目的。(了解更多信息:https : //developer.android.com/training/location/background)您应该不会再看到控制台中应用内容下列出的位置声明。如果您的目标是 Android 9 或更低版本(SDK 级别 28 或更低):如果您已经在使用 ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION,请检查您的代码路径并将使用限制为仅用于前台目的。(了解更多: https //developer.android.com/training/location/background) 在您的控制台声明中,对问题“您的应用是否在后台访问定位于 Android 9 或更早版本的 APK 或应用程序包中的位置?
时间会证明这是否是一个真正的修复,但我想我会与其他苦苦挣扎的开发者分享它。
\nGoogle 批准了我们的两个应用程序!他们批准了我们的 1 个应用程序,因为我们刚刚崩溃并告诉他们我们使用后台位置,即使我们不这样做。没有一个令人满意的答案!
\n另一个应用程序,我刚刚清除了构建文件夹并重新提交,他们接受了它。因此,这表明最后一个上传者的缓存是问题的潜在根源。尽管我预计谷歌会在两周内下架该应用程序,但我们拭目以待。
\n以下是我为那些不确定缓存是否是问题根源的开发人员清除缓存的所有注释:
\n清除项目内的缓存
\nrm android/build\nrm ios/build\nrm -rf android/.gradle\n./gradlew clean\nRun Code Online (Sandbox Code Playgroud)\n清除电脑内部缓存
\nrm -rf ~/.gradle/caches\nRun Code Online (Sandbox Code Playgroud)\n其他 ios 缓存(当你真的绝望时)
\n~/Library/Caches/CocoaPods\n~/Library/Developer/Xcode/DerivedData/*\n~/Library/Developer/Xcode/Archives/*\nRun Code Online (Sandbox Code Playgroud)\n这当然让人想起那句古老的格言:
\n如果有疑问 \xe2\x80\x93 可能是缓存问题。
\n| 归档时间: |
|
| 查看次数: |
2145 次 |
| 最近记录: |