2016-03-10 21 views
39

Używam React native z systemu Android. Jak mogę zaktualizować numer wersji w aplikacji? Ponieważ otrzymuję ten błąd.Jak zaktualizować numer wersji aplikacji natywnej reagowania

jestem generując plik za tym adresem https://facebook.github.io/react-native/docs/signed-apk-android.html

Próbowałem modyfikując plik AndroidManifest.xml, ale po tym, jak budować, że plik zostanie automatycznie zmodyfikowany tył.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.facebook.react" 
    android:versionCode="1" 
    android:versionName="1.0" > 

Tutaj mam zmodyfikowano XML:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.facebook.react" 
    android:versionCode="2" 
    android:versionName="1.1" > 

Po budować plik automatycznie zmienia się z powrotem.

enter image description here

+1

android: versionCode = „2” oznacza, ilekroć chcesz przesłać apk w sklepie Play, które są niezbędne, aby zwiększyć wersja kodu i kod wersji można przechowywać, co chcesz, nie wpływa – Ajinkya

+0

nie praca, już to zrobiłem. Poprawiłem moje pytanie. –

Odpowiedz

65

Powinieneś zmieniając versionCode i versionName w android/app/build.gradle:

android { 

    defaultConfig { 

     versionCode 1 
     versionName "1.0" 

     {...} 
    } 

    {...} 
} 
+0

Dzięki, ja sam widziałem ten plik wiele razy, ale po prostu tę część pominięto. –

+2

Znalazłem rozwiązanie w pliku, który wskazałeś, ale w rzeczywistości było nieco niżej. Istniała sekcja, która zaczynała się od ** warianty aplikacji ** i tam ustawiono ** output.versionCodeOverride **, co było zgodne z nazwą i przesłoniło tę na górze pliku. – AidenMontgomery

+0

Co w AndroidManifest.xml musimy zaktualizować? – Noitidart

35

@Joseph Roque jest poprawna, trzeba zaktualizować numery wersji w android/app/build.gradle.

Oto jak zautomatyzować to i powiązać go z wersją pakietu w package.json i git zobowiązuje się.

W android/app/build.gradle:

/* Near the top */ 

import groovy.json.JsonSlurper 

def getNpmVersion() { 
    def inputFile = new File("../package.json") 
    def packageJson = new JsonSlurper().parseText(inputFile.text) 
    return packageJson["version"] 
} 
/* calculated from git commits to give sequential integers */ 
def getGitVersion() { 
    def process = "git rev-list master --first-parent --count".execute() 
    return process.text.toInteger() 
} 


...... 


def userVer = getNpmVersion() 
def googleVer = getGitVersion() 

android { 
... 
    defaultConfig { 
     ..... 
     versionCode googleVer 
     versionName userVer 

     ndk { 
      abiFilters "armeabi-v7a", "x86" 
     } 
    } 

Uwagi:

  • ważne, że versionCode jest liczbą całkowitą - więc nie możemy użyć semantycznej wersjonowanie tutaj. Jest to wykorzystywane w Sklepie Play powiedzieć, które wersje są po innych - właśnie dlatego, że jest przywiązany do git popełnia w getGitVersion

  • versionName jednak jest widoczna dla użytkowników - Używam semantycznej wersjonowanie tutaj i przechowywania realną wartość w moim package.json. Dzięki https://medium.com/@andr3wjack/versioning-react-native-apps-407469707661

+0

PERFECT odpowiedź. Zrobiłem to i zadziałało jak urok. – Lovato

+2

Andrew Jack omawia bardzo podobną metodę oraz metodę dla iOS w swoim średnim artykule: https://medium.com/@andr3wjack/versioning-react-native-apps-407469707661#.ky7l2lys7. Jest to świetna lektura dla osób, które chcą, aby ich wersje były zgodne z ich kompilacjami. – DBrown

Powiązane problemy