uni-app 开发商 DCloud 最新回应称,经过与 Google Play 沟通,此问题于 6.24 号晚上提交 hello uni-app 应用到 Google Play,经审核测试确认已解决。
其实谷歌这次突然调整规则,受影响的不只是 uni-app 开发者,所有包含安装 APK 代码的 App,即使采用原生开发,也会被 Google Play 下架。
程序员发帖称自己用开源框架 uni-app 开发的 App 被 Google Play 下架,原因是 uni-app 自带的 SDK 包含违反 Google Play 政策的内容——包括广告代码,以及下载第三方 App 的代码。
uni-app
是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到 iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。
DCloud 官方对此回应称,经过与 Google Play 沟通,此问题于 6.24 号晚上提交 hello uni-app 应用到 Google Play 审核测试确认已解决。
App 被下架主要原因是 DCloud SDK 中存在安装 APK 的代码,而 Google Play 不允许应用直接下载 APK 进行安装,安装应用必须通过 Google Play 操作。但对于国内应用市场,在 App 中直接下载 APK 是被允许的,而 SDK 没有区分国内和 Google Play 渠道版本,实际都包含了 APK 安装代码 (plus.runtime.install)。
P.S. 正因国内应用市场没有不允许 App 安装 APK 的限制,很多 Android 应用都使用 plus.runtime.install 安装自己的更新版。
虽然 Google Play 的政策一直都不允许 App 自己安装 APK,但之前的检测方式是检测应用权限(android.permission.INSTALL_PACKAGES 和 android.permission.REQUEST_INSTALL_PACKAGES),只要没有安装 APK 的权限即可上架。
如上文所说,DCloud SDK 的源码里一直都有安装 APK 的代码。但在端午期间,Google Play 突然升级了检测方式,对于事实上无法执行的 APK 安装代码进行了扫描。虽然它没有应用安全权限,无法执行 APK 安装,但按照 Google Play 更新后的政策,只要源码里有安装 APK 相关的代码都被视为不合规。
也就是说,无论是否基于 uni-app 开发,只要 App 的源码中包含安装 APK 的代码,都会被 Google Play 下架。
DCloud 表示,后续他们将把安装 APK 的代码独立为一个可选模块,在针对 Google Play 渠道打包时不包含这个模块。
国内开发者也可以单独选择是否包括这个模块。届时 plus.runtime.install 这个 jsapi 会一直存在,只是没有打包 APK 安装模块时,调用 install api 安装 APK 会报错——提示缺少模块。