【发布时间】:2021-09-04 12:52:02
【问题描述】:
我正在将新的应用程序包上传到播放控制台,上传后显示Version code 1 has already been used. Try another version code.
我已将 pubspec.yaml 中的版本号从版本号:1.0.0+1 更改为 2.0.0+1,即使它说的是同样的错误
【问题讨论】:
标签: android flutter google-play google-play-console
我正在将新的应用程序包上传到播放控制台,上传后显示Version code 1 has already been used. Try another version code.
我已将 pubspec.yaml 中的版本号从版本号:1.0.0+1 更改为 2.0.0+1,即使它说的是同样的错误
【问题讨论】:
标签: android flutter google-play google-play-console
你必须增加+1,它应该是+2来表示内部版本号
【讨论】:
1.0.0+1 和2.0.0+1 显然不是同一个版本...
1.0.0+1 更改为 1.0.0+2 或 2.0.0+1 应该可以避免该问题。还是我们说不是这样?如果增加主版本号,是否还需要增加修订号?也就是说,1.0.0+1 到 2.0.0+1 不会解决这个问题,但是 1.0.0+1 到 2.0.0+2 会吗?
1.0.0+1 到2.0.0+2。我尝试了前者,它仍然不允许我通过提交。
版本号和build-number相同
如果版本号是x.x.x,版本号是y
在创建 appbundle 时
在您的终端上运行flutter build appbundle --build-name=x.x.x --build-number=y
【讨论】:
--build-version 似乎已被删除。请仅使用--build-number。无论如何,该版本取自pubspec.yaml。
--build-name 和 --build-number。
你有两种方法可以做到这一点,如果你已经发布了你的包,那么你必须像 Len_X 的回答那样更新你的版本代码,
如果您仍在开发和推送应用程序包以进行测试,然后您将其删除,则此包将保存为具有该版本代码的草稿,因此它表示您不能使用相同的版本,因为它已经看到另一个具有相同版本名称的版本。您可以通过转到发布部分来解决此问题,转到应用程序包资源管理器,在右上角,您应该会看到您的应用程序版本的下拉按钮,单击它,底部表格将显示包含您之前上传的所有应用程序包。删除具有冲突捆绑版本的那个,您就可以开始了。希望这是你的问题
【讨论】:
您可以通过转到“app_name/android/app/build.gradle”文件手动执行此操作。在 defaultConfig 部分将版本代码更改为更高的数字
defaultConfig {
applicationId "com.my.app"
minSdkVersion 23
targetSdkVersion 30
versionCode 1 // Change to a higher number
versionName "1.0.1" // Change to a higher number
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
}
}
}
【讨论】:
如果您在google play控制台中遇到上述错误,请更改pubspec.yaml中的version: 。
【讨论】:
% flutter build appbundle --release
如果您在使用 Expo/React Native 项目的 Google Play 商店中遇到 app bundle 审批问题,这里有一些提示:
AndroidManifest.xml 文件的版本控制 (/android/app/src/)。这应该在构建期间从 Expo 的 app.json 文件 (/app.json) 更新,per their instructions。app.json 示例部分,我已将我的应用程序提升到 v2.0 - 请注意 Android 设置对象内部的 versionCode 和设置对象根目录中的 version 都需要调整:
{
"name": "app-name",
"displayName": "App Name",
"expo": {
"android": {
"package": "app.here",
"permissions": [],
"versionCode": 2
}
},
"version": "2.0.0"
}
AndroidManifest.xml 文件并在那里进行修改 (/android/app/src/):AndroidManifest.xml 的示例(注意您的修改发生在<manifest> 标签上,使用android:versionCode 和android:versionName:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.aganashapp"
android:versionCode="2"
android:versionName="2.0"
>
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:allowBackup="false"
android:theme="@style/AppTheme"
>
<meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://exp.host/@username/app-name" />
<meta-data android:name="expo.modules.updates.EXPO_SDK_VERSION" android:value="42.0.0" />
<meta-data android:name="expo.modules.updates.EXPO_RELEASE_CHANNEL" android:value="default" />
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize"
android:theme="@style/Theme.App.SplashScreen"
>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
</application>
</manifest>
versionCode 和 versionName 是两个不同的东西。 Android 似乎无法识别semver standards。 versionCode 以整数形式递增(即,如果您从 semver v1.0.0 变为 v1.1.0,即 versionCode 1 变为 2。【讨论】:
转到Pubspec.yaml 文件并找到version 键并更改+ 号后面的值。
示例:
在您的 pubspec.yaml 文件中,您的版本是这样的 version: 1.0.0+1 然后将其更改为 version: 1.0.0+2
【讨论】:
如果您删除 apk,则上传相同版本的 apk,因此您会收到错误 版本代码 1 已被使用。尝试其他版本代码 在这种情况下,您应该从 App bundle explorer 中删除版本,然后上传相同版本的 apk。
【讨论】: