相关疑难解决方法(0)

用gradle签署产品口味

我想把我的项目迁移到gradle.我的一个项目有多种产品风格,每种产品都必须在其发布版本中使用不同的signingConfig进行签名.所以这就是我到目前为止所尝试的:

buildscript {
    ...
}

apply plugin: 'android'

android {
    compileSdkVersion 17
    buildToolsVersion '17'

    signingConfigs {
        flavor1 {
            storeFile file("keystore")
            storePassword "secret"
            keyAlias "aliasForFlavor1"
            keyPassword "secretFlavor1"
        }

        flavor2 {
            storeFile file("keystore")
            storePassword "secret"
            keyAlias "aliasForFlavor2"
            keyPassword "secretFlavor2"
        }
    }

    productFlavors {
        flavor1 {
            signingConfig signingConfigs.flavor1
        }

        flavor1 {
            signingConfig signingConfigs.flavor2
        }
    }
}

dependencies {
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我运行时,signingConfig我得到一个gradle build和以下错误消息:

No such field: signingConfigs for class: com.android.build.gradle.internal.dsl.GroupableProductFlavorFactory
Run Code Online (Sandbox Code Playgroud)

所以我假设productFlavors.*gradle脚本的一部分不是放置代码签名配置的正确位置.

android build code-signing gradle

58
推荐指数
4
解决办法
2万
查看次数

Gradle在Android上使用不同的密钥签名

我的Android应用程序有很多种,我希望除了一个以外的所有应用程序都使用相同的密钥.有一个需要使用不同的密钥.

如何覆盖signingConfig应用程序的1种风格(但在相同的构建类型中,例如"发布")?

  • 我希望默认情况下所有构建都使用主要版本配置.
  • 我只想覆盖1种味道
  • 我希望能够使用单个gradlew assembleRelease命令运行所有发布版本

最后一点非常重要,因为我目前有超过120种不同的口味和成长.为了单独定制每一种风味,需要做很多额外的工作.


相关帖子我试过:

使用单个构建类型的不同键生成多个构建

  • 这需要配置每种口味
  • 它似乎并没有使用个性化的signingConfig反正

用gradle签署产品口味

  • 接受的解决方案不起作用(对我而言)
  • 根据评论,这可能是通过放入buildTypes内部,productFlavors但我不明白如何做到这一点.

在Gradle产品口味上调试签名配置

总的来说,每个解决方案似乎仍然使用默认的发布配置,而不是我的自定义配置.


我的重要部分build.gradle看起来像这样:

signingConfigs {
    releaseConfig {
        storeFile file('key')
        storePassword "pass"
        keyAlias "alias"
        keyPassword "pass"
    }

    custom {
        storeFile file('custom_key')
        storePassword "pass"
        keyAlias "alias"
        keyPassword "pass"
    }
}

productFlavors {
    apple {
        applicationId "demo.apple"
    }
    banana {
        applicationId "demo.banana"
    }

    // …
Run Code Online (Sandbox Code Playgroud)

android code-signing gradle android-gradle-plugin

43
推荐指数
2
解决办法
1万
查看次数