【问题标题】:CERT.RSA is missing in debug build APK file after upgrade AndroidStuio and Gradle升级 AndroidStuio 和 Gradle 后调试构建 APK 文件中缺少 CERT.RSA
【发布时间】:2019-12-26 07:26:30
【问题描述】:

AndroidStudio升级到3.5,Gradle升级到3.5.0(gradle-5.4.1)后,直接从AndroidStudio启动应用时,安装的APK在META-INF文件夹中不包含签名文件CERT.RSA。我们的代码将检查此文件以防破解。但是,在 release build APK 中,签名很好。

相同的代码在以前版本的 Android Studio 和 gradle 插件上运行良好。新的升级似乎通过消除一些他们认为在调试构建中不必要的组件/过程来加速调试过程。

有没有人知道如何告诉 AndroidStudio/Gradle 像以前的版本一样正确签署 APK?

非常感谢。

【问题讨论】:

    标签: android android-studio gradle apk


    【解决方案1】:

    CERT.RSA 仅用于 jar 签名(也称为 v1 签名方案)。使用 V2 签名方案时,可以在不存在此文件的情况下对 APK 进行签名。如果您的 minSdkVersion 至少为 24,这是一个完全可以接受的 APK,因此请考虑调整“反破解”工具。

    在短期内,您还可以通过在您的 signingConfig 块中设置 v1SigningEnabled true 来继续使用 v1 签名方案进行签名:https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.SigningConfig.html#com.android.build.gradle.internal.dsl.SigningConfig:v1SigningEnabled

    【讨论】:

    • 感谢您的评论。我的 minSdk 是 17。但我想用于加速调试过程的新 AndroidStuio 优化会尝试检测我的测试设备,并且在找到 AndroidP 设备时会忽略 V1 签名,对吧?因为我试过build->Build apks,debug APK会包含CERT.RSA,但是直接启动后,debug build文件夹中的APK不包含CERT.RSA文件。
    • 添加“v1SigningEnabled true”不能强制Android studio在直接启动应用时应用v1签名。还有什么遗漏吗?
    • 在构建发布版本时文件是否也丢失了?
    • 该文件仅在直接从 AndroidStudio 启动时丢失(点击运行)。如果我选择构建 APK,则 debug(build->build apk bundle/apk->build apk) 和 release(generate signed apk) build 都将包含 CERT.RSA 文件。
    • 是的,这是一种优化,可以更快地部署到设备上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    相关资源
    最近更新 更多