今天在android studio打包安卓进行上架,打包后在上传到小米应用商城中,反馈该次的apk版本跟上一次的一样,导致上传失败,以下是需要修改的那些文件:
Android
第一步:
找到配置文件pubspec.yaml文件,修改version这个字段(这个很重要),修改为 1.0.2 + 2;
1.0.2 是版本名称,后面那个2是版本号(是数值类型),2 要前后一致。
第二步:
找到android/local.properties文件,flutter.versionName,flutter.versionCode这2个字段是根据pubspec.yam中的version更新的
第三步:
找到android/app/build.gradle文件,
这样就ok啦。
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
id "com.google.firebase.crashlytics"
id 'com.google.gms.google-services'
}
dependencies {
implementation platform('com.google.firebase:firebase-bom:33.9.0')
implementation 'com.google.firebase:firebase-analytics'
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
// 正确读取 flutterRoot
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK path not found in local.properties. Please ensure flutter.sdk is set.")
}
// 其他读取版本号(如果需要动态) 这里是需要修改的
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')?.toInteger() ?: 1
// 获取版本号 flutter.versionCode 这个要与local.properties的flutter.versionCode一致
def flutterVersionName = localProperties.getProperty('flutter.versionName') ?: "1.0.0" //获取版本名称
// 获取版本号 flutter.versionName 这个要与local.properties的flutter.versionName一致
// 打印调试信息
println("flutterVersionCode: $flutterVersionCode")
println("flutterVersionName: $flutterVersionName")
android {
namespace "apk的包名"
compileSdkVersion 35
compileOptions {
sourceCompatibility JavaVersion.VERSION_23
targetCompatibility JavaVersion.VERSION_23
}
kotlinOptions {
jvmTarget = '23' // 确保与 Java 版本一致
}
defaultConfig {
applicationId "apk的包名"
minSdkVersion 24
targetSdkVersion 35
versionCode flutterVersionCode // 这里是需要修改的
versionName flutterVersionName // 这里是需要修改的
ndk {
abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'
}
manifestPlaceholders = [
JPUSH_PKGNAME: applicationId,
JPUSH_APPKEY : "applicationId的id",
JPUSH_CHANNEL: "developer-default",
]
}
signingConfigs {
debug {
keyAlias "my-key-..."
keyPassword '密码'
storeFile file('.....s')
storePassword '密码'
}
release {
keyAlias "...."
keyPassword '密码'
storeFile file('.....s')
storePassword '密码'
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
signingConfig signingConfigs.release
minifyEnabled true // 开启混淆
shrinkResources true // 删除未使用的资源
}
}
}
flutter {
source '../..'
}
ios ios/Runner/Info.plist文件
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>