由于库不在项目中,应用程序已从 PlayStore 中删除

Alb*_*o M 6 android gradle

我收到一封来自 Play 商店的电子邮件,内容如下:

我们发现您的应用程序正在使用腾讯 TBS SDK,其中包含从 Google Play 以外的来源下载可执行代码(例如 dex、JAR、.so 文件)的代码。

我们从来没有打算使用这个库,事实上它不会出现在依赖关系树(./gradlew app:dependencies)中,但是在我们打包 APK 后,以下文件中出现了一些引用:

app/build/intermediates/transforms/dexMerger/xxx/release/0/classes2.dex
app/build/intermediates/transforms/proguard/xxx/release/0.jar
app/build/outputs/mapping/xxx/release/seeds.txt
app/build/outputs/mapping/xxx/release/mapping.txt
app/build/outputs/mapping/xxx/release/usage.txt
app/build/outputs/mapping/xxx/release/resources.txt
Run Code Online (Sandbox Code Playgroud)

我如何找出哪个依赖项正在使用这个库?我试图在 gradle 中排除它,但没有任何反应。

Alb*_*o M 3

不幸的是,我没有找到一种干净的方法来查找 Play 商店支持提到的库。每次编译项目时,我都会在 dex 文件中找到方法签名。所以我采用了经验方法:

  • 创建一个包含所有 gradle 依赖项 + 模块的空项目
  • 编译项目,同时注释掉一些依赖项
  • 当dex文件没有引用我正在寻找的库时,我知道我找到了罪魁祸首

几点注意事项:

  • Play 商店一定是在过去几周内添加了此检查,因为我过去两年一直在使用这个库。
  • 找到的依赖项的来源在其签名中没有提及该库

  • 这是我几年前发现的一个富文本编辑器:https://github.com/mr5/icarus-android。显然它引用了 com.tencent.*,它已被 Play 商店禁止,因为它包含在商店外加载 jar 的可能性。 (3认同)