Android studio (Gradle) 未创建已签名的 apk
Android studio (Gradle) doesn't create signed apk
为了模拟 Espresso 的服务器响应,我决定创建一个新的构建类型。我尝试通过项目设置来完成它,但出现了一些错误,所以我决定手动添加它。
我在 build.gradle
文件中有以下配置 - 在我项目的根目录中:
androidConfiguration = {
signingConfigs {
debug {
storeFile file("$rootProject.projectDir/debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
release {
storeFile file("$rootProject.projectDir/androd-prod.keystore")
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias System.getenv("KEY_ALIAS")
keyPassword System.getenv("KEY_PASSWORD")
}
}
}
我在主模块的 build.gradle
文件中添加了新的 mock
构建类型。
buildTypes {
mock {
// Setup default urls
buildConfigField "String", "MY_URL_BASE", "\"\""
// Enabling multidex support.
multiDexEnabled true
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
applicationIdSuffix '.mock'
versionNameSuffix '-mock'
debuggable true
}
debug {...}
release {
signingConfig signingConfigs.release
...
}
applicationVariants.all { variant ->
variant.outputs.each { v ->
def f = v.outputFile
def sha = 'git rev-parse --short HEAD'.execute().text.trim()
def fname = f.name.replace(".apk", "-${defaultConfig.versionName}-${defaultConfig.versionCode}-${sha}.apk")
v.outputFile = new File(f.parent, fname)
}
}
}
I 运行 ./gradlew clean aGM
命令和应用程序编译成功。但是,我的构建配置上有 x
标志。那么,知道我的错误在哪里吗?
将此行添加到您的模拟 buildType 以使用默认调试签名配置:
buildTypes {
mock {
signingConfig signingConfigs.debug
}
}
这还将启用 gradle 任务 installMock
,如果没有 signingConfig,该任务将不可用。 assembleMock
只是在没有它的情况下创建一个未签名的版本。
为了模拟 Espresso 的服务器响应,我决定创建一个新的构建类型。我尝试通过项目设置来完成它,但出现了一些错误,所以我决定手动添加它。
我在 build.gradle
文件中有以下配置 - 在我项目的根目录中:
androidConfiguration = {
signingConfigs {
debug {
storeFile file("$rootProject.projectDir/debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
release {
storeFile file("$rootProject.projectDir/androd-prod.keystore")
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias System.getenv("KEY_ALIAS")
keyPassword System.getenv("KEY_PASSWORD")
}
}
}
我在主模块的 build.gradle
文件中添加了新的 mock
构建类型。
buildTypes {
mock {
// Setup default urls
buildConfigField "String", "MY_URL_BASE", "\"\""
// Enabling multidex support.
multiDexEnabled true
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
applicationIdSuffix '.mock'
versionNameSuffix '-mock'
debuggable true
}
debug {...}
release {
signingConfig signingConfigs.release
...
}
applicationVariants.all { variant ->
variant.outputs.each { v ->
def f = v.outputFile
def sha = 'git rev-parse --short HEAD'.execute().text.trim()
def fname = f.name.replace(".apk", "-${defaultConfig.versionName}-${defaultConfig.versionCode}-${sha}.apk")
v.outputFile = new File(f.parent, fname)
}
}
}
I 运行 ./gradlew clean aGM
命令和应用程序编译成功。但是,我的构建配置上有 x
标志。那么,知道我的错误在哪里吗?
将此行添加到您的模拟 buildType 以使用默认调试签名配置:
buildTypes {
mock {
signingConfig signingConfigs.debug
}
}
这还将启用 gradle 任务 installMock
,如果没有 signingConfig,该任务将不可用。 assembleMock
只是在没有它的情况下创建一个未签名的版本。