Przesyłanie nie powiodło się. Musisz użyć innego kodu wersji dla swojego pliku APK, ponieważ masz już taki z kodem wersji 2

129

Zgodnie z tą odpowiedzią Jak rozwiązać problem „Kod wersji pliku APK musi być wyższy niż 2”. w Konsoli programisty Google Play? Właśnie zmieniłem kod wersji z 2 na 3 i nie udało mi się przesłać kompilacji.

To jest mój stary manifest przed przesłaniem apk

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="mypackage name"
    android:installLocation="auto"
    android:versionCode="28"
    android:versionName="1.0028" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
        .....

oto kod nowej wersji, który muszę przesłać na konsolę programisty Androida. Zobacz mój menifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="mypackage name"
    android:installLocation="auto"
    android:versionCode="2"
    android:versionName="2.0001" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
        ......

Nie wiem, w czym problem. Jakaś pomoc? wprowadź opis obrazu tutaj

Ahmad Arslan
źródło

Odpowiedzi:

125
android:versionCode="28"

Twój poprzedni versionCodemiał 28. Powinieneś zwiększyć go o 1 do 29.

android:versionCode="29"

Przypuszczalnie poprzednie wersje aplikacji to od 1 do 28. Wydanie z wersją versionCode 3 powoduje konflikt z poprzednią wersją aplikacji, która została już wydana z tym kodemwersji.

Martin Konecny
źródło
Ta liczba jest używana tylko do określenia, czy jedna wersja jest nowsza od innej, przy czym wyższe liczby oznaczają nowsze wersje. To nie jest numer wersji pokazywany użytkownikom
Mohamed AbdelraZek
Dla każdego, kto mógłby być zdezorientowany, pamiętaj, że to nie jest wersja
SDK,
Czy możesz mi powiedzieć dokładnie, jaka jest ścieżka do tego pliku?
João Pimentel Ferreira
214

Dla ludzi, którzy korzystają z systemu Android Studio problem może być rozwiązany poprzez edycję versionCodei versionNamew build.gradlezamiast AndroidManifest.xml.

na przykład

defaultConfig {
    applicationId "com.my.packageId"
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 2      <-- change this
    versionName "2.0"  <-- change this
}
FFinn
źródło
3
Czy potrafisz czytać AndroidManifest.xml z build.gradle? Nie ma sensu mieć wartości dwa razy.
MonoThreaded
To jest odpowiedź. To, co się tutaj stało, to fakt, że gradle jest tym, który ładuje projekt, więc nadpisuje wersje
jasmo2
1
upewnij się, że versionCode jest liczbą całkowitą i po zmianie dokonujesz synchronizacji.
sk md
29

W moim przypadku to prosta sprawa. Wcześniej przesłałem aplikację do konsoli, więc po rozwiązaniu niektórych problemów próbuję ją przesłać ponownie. Wszystko, co robię, to usunięcie poprzedniego pliku APK z Biblioteki artefaktów

Thecarisma
źródło
11
Przesłałem wersję przez Konsolę Google Play, a następnie usunąłem ją przed opublikowaniem, przesłałem ponownie i otrzymałem błąd OP. Myślałem, że go usunąłem, ale nadal był obecny w Bibliotece Artefaktów. Usuń stamtąd, a potem mogę przesłać ...
Scuzzlebutt
22

jeśli używasz Ionic Framework , przejdź do pliku config.xml i zmień atrybut „version” w tagu „widget” . zwiększyć numer wersji. następnie odbuduj, podpisz i prześlij swój apk do sklepu Play. to rozwiązało mój problem.

user2407334
źródło
7
Dzięki. Dodam tylko kilka szczegółów. Zmieniłem atrybut wersji w tagu widget z 0.0.1 do 0.0.2 . Po wykonaniu cordova build --release androidpolecenia ta zmiana zmodyfikowała AndroidManifest.xml w dwóch atrybutach, od android: versionCode = "1" do android: versionCode = "2" i od android: versionName = "0.0.1" ** do ** android: versionName = „0.0.2” w tagu manifestu.
remat_br
16

Ten błąd pojawia się, gdy próbujesz przesłać plik APK, który ma takie same wartości wersji, jak ta, która jest już w sklepie playstore.

Po prostu zmień następujące elementy w pliku build.gradle => versionCode i versionName

defaultConfig {
    applicationId "com.my.packageId"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 2      <-- increment this by 1
    versionName "2.0"  <-- this is the version that shows up in playstore, 
                           remember that the versioning scheme goes as follows.
                           first digit = major breaking changes version
                           second digit = minor changes version
                           third digit = minor patches and bug fixes.
                           e.g versionName "2.0.1"
}
Kingston Fortune
źródło
11

Czasami PlayStore napotyka błąd, gdy przesyłasz plik APK podczas tworzenia wersji, i utkniesz, ponieważ nie możesz ponownie przesłać tego samego pliku APK dla bieżącej wersji roboczej. Pojawia się błąd „Przesyłanie nie powiodło się ...”

Rozwiązaniem jest przejście do menu biblioteki artefaktów w sekcji Zarządzanie wersjami i usunięcie projektu artefaktu. Gdy to zrobisz, będziesz mógł ponownie przesłać plik APK i dokończyć wydanie.

Mam nadzieję, że pomoże to innym ...

Ben

bma350
źródło
7

W Android Studio 1.1.0, zmiany versionCodew build.gradleza Module: appi nie koniecznie zmienić versionName:

android {
...
    defaultConfig {
...
        versionCode 3
        versionName "1.0"
    }
...
}
DSlomer64
źródło
4

Tak jak powiedziała odpowiedź Martina Konecnego , musisz zmienić kod wersji na wyższy.

Twój kod poprzedniej wersji to 28. należy go zmienić na 29.

Zgodnie z dokumentem na stronie programisty Androida. kod wersji to

Wartość całkowita reprezentująca wersję kodu aplikacji względem innych wersji.

Powinien więc być powiązany (przez pokrewny, mam na myśli wyższy) z poprzednią wersjąKod, jak odnotowano w dokumencie:

powinieneś upewnić się, że każde kolejne wydanie aplikacji ma większą wartość.

Jak wspomniano ponownie w dokumencie

wartość android: versionCode niekoniecznie ma duże podobieństwo do wersji wydania aplikacji, która jest widoczna dla użytkownika (patrz android: versionName, poniżej)

Więc nawet jeśli jest to wydanie 2.0001Twojej aplikacji, nie musi to oznaczać, że kod_wersji to 2.

Mam nadzieję że to pomoże :)

Keale
źródło
4

Jeśli używasz Android Studio, możesz:

Buduj -> Edytuj smaki

I stamtąd zmień kod wersji i nazwę.

wprowadź opis obrazu tutaj

YYY
źródło
4

Jeśli używasz tworzenia samodzielnych aplikacji z Expo, błąd versionCode może się pojawić ze względu na fakt, że standardowa app.jsonkonfiguracja ma tylko odniesienie do versionwłaściwości.

Udało mi się dodać następującą versionCodewłaściwość android:

Przykładowy plik App.json

{
  "expo": {
    "sdkVersion": "29.0.0",
    "name": "App Name",
    "version": "1.1.0",
    "slug": "app-name",
    "icon": "src/images/app-icon.png",
    "privacy": "public",
    "android": {
      "package": "com.madhues.app",
      "permissions": [],
      "versionCode": 2 // Notice the versionCode added under android.
    }
  }
}

Szczegółowa dokumentacja: https://docs.expo.io/versions/v32.0.0/workflow/configuration/#versioncode

Sunny R Gupta
źródło
4

(Dla aplikacji Flutter) Musisz użyć innego kodu wersji dla swojego pliku APK lub pakietu aplikacji na Androida, ponieważ masz już taki z kodem wersji 1.

Nie panikuj ...

Musisz zmienić w Flutter Version z pliku pubspec.yaml i Version Cod e z pliku local.properties .

Najpierw przejdź do pliku pubspec.yaml . Pierwsze trzy linie powinny zawierać nazwę, opis i wersję aplikacji.

Przed wydaniem -

Dla Ciebie wersja może wyglądać mniej więcej tak:

wersja: 1.0.0 + 1

Dlatego przed utworzeniem apk do wydania (aby zaktualizować wychodzącą aplikację w Konsoli Google Play, tj. W celu nowej aktualizacji), upewnij się, że zwiększasz tę liczbę o 1. (Powinieneś ją zwiększyć, ponieważ nie ma wymagań co do kroku inkrementacji).

Rozwiązanie

Po prostu zmień tę wersję na (zgodnie z potrzebami)

wersja: 1.0.1 + 2

Po drugie, jeśli

flutter.versionCode w Project -> android -> local.properties to

flutter.versionCode = 1, a następnie zmień go lub zaktualizuj do flutter.versionCode = 2 lub dowolnej innej większej liczby niż poprzedni kod.

I wreszcie wypuść aplikację zgodnie z dokumentacją.

Vaibhav_Welcome_You
źródło
Tak więc w przypadku kodu wersji po wersjonowaniu semantycznym , gdzie to jest major.minor.patch+build, Play patrzy tylko na ostatni buildskładnik? (To nie jest błąd?)
AWhitford
3

jeśli używasz aplikacji phonegap / cordova, po prostu wyedytuj plik config.xml i dodaj kod android-versionCode i wersję w widżecie.

<widget id = "com.xxx.yyy" version = "1.0.1" xmlns = "http://www.w3.org/ns/widgets" xmlns: cdv = "http://cordova.apache.org/ ns / 1.0 "android-versionCode =" 100001 "version =" 1.0.1 ">

Sanjoy Kanrar
źródło
1

Jeśli pojawi się ten błąd dla pliku APK aplikacji Flutter na Androida, w pliku app / build.gradle w defaultConfig {}

skomentować

versionCode flutterVersionCode.toInteger()
versionName flutterVersionName

i dodaj

versionCode 2
versionName "2"

lub „kod poprzedniej wersji” + 1.

Muhammed Ali BINICI
źródło
1

Otrzymałem ten sam błąd podczas przesyłania aplikacji flutter do playstore, po prostu zmień kod wersji w pubspec.yaml działał dla mnie. można spróbować zmienić kod wersji, np. z +1 na +2, a następnie przebudować apk za pomocą

flutter build apk --split-per-abi 

i prześlij wszystkie aplikacje do sklepu playstore dla swoich użytkowników. Następnym razem, gdy będziesz chciał wypchnąć aktualizację, zaktualizuj kod wersji do +3 i tak dalej.

Uwaga: że kod wersji i nazwa wersji są różne, widać to w pliku android / local.properties . np. wersja: 1.0.0 + 2

wersja to 1.0.0, a kod wersji to +2

maheshmnj
źródło
0

Wygląda na to, że przesłałeś już plik APK wersji 3 do sklepu Google Play. I znowu przesyłasz apk z tą samą wersją. Więc ten problem wystąpił.

Aby rozwiązać problem, musisz zmienić nazwę wersji i kod wersji (zwiększ o 1) i raz uruchomić aplikację, a po wyeksportowaniu przesłać ją do Google Play.

Piyush
źródło
0

Ciągle otrzymywałem ten sam błąd, w

końcu załadowałem plik apk ręcznie za pomocą Konsoli Google Play, jak pokazano na zrzucie ekranu.

W wersji aplikacji wybierasz przycisk „UTWÓRZ WYDANIE” pokazany na zrzucie ekranu i przesyłasz plik apk z/android/app/bin/build/outputs/apk/release/app-release.apk

wprowadź opis obrazu tutaj

Akshay Vijay Jain
źródło
0

W moim przypadku miałem coś takiego w moim AndroidManifest,

      javaCompileOptions {
        annotationProcessorOptions {
            arguments = [
                    'androidManifestFile': 'app\\build\\intermediates\\merged_manifests\\debug\\processDebugManifest\\merged\\AndroidManifest.xml'
            ]
        }
   }

tutaj lokalizacja „androidManifestFile” jest nieprawidłowa, zmieniono ją na

"androidManifestFile": "$projectDir/src/main/AndroidManifest.xml".toString()

wszystko działało

MJahongir
źródło