当前位置: 首页 > 知识库问答 >
问题:

使用风味签名配置覆盖调试构建类型签名配置

江智
2023-03-14

我有一个有两种风格的Android应用程序:内部生产,还有两种构建类型:debug发布

我正在尝试根据风格分配签名配置,根据文档,这是可行的。我寻找并找到了其他答案,但似乎都不管用。一切都在编译,但应用程序正在使用我机器本地的调试密钥库进行签名。

这是我的gradle文件:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0.0"
    }

    signingConfigs {
        internal {
            storeFile file("../internal.keystore")
            storePassword "password"
            keyAlias "user"
            keyPassword "password"
        }
        production {
            storeFile file("../production.keystore")
            storePassword "password"
            keyAlias "user"
            keyPassword "password"
        }
    }

    productFlavors {
        internal {
            signingConfig signingConfigs.internal
            applicationId 'com.test.test.internal'
        }
        production {
            signingConfig signingConfigs.production
            applicationId 'com.test.test'
        }
    }

    buildTypes {
        debug {
            applicationIdSuffix ".d"
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    variantFilter { variant ->
        if (variant.buildType.name.equals('debug')
                && variant.getFlavors().get(0).name.equals('production')) {
            variant.setIgnore(true);
        }
    }
}

注意:我也在使用classpath'com.android.tools.build: gradle: 1.1.3'编译

共有1个答案

颜志业
2023-03-14

似乎在默认情况下,Android在调试构建类型(Android调试密钥库)上设置了签名配置,当为构建类型设置了签名配置时,将忽略signingConfig

解决方案是在调试生成类型上将签名配置设置为 null。然后,将为该风格提供的签名配置将改用:

buildTypes {
        debug {
            // Set to null to override default debug keystore and defer to the product flavor.
            signingConfig null
            applicationIdSuffix ".d"
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

 类似资料:
  • 3.4.3 签名配置 要对一个应用签名,要求如下: 一个 keystore 一个 keystore 的密码 一个 key 的别名 一个 key 的密码 存储类型 位置、key 别名、key 密码以及存储类型一起组成了签名配置( SigningConfig 类型) 默认情况下, 已经有了一个 debug 的签名配置,它使用了 debug keystore,该 keystore 有一个已知的密码和默认

  • 签名一个应用程序需要以下文件(查看 Signing Your Application 了解更多 APK 签名的知识): keystore 文件 keystore 密码 key alias key 密码 签名文件的类型 签名文件的路径、类型、key 名及一组密码构成了 SigningConfig。默认情况下,debug 使用 debug keystore,debug keystore 使用默认的 s

  • 对一个应用程序签名需要以下: 一个Keystory 一个keystory密码 一个key的别名 一个key的密码 存储类型 位置,键名,两个密码,还有存储类型一起形成了签名配置。 默认情况下,debug被配置成使用一个debug keystory。 debug keystory使用了默认的密码和默认key及默认的key密码。 debug keystory的位置在$HOME/.android/deb

  • 前面我们讲了 Gradle 在 Android 项目中的配置,我们提到有一个闭包 signingConfigs 是配置 Android 应用签名信息的。那么今天我们就来讲讲如何通过 AndroidStudio 对 APK 进行签名。 1. 新建 keyStore 文件 我们下面一步步带大家,用 AndroidStudio 来配置签名。 首先顶部菜单栏找到 Build 点击他我们会看到 Genera

  • 我已经查看了两个SO线程,并且没有一个线程为此错误消息选择了答案,因为没有答案候选者确切地解决了它。 我已经成功地将两个上传到Google Play商店进行beta测试,并且没有遇到任何问题。 我现在唯一的问题是:我有两个构建变体的版本。我是否需要出于任何原因版本? 如果没有,很好。结案了。 不过,如果我确实需要发布版本,我需要帮助。 * 编辑 * 还行。我需要发布版本。下面第一个答案中的链接说:

  • 当我试图构建我的手机游戏时,我得到了这样一条信息: