完成后在 android/app/build/outputs/apk/release/文件夹中看到的apk包名称会是: app-release.apk
修改apk名称:
android/app/build.gradle 找到 buildTypes 添加以下代码
buildTypes {
release {
// Caution! In production, you need to generate your own keystore file.
// see https://facebook.github.io/react-native/docs/signed-apk-android.
signingConfig signingConfigs.config
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
applicationVariants.all{ variant ->
def buildName = variant.buildType.name
variant.outputs.all { output ->
def outputFile = output.outputFile
if(outputFile != null && outputFile.name.endsWith('.apk')){
if(buildName == 'debug'){
def fileName = "demo-debug.apk" // 修改apk名称
outputFileName = fileName
} else if (buildName == 'release'){
def fileName = "demo.apk" // 修改apk名称
outputFileName = fileName
}
}
}
}
}
}
添加版本号
1.android/build.gradle 获取版本号
// 解析json
import groovy.json.JsonSlurper
...
// 读取package.json中的version版本号
def getNpmVersion() {
def inputFile = new File("../package.json")
def packageJson = new JsonSlurper().parseText(inputFile.text)
return packageJson["version"]
}
def getNpmVersionArray() { // major [0], minor [1], patch [2]
def (major, minor, patch) = getNpmVersion().tokenize('.')
return [Integer.parseInt(major), Integer.parseInt(minor), Integer.parseInt(patch)] as int[]
}
subprojects {
ext {
def npmVersion = getNpmVersionArray()
versionMajor = npmVersion[0]
versionMinor = npmVersion[1]
versionPatch = npmVersion[2]
}
}
2.android/app/build.gradle 打包中带入版本号
buildTypes {
release {
// Caution! In production, you need to generate your own keystore file.
// see https://facebook.github.io/react-native/docs/signed-apk-android.
signingConfig signingConfigs.config
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
applicationVariants.all{ variant ->
def buildName = variant.buildType.name
variant.outputs.all { output ->
def outputFile = output.outputFile
if(outputFile != null && outputFile.name.endsWith('.apk')){
if(buildName == 'debug'){
def fileName = "demo-debug.apk"
outputFileName = fileName
} else if (buildName == 'release'){
// 打包带入版本号
def fileName = "demo-${versionMajor}.${versionMinor}.${versionPatch}.apk"
outputFileName = fileName
}
}
}
}
}
}