即使在取消了CALL_LOG和SMS权限之后,应用发布错误

时间:2019-01-29 08:15:14

标签: java android permissions sms release

根据开发人员政策,建议不要使用与SMS和CALL_LOG相关的权限,除非该应用具有与之相关的核心功能。我以前使用READ_SMS权限来自动检测OTP,但后来从应用程序中将其删除并用SMS Retriever API替换了它。我于2019年1月3日在没有任何禁止播放商店的许可的情况下发布了该应用程序,在要求该应用程序在没有这些许可的情况下进行更新的截止日期为2019年1月9日之前。收到一个需要解决1个错误的应用发布错误。当我单击查看错误详细信息时,消息为“在创建声明敏感权限的新应用发布之前,您无法编辑此应用”。

当前,我的应用程序中使用的权限列表如下:-

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.RECORD_AUDIO" />

我没有使用任何SMS或CALL_LOG权限,但在发布新版本时仍然遇到错误。请查看链接以查看错误。

enter image description here

发布新版本时出现应用错误

enter image description here

7 个答案:

答案 0 :(得分:8)

我检查了应用发布仪表板上“发布管理”下的“工件库”部分。

我仔细检查了每个“活动工件”,并发现了一个实时工件,该工件已在Open Track(Beta)上发布,但尚未投入生产。此活动工件很早以前是Beta版,已获得READ_SMS许可,该警告是造成警告的原因。

因此,为了解决这个问题,我在没有SMS或CALL_LOG许可的情况下推出了我的应用,以测试Beta版的曲目。

从Beta版开始,我将其发布到生产环境中,并且能够将我的应用发布到生产环境中。

答案 1 :(得分:2)

确保没有活动的APK具有跨曲目的敏感权限。以下是为防万一的步骤:

  

要发布新的兼容APK,请按照以下步骤操作:

转到您的Play控制台。

选择应用。

在左侧菜单上,选择发布管理>应用发布。 在不兼容的APK处于活动状态的发布轨道旁边,选择管理。

如果您的生产轨道具有不兼容的APK,则强烈建议您将其发布到生产轨道中。

建议的订单(如果曲目包含不兼容的APK):内部曲目>已关闭>打开>生产

要创建新版本,请选择创建版本(或编辑版本)。

上传新的兼容APK或“从库添加”

如果在发布应用程序时看到“权限声明表”,请根据以下说明完成该表:

选择一项核心功能(例如默认的短信处理程序)以发布具有兼容APK的版本。此版本可能会自动导致拒绝,但会停用轨道中不兼容的APK。

选择页面底部的“保存”>“查看”。

单击“开始”卷展栏。

请确保新版本发布了100%,并完全停用了不兼容的APK。

返回第1步,在轨道上发布另一个版本,其中不兼容的APK处于活动状态,直到没有活动的APK具有跨轨道的敏感权限。 如果您已使用跨曲目的兼容APK更新了您的应用,请检查是否还有剩余具有敏感权限的活动APK。这是在Play控制台中进行检查的方法。

转到发布管理>工件库

扩展活动APK和草稿APK

扩展每个APK的必需权限

答案 2 :(得分:1)

有2种想法,您需要确定是否已删除所有权限,而Google仍拒绝该应用。 1.检查您的合并清单,该清单可能具有某些库的权限。像这样删除它

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

2。从PlayStore控制台的alpha或beta版本更新测试版本。

答案 3 :(得分:1)

大约一天后,我总结出以下步骤来消除这个奇怪的错误。

首先,在确保已从清单文件中删除权限之后,还应该交叉验证某些库没有使用相同的权限,也要从库中删除权限,请将其添加到清单文件中。

<uses-permission
  android:name="android.permission.RECEIVE_SMS"
  tools:node="remove"/>
<uses-permission
  android:name="android.permission.READ_SMS"
  tools:node="remove"/>
<uses-permission
  android:name="android.permission.READ_CALL_LOG"
  tools:node="remove"/>
<uses-permission
  android:name="android.permission.WRITE_CALL_LOG"
  tools:node="remove"/>

第二个最重要的点(真正的问题是我的情况),签入您没有的Play商店中的每个曲目(生产,Beta,Alpha,内部测试)以及使用了这些权限的旧版APK,在这种情况下,您需要在每个轨道中上传新的apk:生产轨道:生产,开放轨道:测试版,封闭轨道:Alpha,内部测试轨道:内部测试

Ph!

答案 4 :(得分:0)

@Rakhi

我建议您只阅读本文档。可能是您忘记了删除其他一些敏感权限。https://play.google.com/about/privacy-security-deception/permissions/

因此,只需检查此权限列表,然后在代码中查找是否发现不需要的内容即可。

答案 5 :(得分:0)

首先,您必须发布一个具有前一个APK所具有的敏感权限的APK。上载APK后,将弹出一个权限声明表格,您可以通过该表格选择应用程序是否兼容以使用敏感权限。您需要选中“否,此发行版不符合SMS和通话记录”,以便突出显示“推出发行版”按钮,然后单击它。在您的应用推出并审核后,您便可以能够在没有那些敏感权限的情况下发布新更新。

******但是,如果您的应用需要敏感权限,则必须选中“是,我的应用符合要求”,然后等待他们的批准。*****

这是我可以找到的解决方法,并且有效。开发人员支持无法提供有关此问题的有价值的信息。

答案 6 :(得分:0)

您可能必须停用发行版中捆绑的所有较旧的APK。

如果您要替换具有这些权限并具有较旧目标SDK版本的APK,则看起来Google Play会在新版本中默认将其激活,这将导致即使您的最新版本也需要敏感权限政策APK没有此权限。