Я пытаюсь создать подписанный APK для своего приложения, и он работает, если я использую только подпись V1. Когда я использую подпись V2, а затем проверяю apk с помощью keytool, вывод:
keytool -list -printcert -jarfile app-release.apk
Not a signed jar file
Вот build.gradle:
def getProps(path) {
Properties props = new Properties()
props.load(project.rootProject.file(path).newDataInputStream())
return props
}
android {
...
signingConfigs {
debug {
try {
Properties props = getProps('./local.properties')
storeFile file(props.getProperty('DEBUG_STORE_FILE', ''))
keyAlias props.getProperty('DEBUG_KEY_ALIAS', '')
keyPassword props.getProperty('DEBUG_STORE_PASSWORD', '')
storePassword props.getProperty('DEBUG_STORE_PASSWORD', '')
v1SigningEnabled true
v2SigningEnabled false // enabling this generates unsigned apk
}
catch (ex) {
throw new InvalidUserDataException("You should define RELEASE_STORE_FILE, RELEASE_KEY_ALIAS, RELEASE_STORE_PASSWORD in local.properties.")
}
}
release {
try {
Properties props = getProps('./local.properties')
storeFile file(props.getProperty('RELEASE_STORE_FILE', ''))
keyAlias props.getProperty('RELEASE_KEY_ALIAS', '')
keyPassword props.getProperty('RELEASE_STORE_PASSWORD', '')
storePassword props.getProperty('RELEASE_STORE_PASSWORD', '')
v1SigningEnabled true
v2SigningEnabled false // enabling this generates unsigned apk
}
catch (ex) {
throw new InvalidUserDataException("You should define RELEASE_STORE_FILE, RELEASE_KEY_ALIAS, RELEASE_STORE_PASSWORD in local.properties.")
}
}
}
defaultConfig {
...
// Only productionRelease flavour uses signingConfigs.release;
// other flavours(i.e. productionDebug, developmentDebug, developmentRelease)
// use signingConfigs.debug
// https://stackoverflow.com/questions/30898611/gradle-signing-flavors-with-different-keys-on-android
signingConfig signingConfigs.release
}
buildTypes {
release {
...
}
debug {
...
signingConfig signingConfigs.debug
}
}
// Dimensions: environment can be one of [development, production]
flavorDimensions "environment"
productFlavors {
development {
...
signingConfig signingConfigs.debug
...
}
production {
dimension "environment"
}
}
...
}
Я также создал новый проект Android с нуля, и у него такая же проблема.
Обратите внимание, что у меня есть еще один проект Android, который может создать подписанный APK, выбрав как V1, так и V2.
Почему добавление подписи V2 приводит к созданию неподписанного APK?