我想将Flutter应用程序的第二个版本上传到Google Play的内部测试频道上(我现在仅使用Android版本)。
我可以上传第一个版本1.0.0+1
,但是当尝试上传第二个版本1.0.1+2
时,Google Play控制台拒绝了我的附有错误消息的
You need to use a different version code for your APK because you already have one with version code 1
。
我已经尝试过该顺序:
flutter clean
删除构建和临时文件夹。
将version
上的pubspec.yaml
行从1.0.0+1
修改为1.0.1+2
。
flutter pub get
重建需要的文件。
flutter build appbundle
来构建捆绑包。
由于我已经能够构建和发布该应用程序的第一个版本,因此我认为其余的构建配置都可以。
大多数解决方案旨在清理项目,修改pubspec.yaml
然后重建,但这似乎对我不起作用。
编辑:
试图使用值build.gradle
和flutterVersionName = '1.0.1'
来修改flutterVersionCode = '2'
文件,但我仍然得到一个版本号为1的附件。
答案 0 :(得分:0)
Android应用程序版本代码和版本名称在android/app/build.gradle
中定义。看看这个文件,检查是否包含这些行
...
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
...
defaultConfig {
applicationId "net.myapp"
minSdkVersion 18
targetSdkVersion 28
versionCode flutterVersionCode.toInteger() //<-this line defines versionCode
versionName flutterVersionName
...
如果一切正常,请查看android / local.properties文件。 Flutter构建应用程序时,将更新此文件。它应该具有这些行,这些行是从您的pubspec.yaml数据生成的:
flutter.versionName=1.1.1
flutter.versionCode=9
如果两个文件均正常,请运行flutter build apk
以重新生成local.properties数据。
答案 1 :(得分:0)
找到了一种足够好的解决方法,那就是不使用Flutter sdk,而是使用Android Studio构建该Appbundle。
为了实现这一点,请执行以下操作:
打开Android Studio>打开android项目(Flutter项目中的Get-ChildItem -Directory -Path './srcdir' | ForEach-Object { Copy-Item -Path $_.FullName -Destination './destdir' }
文件夹)
然后按如下所示修改您的应用级别android
:
build.gradle
然后转到 Build> Generate Signed Bundle / APK ... (生成>生成已签名的捆绑包/ APK ... ),就像您在构建本机应用程序一样(有关生成已签名应用程序捆绑包的更多说明,{ {3}}
请注意,此不能不能完全解决问题,因为仍然无法使用Flutter sdk正确生成捆绑包。