2010-12-07 11 views
7

Ich habe gerade meine erste App veröffentlicht und möchte auch eine kostenlose Version dazu haben. Ich frage mich, wie sollte ich meine kostenlose Version Zweig (in Svn) verwalten, so dass es einfach ist, Änderungen von der Vollversion zusammenzuführen? Ist es möglich, nur den Paketnamen in der Manifest-Datei zu ändern? Oder müssen die Paketnamen im Code unterschiedlich sein? Wenn ja, wie könnte ich Änderungen leicht zusammenführen?Wie man kostenlose Version verwaltet?

Danke, Jason

Antwort

1

Haben Sie eine kostenlose Version erstellen wirklich einen anderen Zweig halten wollen?
Ich würde die gleiche Codebasis verwenden und einige Funktionen in der kostenlosen Version entweder durch #ifdef oder Konfigurationsparameter deaktivieren.

+0

Aber ich kann nicht den gleichen Paketnamen apk zweimal auf dem Markt sowieso könnte ich? – Jason

+0

@Jason, ich weiß nicht Android-Entwicklung, aber können Sie nicht einfach eine separate Kopie der Datei, wo der Paketname definiert ist? –

+0

Wenn es nur im Manifest ist dann ja, aber wenn ich das Code-Paket ändern muss, dann könnte das ein Problem sein Ich wurde vorgeschlagen, ein gefälschtes Paket zu machen und nur die Manifest-Datei zu diesem gefälschten Paket zu ändern, das funktionieren könnte wissen, ob es tut – Jason

2

Ich benutze dies in alle meine apps:

public static final boolean LITE_VERSION = true; 

dann verwenden, um einige Funktionen zu deaktivieren.

Es ist wichtig zu wissen, dass der Java-Compiler jedes Stück Code in einem if (! LITE_VERSION) -Block ignoriert, wenn LITE_VERSION auf true gesetzt ist, so dass es nicht reverse engineered sein kann (Sie können es mit dem "javap -c "Befehl).

+1

Cool danke, aber das lässt mich immer noch mit dem Paketnamen Problem, was machst du da? – Jason

+0

gut .. es lässt Sie auch mit dem Problem der Lizenzierung. Die kostenlose Version kann nicht lizenziert werden. Bibliothek ist der Weg zu gehen – GSree

0

Ich benutze Ant für Builds. Ich habe zuvor how I build two versions of the same app dokumentiert. Der letzte Abschnitt, in dem ich darlege, wie man mit verschiedenen Manifesten umgeht, interessiert Sie wahrscheinlich am meisten.

+0

Scheint interessant wird dies lesen, wenn ich morgen nach Hause komme, ermöglicht diese Methode für die Deaktivierung cretin Features obwohl? – Jason

+0

Cretin Eigenschaften? :) Ich benutze verschiedene Manifest-Dateien für jede Version. Ich habe auch drei Quellbäume (main, demo und common) eingerichtet und nutze Ant, um zwei der drei Bäume (main + common oder demo + common) vor dem Aufbau zu einem einzigen Baum zusammenzufügen. –

0

Ich versuche, die gleiche Codebasis und Paketnamen zu verwenden und bieten einen Premium-Schlüssel, der eine zusätzliche App (apk) oder nur eine Seriennummer sein könnte. Dieser Ansatz hat den positiven Nebeneffekt, dass Benutzer, die ein Upgrade durchführen möchten, ihre alten Daten und Einstellungen verwenden können. Der Schlüssel ermöglicht nur eine Flagge wie erwähnt vor, die Features dynamisch aktiviert

Verwandte Themen