Ogni volta che rilascio la mia app, cambio tutte le mie stringhe di e alcune chiavi dal dal testing alla produzione. Il modo in cui lo faccio è solo commentare le stringhe prima di rilasciare. C'è un modo migliore per gestire le stringhe in base al tipo di build?Valori stringa separati per Android per build di debug e release
risposta
Supponendo di utilizzare Android Studio, per impostazione predefinita il sistema crea un aroma base release
e debug
. Quindi se aggiungi una cartella debug
e release
nella cartella app/src
del tuo progetto puoi dichiarare valori separati lì.
Quindi la tua struttura dovrebbe essere come questo:
project
-app
-src
-debug
-java
...
-res
-values
-strings.xml
-release
-java
...
-res
-values
-strings.xml
-main
-java
...
-res
-values
-strings.xml
Vorrei anche aggiungere che se si dispone di una stringa che non è definito in una delle cartella debug
o release
che eseguirà il fallback per il vostro main
cartella.
quindi ogni volta che lavoro su qualcosa devo aggiornare tutte e 3 le cartelle? – spaceMonkey
cosa dire di separare le stringhe url specifiche in un "url-strings.xml" separato e quindi avere 'project/app/src/main/res/values / strings.xml' ' project/app/src/debug/res/valori/url-strings.xml' 'project/app/src/release/res/values / url-strings.xml' – k3b
no, hai solo la tua app nella cartella predefinita' main'. Qualsiasi risorsa che deve essere differente in 'debug' o' release' crea semplicemente aggiungendo a strings.xml (o come @ k3b menziona un file diverso). Android Studio ricadrà sempre nella cartella 'main' in modo da poter avere 1 stringa url nelle cartelle' debug'/'release' e prenderà solo quelle. –
Basta fare due sapori in build.gradle. Quindi due directory, sempre come indicato nel link (developer.android.com/tools/building/configuring-gradle.html). Dal momento che è necessario solo stringhe da alterati, basta copiare i file strings.xml nelle nuove directory (cioè dev e produzione) cancellare i tuoi strings.xml originale
E questo è tutto. :)
Non è necessario spostare i file java o altri file di layout.
In breve, lasciare tutto nella directory "principale" che dovrebbe essere coerente in tutti i sapori di build. Sovrascrive i valori dipendenti da build flavor nella rispettiva directory.
? intendi "tipi di costruzione" o "sapori di prodotto"? – spaceMonkey
scusa. sì sapori del prodotto come test e produzione –
http://stackoverflow.com/questions/17197636/is-it-possibile-per-declare-a-variabile-in-grado-usabile-in-java – CommonsWare
cercavo questo .. ottima domanda e risposta .. – DJphy
Non farlo. Le probabilità di avere stringhe errate nel codice di produzione con il tuo approccio sono piuttosto alte. In questo modo: http://developer.android.com/tools/building/configuring-gradle.html –