华为等安卓商店审核拒收原因有五:权限声明不精准、运行时申请无用途说明、Android 13相册权限未分项配置、隐私政策弹窗未启用或时机错误、签名证书与targetSdkVersion不合规,且工信部备案信息须与包名、证书指纹完全一致。

manifest.json 权限声明不精准,直接被拒
华为、小米、OPPO 等商店第一道审核就是静态扫描 manifest.json。只要声明了没用到的权限(比如勾选了 ACCESS_FINE_LOCATION 但代码里根本没调 uni.getLocation),就会标记为“过度索取”,秒拒。
实操建议:
- 打开
manifest.json→ “App权限配置” → 把所有勾选项清空,只保留INTERNET和READ_EXTERNAL_STORAGE(Android 12+ 还要确认是否真需要后者) - 敏感权限如相机、录音、电话状态等,**必须在“强制移除的权限”字段手动填入**,例如:
"<uses-permission android:name='\"android.permission.CAMERA\"' tools:node='\"remove\"/'>"</uses-permission> - 如果不确定哪个插件偷偷加了权限,可在项目根目录新建
AndroidManifest.xml,用tools:node="remove"显式剔除(注意包名要和manifest.json一致)
运行时申请权限没说明用途,华为必驳
调用 uni.authorize 或 uni.openSetting 前,必须先弹出自定义说明弹窗,且内容要含三要素:权限名称、具体功能、使用场景。纯技术描述(如“需要位置权限”)或延迟 >500ms 弹出,都会被判定为“未同步告知”。
实操建议:
- 别在
onLaunch里直接申请;改在用户点击按钮后触发,例如:@click="handleUploadAvatar" - 弹窗必须手动关闭(不能自动消失),标题用
title字段,正文用content,长度控制在 40 字以内,避免“用于提升用户体验”这类模糊表述 - Android 13 起相册权限拆成
READ_MEDIA_IMAGES和READ_MEDIA_VIDEO,需分别配置说明,不能共用同一段文案
隐私政策弹窗未启用或时机错误
华为要求首次启动必须展示原生隐私协议弹窗,且必须在任何 SDK 初始化、API 调用、权限检查之前触发。如果用了第三方统计 SDK(如友盟、个推),又没在弹窗确认后再初始化,会被扫出“未授权收集个人信息”。
实操建议:
- 在
manifest.json→ “App启动界面配置” → 勾选“使用原生隐私政策提示框”,并填写合法有效的隐私政策 URL - 所有 SDK 初始化逻辑(包括
uni.getProvider、plus.navigator.getStatusBarHeight)必须包裹在uni.showPrivacyModal的confirm回调内 - 不要用
uni.getSetting检查权限状态来替代弹窗——这属于“提前探测”,华为会认为你在规避用户授权
签名证书和 targetSdkVersion 不合规
云打包默认用 DCloud 测试证书,有效期仅 1 年,且 targetSdkVersion 常卡在 29 或 30。华为 2026 年起强制要求 targetSdkVersion >= 33(Android 13)、V2/V3 双签名、证书有效期 ≥25 年。
实操建议:
- 用命令行生成长期证书:
keytool -genkey -alias mykey -keyalg RSA -validity 9125 -keystore mykey.keystore - HBuilderX 打包时,在“发行 → 原生 App-云打包 → 自定义基座”中上传 keystore,并确认勾选 V2 和 V3 签名
- 检查
manifest.json中android.targetSdkVersion是否设为33或34;若设为字符串(如"33")会导致打包失败
manifest.json、打包 keystore 完全一致,缺一不可。


















