如何在Android Studio中签署测试apk?

7

我正在开发一个安卓应用程序,需要使用特定的密钥对每个应用程序进行签名,即使是测试apk也需要进行签名。

我知道如何通过配置build.gradle来对应用程序进行签名。但是测试应用程序(Instrumentation test)似乎没有这样的配置,我有什么遗漏吗?


请查看此处:https://dev59.com/PmQm5IYBdhLWcg3w-jBL - TWL
2个回答

3
在 build.gradle 中尝试这个。
signingConfigs {
    release {
        keyPassword 'your pw'
        storeFile file('your keystore file path')
        storePassword 'your pw'
        keyAlias 'your alias'
    }
}

buildTypes {
    release {
        signingConfig signingConfigs.release
    }

    debug {
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}

3
感谢NateZh和TWL。
是的,答案是在build.gradle中添加流动线:
signingConfigs {
    debug {
        keyPassword 'your pw'
        storeFile file('your keystore file path')
        storePassword 'your pw'
        keyAlias 'your alias'
    }
}

但是,还有更多需要注意的地方:

  1. 当使用 signingConfigs.debug 时,这告诉 gradle 它是调试密钥,不需要再指定 buildTypes.debug.signingConfig

  2. SigingConfigs.debug 在构建测试时也会生效

  3. 在多模块项目中,如果您想测试一个模块,应该在该模块的 build.gradle 中包含 signingConfigs.debug

例如,我的项目看起来像:

app
    -build.gradle
libs
    -src/androidTest/java/com/my/MyTest.java
    -build.gradle

在运行 libs 的 AndroidDebugTest 时,将 signingConfigs.debug 添加到 app 中无效。相反,在 libs 的 build.gradle 中添加 signingConfigs.debug 才能起作用。

希望对其他人有所帮助。


如果您想为调试版本使用不同的signingConfig,仍然可以使用自己的配置指定buildTypes.signingConfig,但是对于测试apk,将使用android.signingConfigs.debug。 - friedger
你救了我的一天!谢谢!我简直不敢相信模块也需要签名才能使仪器测试工作。 - lambda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接