Google Play Expo w/ React - Expo 的 app.json 文件中与 Android 对应的 plist 是啥?
Posted
技术标签:
【中文标题】Google Play Expo w/ React - Expo 的 app.json 文件中与 Android 对应的 plist 是啥?【英文标题】:Google Play Expo w/ React - What is the plist equivalent for Android in Expo's app.json file?Google Play Expo w/ React - Expo 的 app.json 文件中与 Android 对应的 plist 是什么? 【发布时间】:2021-02-18 19:20:44 【问题描述】:我正在获得 Google Play 批准的应用版本,但因收集敏感信息(在本例中为背景位置)而被拒绝。我正在使用 expo 运行 react native,我可以看到在 ios 中有一个 plist 配置 app.json
似乎解决了其中一些问题,但我不确定什么是 android 等价物,所以我可以进行必要的更改。
Google 声明如下:
App Bundle:15, App Bundle:14 Prominent disclosure not found
Your app must display a prominent disclosure through a pop-up alert before your app’s location runtime permission. Based on our review, a prominent disclosure did not appear before the runtime permission.
Remember, your prominent disclosure must:
Appear before your app’s location runtime permission.
Include at least the following sentence, adapted to include all the relevant features requesting access to location in the background in the app that are readily visible to the user: “This app collects location data to enable ["feature"], ["feature"], & ["feature"] even when the app is closed or not in use.” If you extend permitted usage to ads, please also include: “This data is also used to provide ads/support advertising/support ads.”
我假设我可以在app.json
中插入类似于 ios 的 plist 的内容?
app.json
...
"assetBundlePatterns": [
"**/*"
],
"ios":
"supportsTablet": true,
"bundleIdentifier": "com.blah,blah",
"buildNumber": "1.1.0",
"infoPlist":
"NSLocationWhenInUseUsageDescription": "Allow VolleyPal to use your location. Your location is used to check you in at the appropriate playground. Your location data are not used or stored in any other way or for any other purpose."
,
"android":
"package": "com.blah.blah",
"versionCode": 16
,
"description": ""
【问题讨论】:
你明白了吗? @SolomonAntoine 你能解决这个问题吗? 【参考方案1】:尝试在你的 app.json 中添加这个在 android 下
"permissions": ["ACCESS_COARSE_LOCATION", "ACCESS_FINE_LOCATION", "ACCESS_BACKGROUND_LOCATION", "Permissions.LOCATION"],
这里是link,我是从那里获得此信息的。
您是否还填写了表格或类似的东西,关于您为什么想要用户的位置。 (Play商店在上传apk后提交审核之前问我)
还可以在用户首次启动应用程序时添加提醒,您正在请求权限。 (认为这就是您的应用被拒绝的原因)
【讨论】:
【参考方案2】:您需要使用这个适用于 android 的权限背景做一些事情。我试着单独向你解释。
编码部分
根据您的描述,您的应用程序请求了位置权限,该服务将用作背景。我不知道这是不是你需要做的一个必要过程,如果答案是肯定的,我建议你看看这里的链接https://developer.android.com/training/location/background,在这个页面中它告诉你你需要什么样的权限在AndroidMainfest.xml
。在您的情况下,我认为可能所有这些权限 ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_BACKGROUND_LOCATION(this is for background location in your case)
都需要放在这个 xml 中。
再次,我不知道您如何准确地编写代码来请求权限,我认为它可能使用react native library
来执行此操作。如果没有,看看这个页面https://reactnative.dev/docs/permissionsandroid
google play中尊重流程的部分
分开编码后,需要做权限声明表,这个链接告诉你怎么做https://support.google.com/googleplay/android-developer/answer/9888170。
一旦你拥有了所有这些东西,你还需要做两件事。
1.提供视频演示 您必须提供一个短视频的链接,该视频演示了您的应用中基于位置的功能,该功能需要在后台访问位置(当应用未使用时)。
https://support.google.com/googleplay/android-developer/answer/9799150?hl=en#zippy=%2Cstep-provide-prominent-in-app-disclosure%2Cstep-provide-a-video-demonstration
2.提供突出的应用内披露 此步骤通常是经过验证的步骤,但是对于如何共享位置数据有严格的规定。您需要验证有关请求许可的所有过程是否正确,并且在您请求许可时已经很好地解释了措辞。 也以这个例子为例,它会帮助你对它有清晰的认识。 https://support.google.com/googleplay/android-developer/answer/9799150?hl=en#zippy=%2Cstep-provide-prominent-in-app-disclosure
【讨论】:
以上是关于Google Play Expo w/ React - Expo 的 app.json 文件中与 Android 对应的 plist 是啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 Google Play 控制台上上传我的 React Native/Expo 应用程序时出错
React Native Expo 应用程序在 Play 管理中心错误地列出了详细信息
react-native / expo / expo-google-app-auth vs expo-google-sign-in