用途:gplay preflight 对本地 .aab 或 .apk 做离线合规与卫生扫描,不调用 API、不需要凭据,可在任意机器和 CI 中运行,适合在上传或 gplay validate 之前使用。
主要能力:内置九个扫描器,可用 --only 或 --skip 按逗号分隔的 ID 选择。manifest 检查 debuggable、testOnly、targetSdk 31+ 缺少 exported、provider 授权、前台服务类型权限、明文流量等;permissions 检查需 Play 声明的受限权限、数据安全披露、旧存储权限;native_libs 检查 arm64-v8a、16 KB 页对齐、x86_64、调试符号;metadata 需配合 --listings-dir 校验标题、描述、图片尺寸与截图;secrets 扫描私钥、云密钥、令牌、keystore 与 .env 泄露;billing 检查第三方支付与 Play Billing;privacy 盘点分析、归因与广告 SDK 及 AD_ID;policy 检查 targetSdk 下限与受限服务;size 检查下载体积、dex 预算与碎片。
使用方式:基本命令为 gplay preflight --file app-release.aab;加 --listings-dir ./fastlane/metadata/android 同时校验商店文案;--output json --pretty 输出机器可读报告;--list-scanners 查看扫描器;--fail-on error 或 warning 用于 CI 门禁,退出码 0 表示无达到阈值的发现,1 表示有。
限制:清单属性若指向资源引用会报告为无法静态确定,缺失发现不等于不存在;代码混淆可能导致 SDK 检测漏报,但命中可信度高。Google API 密钥属警告而非错误,应建议限制而非删除。targetSdk 下限为常量,可用 --min-target-sdk 覆盖。