2011-06-01 15 views
11

Tengo docenas de claves de la API de Facebook y Twitter y muchos otros servicios, lo que es la forma estándar para tener valores diferentes para las teclas de función de si estoy haciendo un desarrollo se basan frente a una puesta en escena construir frente a una producción a construir?¿Cómo tener diferentes entornos de compilación para Android?

Respuesta

5

Usted puede usar una bandera estática para el uso en un bloque de interruptores para definir las llaves. Eso funciona para un proyecto simple con dos o tres claves alternativas.

Si realmente tiene que muchos, a utilizar en varios proyectos, le sugiero que para añadirlos a una clase de ayuda, por lo que se minimiza el cambio de código en sus clases. Algo así como:

public class BuildHelper { 
    public static final int DEBUG=0; 
    public static final int STAGING=1; 
    public static final int PRODUCTION=2; 

    public static int BUILD; 

    public static String getFbKey() { 
     switch(BUILD) { 
     case DEBUG: return "xxx"; 
     case STAGING: return "yyy"; 
     case PRODUCTION: return "zzz"; 
     } 
     return null; 
    } 
    public static String getTwitterKey() { 
     switch(BUILD) { 
     case DEBUG: return "xxx"; 
     case STAGING: return "yyy"; 
     case PRODUCTION: return "zzz"; 
     } 
     return null; 
    } 
} 

y utilizarlo como:

public class YourClass extends Activity { 

    public static String FB_KEY; 
    public static String TWITTER_KEY; 
    //etc. 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    BuildHelper.BUILD=BuildHelper.DEBUG; // or STAGING or PRODUCTION 
    FB_KEY = BuildHelper.getFbKey(); 
    TWITTER_KEY = BuildHelper.getTwitterKey(); 
    //etc. 
    } 
} 
+0

Terminé haciendo un control en tiempo de ejecución para una cadena var similar a esta – hunterp

0

Me gustaría mantener en archivos de propiedades separadas y hacer referencia al archivo de propiedades aplicables en su ruta de clase build script/Eclipse dependiendo de lo que está obra.

Cuestiones relacionadas