【问题标题】:How to sign both release and debug builds for a single flavor如何为单一风格签署发布和调试版本
【发布时间】:2017-11-06 23:07:28
【问题描述】:

如果我配置了风格,只有发布版本被签名。 如果我配置影响所有风格的构建类型。

我需要使用仅在质量环境中使用的特定密钥签名的调试版本。有什么方法可以在 gradle 上配置它?

更新: 按照 Xav 的建议,我的尝试如下所示。可能是我搞错了。

signingConfigs {
qua {
  ...
}
applicationVariants.all { variant ->
    if(variant.name == "flavorQuaDebug") {
        variant.mergedFlavor.signingConfig = signingConfigs.qua
    }
}

结果:


变体:flavorQuaDebug

配置:调试存储:

/Users/..../.android/debug.keystore

别名:AndroidDebugKey

...

【问题讨论】:

  • 那么,您是在问如何为debugQuality 构建变体规定签名密钥?
  • 是的,我在问如何签署 DebugQuality 构建变体,或两个 Quality 变体
  • 产品风味具有signingConfig 属性(请参阅the DSL docs),因此如果您愿意为debugQualityreleaseQuality 使用相同的签名密钥,那么尤金的回答应该工作。
  • 但事实并非如此。我运行 signingReport 报告,我看到调试版本从默认调试存储中获取签名,而不是我指定的那个。我在问题中告诉了。
  • 嗯...好的。查看this issue 并查看Xav's comment 是否有效。确保您使用的是当前适用于 Gradle (3.0.0) 的 Android 插件。

标签: android android-studio gradle android-gradle-plugin


【解决方案1】:

尝试为版本和特殊产品风味编写一个签名配置,并将其添加到您的产品风味配置中:

android {
  signingConfigs {
    release {
      storeFile file(project.property("MyProject.signing") + ".keystore")
      storePassword "${storePassword}"
      keyAlias "${keyAlias}"
      keyPassword "${keyPassword}"
    }
  }

  buildTypes {
    release {
      signingConfig signingConfigs.release
    }
  }

  productFlavors {
    (your_product_flavor) {
        applicationId "com.example.product"
        signingConfig signingConfigs.release
    }
  }

}

【讨论】:

  • 为什么应该有效?在风味级别指定只会影响发布版本。
  • 我的情况也是如此:它没有对风味的调试变体进行签名...
猜你喜欢
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
相关资源
最近更新 更多