2011-06-01 14 views
11

Mam kilkadziesiąt kluczy api do facebooka i Twittera oraz wiele innych usług, jaki jest standardowy sposób na różne wartości kluczy w zależności od tego, czy robię kompilację programistyczną w porównaniu z kompilacją pomostową czy kompilacją produkcyjną?Jak mieć różne środowiska kompilacji dla Androida?

Odpowiedz

5

Możesz użyć flagi statycznej, aby użyć jej w bloku przełącznika do zdefiniowania kluczy. To działa dla prostego projektu z dwoma lub trzema kluczami alternatywnymi.

Jeśli naprawdę masz tak wiele do wykorzystania w kilku projektach, proponuję dodać je do klasy pomocnika, aby zminimalizować zmiany kodu na zajęciach. Coś jak:

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; 
    } 
} 

i używać go jako:

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

Skończyłem na runtime sprawdzić ciągi var var podobny do tego – hunterp

0

chciałbym zachować je w osobnych plikach właściwości i odniesienie odpowiedni plik właściwości w swojej klasie build skrypt/Zaćmienie ścieżki w zależności od tego, co masz robić.

Powiązane problemy