Unity项目转IronSource后仍被Google Play检测到Unity Ads引用排查求助
Unity Ads迁移后Google Play检测残留的排查方案
核对IronSource适配器的依赖链
别先排除适配器的可能,打开Package Manager切换到「In Project」视图,找到IronSource的Unity Ads适配器,查看它的Package.json里的dependencies字段,确认有没有引入旧版com.unity.ads(Legacy版本)。再用Unity自带的「Dependency Analyzer」(Window > Analysis > Dependency Analyzer)扫描全项目,揪出所有和unity-ads相关的直接/间接依赖。拆APK深挖细节
既然已经发现META-INF/unity-ads_release.kotlin_module,用apktool反编译APK后重点查这几点:- 查看
libs目录里有没有unity-ads.jar或unity-ads.aar这类Legacy包的产物; - 检查
AndroidManifest.xml里有没有残留Unity Ads的权限、Activity或者<meta-data>配置(比如com.unity3d.ads.IUnityAdsListener相关声明); - 搜索所有
classes.dex文件,查找带com.unity3d.ads包名的类,确认是Legacy代码还是IronSource适配层的正常代码。
- 查看
检查Unity构建配置和漏网文件
- 打开「Player Settings > Android > Publishing Settings」,看看自定义的
Custom Main Manifest或Custom Main Gradle Template里有没有手动添加过Unity Ads的依赖/配置,这些文件不受Package Manager管理; - 查看项目根目录的
gradle.properties和Android模块的build.gradle,有没有implementation 'com.unity3d.ads:unity-ads:x.x.x'这类直接依赖; - 翻阅
Assets/Plugins/Android目录,有没有Unity Ads相关的jar/aar文件——这些文件会被Unity直接打包进APK,不管Package Manager里是否删除了对应包。
- 打开「Player Settings > Android > Publishing Settings」,看看自定义的
排查其他第三方插件的隐式引用
除了IronSource,其他集成的插件(比如分析工具、其他广告SDK)可能偷偷依赖Legacy Unity Ads:- 逐个禁用非必要插件,重新构建APK后检查
unity-ads_release.kotlin_module是否还存在; - 查看每个插件的文档或更新日志,确认它们有没有依赖Unity Ads的版本,是否需要升级到无Legacy依赖的版本。
- 逐个禁用非必要插件,重新构建APK后检查
处理
unity-ads_release.kotlin_module文件
如果确认这个文件是IronSource适配器带来的,试试这几个办法:- 将IronSource Unity Ads适配器升级到最新版本,查看新版本是否移除了该文件;
- 在
Assets/Plugins/Android目录下创建proguard-user.txt文件,添加规则-dontwarn com.unity3d.ads.**和-removeclasses com.unity3d.ads.**(注意测试构建是否正常,避免破坏IronSource的适配逻辑); - 查阅IronSource官方文档,确认这个文件是不是适配器必需的,如果是,直接向Google Play申诉,附上官方说明作为佐证。
内容的提问来源于stack exchange,提问作者David Tootill
相关产品推荐
相关产品推荐

