2011-01-30 3 views
8

Vorrei aggiungere due versioni della mia app all'Android Market, una per pochi centesimi e una versione gratuita, con annunci. Questa è una pratica molto comune.Come si rilasciano due versioni di un'app sul Market?

Attualmente sto costruendo AdMod nella mia app, e sembra che dovrò cambiare un paio di file molto, così sembra meglio per rendere una versione separata della mia app per questo.

Come si ottiene? Un ramo? Un repository diverso? Qualcuno ha trovato un modo per mantenere entrambe le app nello stesso repository in modo ragionevole?

Il titolo non è scritto male, intendo "realizzo", cioè come le persone gestiscono le due versioni, non come le aggiungono al mercato.

risposta

8

Questo genere di cose è un incubo - purtroppo il sistema di generazione di Android in realtà non lo supporta in ogni buon senso.

Lo facciamo avendo il 99% del codice della nostra applicazione in un progetto di libreria. Creiamo quindi un progetto di applicazione per ogni versione diversa dell'app, ognuno dei quali usa quella libreria.

Dove abbiamo bisogno diverse versioni del app per comportarsi in modo diverso, abbiamo attualmente raggiungere che avendo diverse risorse che vengono interrogati in fase di esecuzione. Tuttavia, stiamo passando all'utilizzo di Dependency Injection tramite RoboGuice.

Ci sono elementi di questo che funzionano abbastanza bene, e altri che non lo fanno. È necessario, ad esempio, duplicare il file AndroidManifest.xml, che può essere soggetto a errori (è facile, per esempio, aggiungere una nuova attività a un manifest e dimenticarsi di farlo negli altri). È un disastro, purtroppo, ma la soluzione meno pessima che abbiamo trovato.

Personalmente, sconsiglio vivamente di utilizzare i rami per ottenere questo effetto. Possono funzionare bene inizialmente, ma diventeranno rapidamente un incubo di manutenzione.

Uno dei vantaggi dell'utilizzo di una libreria è che abbiamo riscontrato che rende i test molto più semplici. Per un esempio di come impostare questa funzione, vedi:

http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/

+0

Penso che a un certo punto Google consiglia di utilizzare le librerie per farlo. –

+1

La biblioteca progetta la strada da percorrere e non direi che è un incubo. Funziona perfettamente per qualcosa di simile. Questo potrebbe aiutarti anche a iniziare http://developer.android.com/guide/developing/eclipse-adt.html # libraryProject – schwiz

+0

Buona risposta e ottimo link schwiz! Quindi questo è ciò che Google consiglia. – Metric

2

Le persone di solito li caricano due volte (come due programmi diversi) e modificano semplicemente il titolo per aggiungere qualcosa come Ad-Free, Donate e cose del genere. E nella versione gratuita basta aggiungere l'etichetta gratuita e inserire anche la descrizione che è supportata da pubblicità.

Ecco un esempio con l'applicazione SMS Popup:

SMS Popup Versions Side-by-Side

per l'Android Market, essi sono considerati programmi diversi, ma per noi è la stessa, ma uno è ad-supported e l'altro non lo è.

+0

Credo che egli intende come mantenere lo sviluppo di due versioni facile. Quindi non deve modificare separatamente entrambi i programmi solo perché vuole avere due versioni. Suppongo anche che entrambe le versioni siano praticamente le stesse, oltre alle pubblicità. – ontrack

+0

Sì, ontrack ha ragione. Ma qualcuno ha modificato il titolo e così ha cambiato la domanda, quindi non c'è da meravigliarsi se Nathan ha sbagliato ... – Metric