应用程序发布错误,即使在删除 CALL_LOG 和 SMS 权限后

Posted

技术标签:

【中文标题】应用程序发布错误,即使在删除 CALL_LOG 和 SMS 权限后【英文标题】:App release error , even after removing CALL_LOG and SMS permission 【发布时间】:2019-06-22 07:30:24 【问题描述】:

根据开发者政策,建议不要使用 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 权限,但在发布新版本时仍然遇到错误。请参考链接查看错误。

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

【问题讨论】:

是的,Play 商店也提供了导致问题的权限名称,所以请您检查 Play 商店错误并添加该屏幕截图。 Play 商店没有提到任何导致问题的权限名称。 您找到解决方案了吗?我也曾经需要 SMS 权限,并且之前声明我不符合他们的指导方针。现在,我上传了一个不使用该权限的新版本,但它似乎没有注意到我不再需要该权限... @JoelJeske 我能够将应用程序发布到生产环境。就我而言,警告是由于 beta 测试轨道上的一个活动工件具有 SMS 相关权限。我推出了一个新的 beta 版本,没有任何禁止的权限,严格遵守开发者指南,之后警告没有出现。从测试版开始,我将其推广到生产环境。 【参考方案1】:

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

我仔细检查了每一个“Active Artifact”,发现一个在 Open Track(Beta) 上发布的 live artifact 没有被推送到生产中。这个很久以前是 beta 版本的活动工件具有 READ_SMS 权限,该权限负责发出警告。

因此,为了解决这个问题,我在没有 SMS 或 CALL_LOG 许可的情况下推出了我的应用程序,以便在 Beta 上测试轨道。

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

【讨论】:

这篇文章拯救了我的一天! 如果我的帖子能够帮助人们并解决他们面临的与我类似的问题,如果社区将我的回答标记为已接受,我将不胜感激。 只需为没有任何 APK 的 Beta(或 Alpha)通道创建一个新版本,它将“删除”当前版本。是的,我知道,U - 可用性,但这就是它的制作方式。【参考方案2】:

确保没有跨轨道具有敏感权限的活动 APK。为了以防万一,请遵循以下步骤:

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

转到您的 Play 管理中心。

选择应用程序。

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

如果您的生产轨道包含不合规的 APK,强烈建议您在生产轨道中发布最后一个版本。

建议的顺序(如果轨道有不合规的 APK):内部轨道 > 关闭 > 开放 > 生产

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

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

如果您在发布应用时看到权限声明表,请按照以下说明填写表单:

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

选择页面底部的保存 > 审核。

单击开始推出。

请确保新版本 100% 推出并完全停用不合规的 APK。

返回第 1 步,在不合规 APK 处于活动状态的轨道中发布另一个版本,直到没有跨轨道具有敏感权限的活动 APK。 如果您已跨轨道使用合规 APK 更新您的应用,请检查是否有任何活动 APK 剩余敏感权限。以下是在 Play 管理中心内进行检查的方法。

转到发布管理 > 工件库

扩展活动 APK 和草稿 APK

扩展每个 APK 所需的权限

【讨论】:

感谢@Anoop M,Make sure no active APK with sensitive permissions across tracks. 解决了我的问题...我之前在内部测试版本中使用这些权限进行了活动构建(apk)。在删除内部测试权限后,我上传了最新的 Build(apk)。拯救了我的一天【参考方案3】:

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

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

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

【讨论】:

谢谢!您可能还需要将xmlns:tools="http://schemas.android.com/tools" 添加到 AndroidManifest.xml 顶部的清单标记【参考方案4】:

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

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

<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:生产轨道:生产,开放轨道:Beta,封闭轨道:Alpha,内部测试轨道:内部测试

呼!

【讨论】:

谢谢!您可能还需要将xmlns:tools="http://schemas.android.com/tools" 添加到 AndroidManifest.xml 顶部的清单标记【参考方案5】:

@Rakhi

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

因此,只需检查此权限列表,并在您的代码中找出不需要的内容。

【讨论】:

我在 Play 商店中的现有应用不请求任何 SMS 或 CALL LOG 相关权限。删除它们后,我已经在 2019 年 1 月 3 日发布了应用更新。当我尝试使用新版本更新我的应用程序时,我目前正面临这个问题。 我认为您必须联系 Google 帮助中心。【参考方案6】:

首先,您必须使用前一个 APK 所具有的敏感权限发布一个 APK。 APK上传后,会弹出一个权限声明表,让您选择您的应用程序是否合规使用敏感权限。您需要检查“否,此版本不符合短信和通话记录”,以便突出显示“推出版本”按钮,单击它。一旦您的应用推出并经过审核,您将能够在没有这些敏感权限的情况下发布新更新。

******但是,如果您的应用需要敏感权限,您必须检查“是的,我的应用符合要求”并等待他们的批准。*****

这是我能找到的解决方法,它奏效了。开发人员支持无法提供有关此问题的有价值信息。

【讨论】:

【参考方案7】:

您可能必须停用该版本中捆绑的任何旧 APK。

如果您要替换具有这些权限且目标 SDK 版本较旧的 APK,那么看起来 google play 会在新版本中默认激活它们,这将导致需要敏感权限策略,即使您的最新版本也是如此APK 没有这个权限。

【讨论】:

以上是关于应用程序发布错误,即使在删除 CALL_LOG 和 SMS 权限后的主要内容,如果未能解决你的问题,请参考以下文章

为什么我收到警告 - 此应用不符合Google Play权限政策,即使我的最新版本不需要这些权限?

即使在删除 node_modules 和 npm install 后安装新包时也无法修复编译错误

即使似乎授予访问权限,Google Calendar API在OAuth期间也会出现403错误

我删除了所有通话记录权限,并且我的应用未在 Play 商店中显示

Android - 利用内容提供者删除通话记录

即使在登录时也删除 SQL 登录