Play Store verschiedene App Versionen?

  • 5 Antworten
  • Letztes Antwortdatum
T

Timboo89

Neues Mitglied
1
Moin,

weiß jemand, ob man im Play Store verschiedene App Versionen hinterlegen kann? Die App die ich gerade schreibe soll nämlich in 2 unterschiedlichen Versionen zur Verfügung stehen. Eine für ältere und eine für neuere Smartphones. Habe leider aber bisher nichts derartiges gelesen, nur dass immer die aktuellste Version der App heruntergeladen wird und damit den älteren Phones nicht angezeigt wird.

Vielen Dank!
 
Was hat das für einen Sinn?
Benutze minSdk, targetSdk und maxSdk...

Ansonsten kannst du das natürlich machen. Hauptsache das package heißt anders..Verhält sich dann wie zwei verschieden Apps und die user sind verwirrt...

Gruß
 
Ja, generell geht das, auch mit gleichem Package Namen und einem einzigen App listing. Im advanced mode kannst du im Play Store mehr als eine APK aktiv haben. Du setzt bei der APK für ältere Geräte z.B. minSdk = 7 und versionCode = 1. Bei der anderen setzt du minSdk = 14 und versionCode = 2. Bei einem Update nimmst du dann für die erste versionCode 3 und für die zweite versionCode 4.

Runtergeladen wird vom User dann immer die aktuellste Version, die die minSdk Bedingung erfüllt.

Du solltest aber überlegen, ob du die SDK-spezifischen Funktionen nicht in einer einzigen APK unterbringen kannst. Das geht z.B. so:

Code:
public class VersionedClass {

    static {
        int sdk=new Integer(Build.VERSION.SDK).intValue();

        if (sdk<13) {
            myObject = new HoneycombObject();
        }
        else {
            myObject  = new ICSObject();
        }

    public int machWas() {
        return myObject.machWas();
    }
}
Man muss den ICS Code in eine eigene Klasse packen, damit diese Klasse nur dann geladen wird, wenn das Gerät sie auch unterstützt. Damit vermeidet man einen Absturz auf pre-ICS Geräten.

Der Vorteil ist, dass dieser Code normalerweise wesentlich besser wartbar ist als zwei komplett getrennte Projekte.
 
IceClaw schrieb:
Was hat das für einen Sinn?
Benutze minSdk, targetSdk und maxSdk...

Ansonsten kannst du das natürlich machen. Hauptsache das package heißt anders..Verhält sich dann wie zwei verschieden Apps und die user sind verwirrt...

Gruß
Verwirrt ist da keiner, weil wenn man (wie die meisten denke ich) die App über sein Smartphone 'ansurft' sieht man eh nur die für einen zutreffende Version..

Und Sinn machen tuts auch dann, wenn man halt bestimmte Funktionen in der älteren Version nicht nutzen kann und somit eine Art 'Umweg' bauen muss. Wird das ganze komplexer ist das in einer App schnell unübersichtlich und meiner Meinung nach wirklich besser getrennt voneinander handzuhaben.

Wichtig ist halt, dass du im Manifest die Versionen voneinander differenzierst (Bildschirmgröße, etc. oder in deinem Fall wohl hauptsächlich SDK-Version).
Theoretisch können die auch den gleichen Package-Namen und Versions-Code haben.
Aber ich habe sowas noch nie gemacht --> bin mir nicht ganz sicher ;)

Greets,
Max
 
myeta schrieb:
Theoretisch können die auch den gleichen Package-Namen und Versions-Code haben.

Der versionCode sollte bei der Version für höhere SDKs immer grösser sein, so dass die Geräte, die höhere SDKs unterschützen, auch diese Version bekommen.
Man könnte zwar auch mit maxSdk dafür sorgen, dass sich die beiden Versionen nicht überlappen, aber das ist eigentlich unnötig, da Android ja (bis auf ganz wenige Ausnahmen) abwärtskompatibel ist.
 
Super! Vielen Dank euch! Habt mir sehr weiter geholfen!
 
Zurück
Oben Unten