为什么我的自定义构建类型会给apk未签名的错误

时间:2018-12-08 12:52:08

标签: android android-gradle android-build-type

我具有以下app.gradle配置:

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    debug {
        debuggable true
        // more configs here
    }

    staging {
        externalNativeBuild {
            cmake {
                cppFlags "-DDEBUG_FLAG"
            }
        }
    }
}

staging构建类型给出错误:

  

您当前选择的变体的APK未签名。

1 个答案:

答案 0 :(得分:1)

显然,只有构建类型releasedebug配置有签名密钥。对于自定义构建类型,您必须通过以下方式手动进行设置:

1)使用debug的签名配置

staging {
    signingConfig signingConfigs.debug
    ...
}

OR

2)从配置了签名密钥的构建类型继承

staging {
    initWith debug
    ...
}

OR

3)generate a new key并创建自己的签名配置

android {
    signingConfigs {
        keyStagingApp {
            keyAlias 'stagingKey'
            keyPassword 'stagingKeyPassword'
            storeFile file('../stagingKey.jks')
            storePassword 'stagingKeyPassword'
        }
    }
    ...
}

然后按以下方式配置阶段:

staging {
    signingConfig signingConfigs.keyStagingApp
    ...
}