Flutter双渠道(free/full)打包后Google Play仍报AD_ID权限错误求助
解决Flutter多渠道打包中Full版本AD_ID权限残留问题
确认Codemagic的构建渠道配置
检查Codemagic里的构建脚本,确保Full版本构建时用对了fullflavor,比如执行flutter build appbundle --flavor full(打APK就换成对应命令)。要保证Codemagic构建不同渠道时,正确切换了Android的sourceSets,别把free渠道的清单内容误打包进去。给Full版本的清单加强制移除权限声明
有些依赖可能会自动合并权限,哪怕你没在Full渠道清单里加AD_ID,也可能被带进来。直接在android/app/src/full/AndroidManifest.xml里加移除声明:<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.mistikee.mistikee.mistikee"> <!-- 强制剔除AD_ID权限 --> <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/> </manifest>注意要加上
tools命名空间,才能让移除声明生效。清理Codemagic的构建缓存
大概率是缓存导致的问题,在Codemagic的构建配置里找到缓存设置,勾选清理依赖缓存和构建产物缓存,再重新触发构建。或者直接在构建脚本开头加清理命令:flutter clean rm -rf android/.gradle rm -rf build验证打包产物的权限
构建完成后,用aapt工具检查Full版本的权限,确认没有AD_ID:aapt dump permissions app-full-release.apk确认没问题再上传到Google Play。
内容的提问来源于stack exchange,提问作者matteoh
相关产品推荐
相关产品推荐

