应用程序不符合REQUEST_INSTALL_PACKAGES权限允许的方式

回答 7 浏览 1.2万 2022-10-02

我在用flutter更新我的应用程序构建后,收到了来自google play的这封邮件。

After a recent review, we found that your app is not compliant with one or more of our Developer Program Policies. See below for more information about your app's status and how to correct the issue.

Status: Approved with Issues - Further Action Required

We found issues with your app. You need to review and take action as described below so that your app is not impacted in the future.

Issue found: The use of permission is not directly related to the core purpose of the app. We found that your app is not compliant with how REQUEST_INSTALL_PACKAGES permission is allowed to be used. Specifically, the use of the permission is not directly related to the core purpose of the app.

Additionally, follow these steps to bring your app into compliance:

Please remove the use of REQUEST_INSTALL_PACKAGES permission from your app.

About the Request Install Packages Permission

Starting September 29, 2022, your app must be in compliance with the REQUEST_INSTALL_PACKAGES permission or your app may face additional enforcement actions. The REQUEST_INSTALL_PACKAGES permission allows an application to request the installation of app packages. To use this permission, your app’s core functionality must include:

Sending or receiving app packages, AND Enabling user-initiated installation of app packages. Permitted functionalities include any of the following:

Web browsing or search Communication services that support attachments File sharing, transfer, or management Enterprise device management The REQUEST_INSTALL_PACKAGES permission may not be used to perform self-updates, modifications, or the bundling of other APKs in the asset file unless for device management purposes. All updates or installing of packages must abide by Google Play’s Device and Network Abuse policy and must be initiated and driven by the user.

谷歌解释了使其合法化的步骤,但我的清单中没有这个权限,我也没有使用功能来安装文件,我不知道这个消息的真正原因,我担心如果我不采取必要的措施,我的应用程序会被从商店中删除。

有没有人对此有更多的信息,或者知道谷歌在我的应用程序中可能真正检测到的是什么?

这些都是清单中的权限。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-feature android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:required="false" />
MANISH 提问于2022-10-02
7 个回答
#1楼 已采纳
得票数 26

在我的案例中,这与Flutter中的open_file有关。这个包在清单中使用REQUEST_INSTALL_PACKAGES权限。

我通过使用(open_file_safe) :https://pub.dev/packages/open_file_safe进行了修复。

或者你也可以使用open_filexhttps://pub.dev/packages/open_filex

这两个包与open_file相同,但不支持.apk文件类型。因此,android.permission.REQUEST_INSTALL_PACKAGES权限是不需要的。

如果你不使用open_file插件,你要检查在build/app/intermediates/merged_manifest/的合并清单中是否声明了REQUEST_INSTALL_PACKAGES的权限,如果它被使用了,就删除该权限,否则就删除该插件,并找到该插件的其他替代方案。

注意:如果你在一个原生的安卓项目中面临这个问题,你可能正在用包管理器查询所有的包,这在安卓8.0中已经不允许了。要解决这个问题,在android studio中打开你的应用程序的安卓项目,检查AndroidManifest.xml的合并清单部分,看看你是否发现该权限在你的应用程序中被使用,如果它被使用了,则删除该权限。

如果你仍然无法在合并的清单文件中找到该插件,那么为了解决这个问题,你可以尝试添加.Net的插件,这样你就能找到你所需要的东西。

<uses-permission
    android:name="android.permission.REQUEST_INSTALL_PACKAGES"
    tools:node="remove" />

在你的主清单文件中。尝试在Play Store上再次提交该应用程序,希望这将有所帮助。

在这里看到更多信息。https://support.google.com/googleplay/android-developer/answer/12085295?hl=en

Github问题。https://github.com/crazecoder/open_file/issues/204

MANISH 提问于2022-10-02
MANISH 修改于2022-10-27
嗨,我有同样的问题,因为不同的华为库。我的包目前在商店里使用这个REQUEST_INSTALL_PACKAGES权限。即使我从应用中卸载了华为库,更新也被拒绝。你有办法解决吗? 谢谢Murat Aktay 2022-10-17
请交叉检查合并的清单,如果你使用REQUEST_INSTALL_PACKAGES权限。如果你确定你没有使用这个权限,那么在play store上传最新的构建,并给google play store支持团队写邮件。MANISH 2022-10-17
是的,我确定,但当我把软件包发送到游戏控制台时,我得到了一个拒绝。我将尝试给支持团队写邮件。谢谢Murat Aktay 2022-10-17
@MuratAktay 如果你有封闭测试的轨道,那么你需要更新所有的轨道,即使是用appbundle或apk的非活动轨道,也不会使用这个权限。这在某种程度上是一个有用的补充。Jakhongir Anasov 2022-11-14
@MANISH 请在回答中涉及到它。我在向开放测试和生产部门发送appbundle后面临拒绝,我只是用有效的appbundle在封闭测试中创建了新的轨道,但它没有工作。然后就开始更新,关闭测试轨道,然后就成功了。Jakhongir Anasov 2022-11-14
#2楼
得票数 6
  1. 做任何安全的插件,如:open_file_safe或open_filex。

如果你还像我一样有问题,请联系我们。

  1. 由于某些原因,如果你在其他轨道(内部、阿尔法等)使用这种权限用法,Play控制台将拒绝最新的构建。REQUEST_INSTALL_PACKAGES检测可能指的是其他轨道中的现有构建,而不是最新构建。审查反馈信息很混乱,没有帮助。

在Play控制台(你的受影响的应用程序),点击政策下的应用程序内容

寻找敏感权限和API,然后点击 "开始"。

选择APKs和捆绑包,列表中会显示包含敏感权限/API的构建和轨道。

导航到每个受影响的轨道,创建一个新的版本,上传一个干净的构建(与之前的改动),以取代现有的,提交审查。

导航到 "发布 "概览,并检查审查是否有待提交,如果有,则发送审查。

然后,它被接受了

来源:https://github.com/crazecoder/open_file/issues/204

Abdelrahman Tareq 提问于2022-10-25
Abdelrahman Tareq 修改于2022-10-31
你为我节省了很多时间,谢谢你!"检测可能指的是其他轨道中的现有构建,而不是最新的构建。审查反馈信息很混乱,没有帮助。mercu 2022-12-09
#3楼
得票数 4

REQUEST_INSTALL_PACKAGES权限与tools:node="remove"添加到您的清单中。

<manifest ... xmlns:tools="http://schemas.android.com/tools">
   ...
   <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove" />
   ...
</manifest>

不要忘了在清单的根元素中添加tools命名空间。

Thanh Tuấn 提问于2022-10-10
当我们添加这几行时,我们是否也需要删除open_file包?Abdo Bmz 2022-10-16
@AbdoBmz 不,你仍然可以正常使用open_file包。Thanh Tuấn 2022-10-17
如果你使用这个,它将把它添加到build/app/outputs/logs/manifest-merger-release-report.txt中。Thomas Degroot 2022-10-17
@ThomasDegroot 检查这个 stackoverflow.com/questions/74031853/…Abdo Bmz 2022-10-18
#4楼
得票数 1

在我的例子中,在检查了所有的代码后,我确信已经删除了"REQUEST_INSTALL_PACKAGES"权限。但还是被拒绝了。然后我更新了一个新的版本,用于开放测试、封闭测试和内部测试。现在应用程序已成功发布

multibook hk 提问于2022-11-02
#5楼
得票数 0

你可以使用这个open_filex。他们删除了.apk权限和REQUEST_INSTALL_PACKAGES的要求,并增加了其他改进。 这个包比open_file_safe更新,所以我建议使用open_filex

Luca 提问于2022-10-12
#6楼
得票数 0

从你的清单和应用内功能中删除权限。 仔细检查你的应用是否符合所有其他开发者计划政策。 登录Play Console并提交你的应用更新。 另外,你也可以选择停用这些版本以避免可能发生的额外强制执行。你可以按照给定的步骤停用不符合规定的应用包或APKS。

  1. 进入你的游戏控制台。
  2. 选择该应用程序。
  3. 转到不符合规定的APK或应用程序捆绑包所在的轨道。
  4. 在页面右上方附近,点击创建新版本。(你可能需要先点击管理轨道) 如果带有违规APK的版本处于草稿状态,请放弃该版本。
  5. 在新版本页面下,你可以选择。A)上传一个新的、合规的APK/应用包,并确保新版本100%推出,以完全停用不合规的APK。B)不上传任何新的APK/应用包(发布一个空的版本,只停用不合规的旧版本)。
  6. 无论你在第5步中选择什么,请确保不符合标准的APK/应用包的版本是在这个新版本的不包含部分下。有关进一步的指导,请参见Play Console帮助文章中的"不包括(应用包和APK)" 部分。
  7. 要保存你对你的发布所做的任何修改,请选择 "保存"。 当你完成了你的发布的准备工作,请选择 "审查发布"。
  8. 如果不符合规定的APK被发布到多个轨道上,请在每个轨道上重复步骤3-8。
cvg 提问于2022-11-02
cvg 修改于2022-11-02
#7楼
得票数 0

在与Google Play团队沟通后,他们告诉我直接发布100%完全推出的新版本(而不是阶段性推出),这样新版本就会完全取代旧版本的REQUEST_INSTALL_PACKAGES。 Ony然后他们就会批准应用程序的审查。

neobie 提问于2022-11-23