android - 具有多种风格的android签名应用程序的问题
问题描述
我尝试制作自动应用程序标志。我已经通过命令生成了密钥:
keytool -genkey -v -keystore app/app_keystore.keystore -alias demo -keyalg RSA -keysize 2048 -validity 10000
keytool -genkey -v -keystore app/app_keystore.keystore -alias release -keyalg RSA -keysize 2048 -validity 10000
我还为我的 Android 应用准备了 build.gradle:
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
compileSdkVersion 30
buildToolsVersion "30.0.0"
signingConfigs {
demo {
try {
keyAlias keystoreProperties['demoAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
} catch (ignored) {
throw new InvalidUserDataException("Bad credentials")
}
}
release {
try {
keyAlias keystoreProperties['releaseAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
} catch (ignored) {
throw new InvalidUserDataException("Bad credentials")
}
}
}
defaultConfig {
applicationId "com.company.app"
minSdkVersion 26
targetSdkVersion 30
versionCode mVersionCode
versionName mVersionName
setProperty("archivesBaseName", "app_v$versionName")
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
flavorDimensions "server"
productFlavors {
demo {
dimension "server"
versionName "${mVersionName}.demo"
signingConfig signingConfigs.demo
}
release {
dimension "server"
versionName "${mVersionName}.release"
signingConfig signingConfigs.release
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
这些配置应该返回带有证书的应用程序,但是当我通过命令检查应用程序证书时:
find . -name "*.apk" -exec echo "APK: {}" \; -exec sh -c 'keytool -printcert -jarfile "{}"' \;
我有
Not a signed jar file
。我通过命令构建应用程序
./gradlew assembleDemoRelease assembleReleaseRelease
看起来应用程序没有证书。当我在属性中更改密码时,我遇到了一个错误——因此对生成证书进行了评估。请帮我创建签名的应用程序。谢谢你。
块引用
解决方案
推荐阅读
- scala - 加入序列中的两个数组列 - scala
- python - 是否有列表框的替代小部件?
- python - 使用 utf-8 在 python 中打印乌尔都语
- angular - 如何嵌入没有 CORS 问题的 Angular 应用程序
- django - 为包含对象的 django 模型提供服务
- reactjs - 我如何使用 Promise 对象
- python - 把我的for循环变成python中的一个函数
- c# - Viewbag 没有将回发的值绑定到控制器?
- spring-boot - 如何在 Spring Boot 应用程序中为嵌入式 tomcat 启用 jmx
- python - 刷新的对象是从数据库事务缓冲区返回还是从 SQLAlchemy 中的内存表示返回?