Google Play
Google Play Policy Insights:谷歌“上架保护伞”来了!
大家好,我是牢鹅! 近期收到不少群友反馈 App 因“行为透明度”、“网络滥用”、“欺诈行为”等问题被谷歌下架。很多时候,问题并不是出在核心功能,而是 API/权限使用不当或第三方 SDK 引入的隐性违规。 这些问题轻则反复修改权限、补交表单,重则直接应用下架甚至封号。这时候我就在想,要是有这么一款工具,在我们提审之前甚至写代码的同时,就能扫描检查到哪些地方可能踩政策红线,岂不是比事后被拒审或是下架好太多? 这不,谷歌真就上线了这么个功能:Play Policy Insigh

大家好,我是牢鹅!
近期收到不少群友反馈 App 因“行为透明度”、“网络滥用”、“欺诈行为”等问题被谷歌下架。很多时候,问题并不是出在核心功能,而是 API/权限使用不当或第三方 SDK 引入的隐性违规。

这些问题轻则反复修改权限、补交表单,重则直接应用下架甚至封号。这时候我就在想,要是有这么一款工具,在我们提审之前甚至写代码的同时,就能扫描检查到哪些地方可能踩政策红线,岂不是比事后被拒审或是下架好太多?
这不,谷歌真就上线了这么个功能:Play Policy Insights(政策洞见)。目前该功能在 Android Studio Canary 版本中以 Lint Checks 的形式试用,预计将在年底全面上线。官方使用指南:
https://support.google.com/googleplay/android-developer/answer/16297427
**什么是 Play Policy Insights(政策洞见)?**
用一句话总结:把政策风险提示前置到“写代码阶段”。
Play Policy Insights 是 Android Studio(Canary 版)里新增的一个合规预警功能。当我们在项目里加某个敏感权限或调用 API,IDE 会立刻弹出 Lint 警告,告诉我们这涉及哪条 Google Play 政策,并给出能做或者不能做的合规建议以及替代方案,同时附上直达完整政策条款的链接。

**支持哪些 Google Play 政策审核高风险点?**
截至目前 Play Policy Insights 覆盖了多类常见的高风险 API 和敏感权限检查,这些也正是大部分品类 App 在审核环节里最容易踩的坑:
* Android 广告 ID 使用的广告政策
* 无障碍 API(AccessibilityService)
* 所有文件访问权限(MANAGE_EXTERNAL_STORAGE)
* 精确闹钟权限(SCHEDULE_EXACT_ALARM)
* 定位权限(前台/后台)
* 全屏 Intent(USE_FULL_SCREEN_INTENT)
* Android 健康数据共享权限(Health Connect)
* 软件包(应用)可见性权限(QUERY_ALL_PACKAGES)
* 照片和视频访问权限(READ_MEDIA_IMAGES / READ_MEDIA_VIDEO)
* 软件安装包请求(REQUEST_INSTALL_PACKAGES)
* 短信/通话记录权限(READ_CALL_LOG、READ_SMS 等)
* VPN 服务(BIND_VPN_SERVICE)
如何使用在 Android Studio 中使用 Play Policy Insights?
想要体验这个功能,需要先安装 Android Studio Narwhal Feature Drop Canary 版本。下载链接:
https://developer.android.com/studio/preview?hl=zh-cn
安装好之后,有两种方式可以看到政策洞察提示。第一种是在写代码的时候自动提示。比如:
1、我们加了一个读取照片的权限 READ_MEDIA_IMAGES,代码那一行下面就会出现「照片和视频」相关的政策提醒;
2、如果用到某个 SDK 或者调用了广告 ID 的 API,系统会立刻弹出「广告 ID」的政策提醒;
3、又或者申请了后台定位权限的 API,IDE 也会马上给出「后台位置」的政策提醒。
这样一来,我们在写代码的时候就能第一时间知道这个权限或 API 有没有合规风险,不用等到上线被驳回才发现问题。
第二种,我们还可以通过转到 Code 菜单中 >> Inspect for Play Policy Insights,查看整个项目的政策合规提醒。

然后单击弹出窗口中的 Analyze ,即可获取这些权限的政策提醒。


除了能在 Android Studio 里直接看到这些合规提示,我们还可以在项目里加上相关依赖,让它在集成(CI)流程中自动跑检测,实现合规扫描自动化。
* **Kotlin**
lintChecks ( "com.google.play.policy.insights:insights-lint:<版本>" )
* **Groovy**
lintChecks 'com.google.play.policy.insights:insights-lint:'
**结语:
**
某种程度上,尤其是针对那些不熟悉谷歌政策、甚至很少翻阅过政策中心文档的开发者而言,Play Policy Insights 就像上架 Google Play 的一把“保护伞”。
它虽然不能保证应用百分百通过,但能让你少踩坑、少返工、少被下架。所以建议大家也赶紧试用起来,把 Policy Insights 检测设为提审前必跑流程。
推荐阅读

评论
一起交流这篇文章。