2011-06-01 11 views
11

मेरे पास फेसबुक और ट्विटर और कई अन्य सेवाओं के लिए दर्जनों एपीआई कुंजी हैं, यदि मैं विकास निर्माण बनाम एक स्टेजिंग बिल्ड बनाम उत्पादन निर्माण कर रहा हूं, तो चाबियों के लिए अलग-अलग मान रखने का मानक तरीका क्या है?एंड्रॉइड के लिए विभिन्न निर्माण वातावरण कैसे करें?

उत्तर

5

आप अपनी कुंजी को परिभाषित करने के लिए स्विच ब्लॉक में इसका उपयोग करने के लिए एक स्थिर ध्वज का उपयोग कर सकते हैं। यह दो या तीन वैकल्पिक कुंजी के साथ एक साधारण परियोजना के लिए काम करता है।

यदि आपके पास वास्तव में कई परियोजनाओं में उपयोग करने के लिए बहुत से लोग हैं, तो मेरा सुझाव है कि आप उन्हें एक सहायक वर्ग में जोड़ने के लिए सुझाव दें, ताकि आप अपनी कक्षाओं में कोड को कम कर सकें। कुछ की तरह:

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

और के रूप में उपयोग:

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

मैंने इस तरह के तार तारों के लिए रनटाइम चेक करना समाप्त कर दिया – hunterp

0

मैं उन्हें अलग-अलग प्रॉपर्टी फाइलों में रखना होगा और आप क्या कर रहे हैं पर निर्भर करता है अपने निर्माण स्क्रिप्ट/सूर्यग्रहण वर्ग रास्ते में लागू संपत्ति फ़ाइल संदर्भ करते हुए।

संबंधित मुद्दे