You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Play更新被拒:要求移除REQUEST_INSTALL_PACKAGES,但清单无该权限

问题分析与解决方案

1. queries标签不会触发REQUEST_INSTALL_PACKAGES权限检测

你遇到的拒审大概率是Google Play自动化检测的误判,或者存在未注意到的权限残留:

  • 再次确认合并后的AndroidManifest.xml(路径一般是app/build/intermediates/merged_manifests/[variant]/AndroidManifest.xml),确保确实没有android.permission.REQUEST_INSTALL_PACKAGES条目;
  • 用Gradle命令排查依赖库:执行./gradlew app:dependencies,检查是否有第三方依赖偷偷引入了这个权限,若有则用tools:node="remove"在主清单中移除该权限。

2. 同签名应用的安装检测替代方案

因为两款应用使用同一签名密钥,完全不需要依赖queries标签就能安全检测目标应用是否安装,具体实现如下:

private boolean isTargetAppInstalled(Context context) {
    String targetPackage = "com.package.of.my.other.game";
    PackageManager pm = context.getPackageManager();
    try {
        // 获取目标应用和当前应用的签名信息
        PackageInfo targetPkgInfo = pm.getPackageInfo(targetPackage, PackageManager.GET_SIGNATURES);
        PackageInfo currentPkgInfo = pm.getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        
        // 对比签名一致性(确保是自有应用)
        for (Signature targetSig : targetPkgInfo.signatures) {
            for (Signature currentSig : currentPkgInfo.signatures) {
                if (Arrays.equals(targetSig.toByteArray(), currentSig.toByteArray())) {
                    return true;
                }
            }
        }
    } catch (PackageManager.NameNotFoundException e) {
        // 目标应用未安装
        return false;
    }
    return false;
}

注:Android 11+的包可见性规则中,同签名应用默认处于可见范围,因此即使没有queries条目,也能正常调用getPackageInfo获取目标应用信息。

3. 拒审申诉建议

在Google Play控制台的申诉页面中明确说明:

  • 应用从未声明REQUEST_INSTALL_PACKAGES权限,附上合并后的Manifest文件内容或截图;
  • 本次更新仅修改商店图标,未变更APK代码或权限配置;
  • queries条目仅用于检测自有同签名应用,不存在安装外部APK的行为,符合Google Play政策。

内容的提问来源于stack exchange,提问作者AlexeyGorovoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:30:56