2016-03-10 7 views
39

Ich verwende React native mit Android. Wie kann ich die Versionsnummer in der App aktualisieren? Wie bekomme ich diesen Fehler?So aktualisieren Sie die Versionsnummer der nativen App

I Datei nach dieser URL https://facebook.github.io/react-native/docs/signed-apk-android.html

ich versucht bin zu erzeugen habe AndroidManifest.xml-Datei ändern, aber nachdem ich es bauen, die Datei wieder automatisch geändert wird.

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

Hier modifizierte ich die XML:

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

Nach bauen automatisch Datei wechselt zurück.

enter image description here

+1

android: version = „2“ bedeutet, wenn Sie apk auf Play Store hochladen möchten, die notwendig ist, dass Sie Versionscode & Versionscode zu erhöhen, was Sie behalten wollen nicht – Ajinkya

+0

auswirkt nicht Arbeit, ich habe es schon getan. Ich habe meine Frage korrigiert. –

Antwort

65

Sie sollten Ihre versionCode und versionName in android/app/build.gradle Wechsel werden:

android { 

    defaultConfig { 

     versionCode 1 
     versionName "1.0" 

     {...} 
    } 

    {...} 
} 
+0

Danke, ich selbst habe diese Datei mehrmals gesehen, aber diesen Teil einfach verpasst. –

+2

Ich fand die Lösung in der Datei, auf die Sie hingewiesen haben, aber es war tatsächlich etwas weiter unten. Es gab einen Abschnitt, der mit ** applicationVariants ** gestartet wurde und dort wurde der ** output.versionCodeOverride ** gesetzt, der wie der Name vorgeschlagen hatte und den oberen am Anfang der Datei überging. – AidenMontgomery

+0

Was ist in AndroidManifest.xml müssen wir das aktualisieren? – Noitidart

35

@ Joseph Roque korrekt ist, müssen Sie die Versionsnummern in android/app/build.gradle aktualisieren.

Hier ist, wie ich dies automatisiere und es in der Version des Pakets in package.json und Git-Commits binden.

In 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" 
     } 
    } 

Hinweise:

  • Es ist wichtig, dass versionCode eine ganze Zahl ist - so können wir nicht semantische hier Versionierung verwenden. Dies wird im Play Store verwendet, um mitzuteilen, welche Versionen nach anderen kommen - das ist, warum es zu git gebunden ist verpflichtet in getGitVersion

  • versionName jedoch wird Benutzern gezeigt - ich verwende hier semantische Versionierung und den realen Wert Speicherung in meinem package.json. Dank https://medium.com/@andr3wjack/versioning-react-native-apps-407469707661

+0

PERFEKTE Antwort. Hat das gemacht und funktioniert wie ein Zauber. – Lovato

+2

Andrew Jack diskutiert eine sehr ähnliche Methode und eine Methode für iOS in seinem Medium Artikel: https://medium.com/@andr3wjack/versioning-react-native-apps-407469707661#.ky7l2lys7. Es ist eine großartige Lektüre für Leute, die ihre Versionen behalten möchten, die mit ihren Aufbauten übereinstimmen. – DBrown

Verwandte Themen