从Android Gradle内部版本

时间:2015-06-03 19:57:05

标签: java android android-gradle digital-signature keystore

我需要一种在构建过程中从密钥库中提取签名的方法。我们已经用Java这样做了:

PackageInfo packageInfo = Application.getContext().getPackageManager().getPackageInfo(Application.getContext().getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : packageInfo.signatures) {
    byte[] ba = signature.toByteArray());
    // do actions with signatures here ....
}

但我们不希望再用Java完成。相反,我们需要在Gradle构建范围内运行相同的事物,并且将操作的结果写入BuildConfig常量或某些生成的类。

所以目前我的计划如下:

  1. 从密钥库中获取签名(第一个);
  2. 运行JavaExec以使用签名和返回结果进行操作。操作是 - 获取此签名的SHA并应用Base64 编码到结果。可能出现的另一个可能的问题是 并非所有任务都在android gradle插件中可用。所以它可能 有可能我将无法运行JavaExec;
  3. 将结果写入BuildConfig常量之一,其技巧如下所示[“buildConfigField”string“,”signatureSHA“, 结果“]。再次,不确定它会起作用,因为我没有 想法是否在构建中的任何其他操作之前或之后生成BuildConfig类。
  4. 如何在步骤1中从密钥库中检索签名?

0 个答案:

没有答案