2013-03-06 7 views
7

मैं अपने ऐप के कई संस्करणों (समवर्ती रूप से) बनाने और स्थापित करने में सक्षम होना चाहता हूं, विकास, स्टेजिंग और निश्चित रूप से उत्पादन जैसे विभिन्न वातावरण को लक्षित करना चाहता हूं।अलग-अलग वातावरण के लिए अलग-अलग एंड्रॉइड बिल्ड

AndroidManifest.xml में पैकेज का नाम यहां प्रमुख बाधा प्रतीत होता है, क्योंकि यह विशिष्ट रूप से ऐप की पहचान करता है। मैंने सोचा कि com.mydomain.prod, com.mydomain.staging और com.mydomain.dev या किसी तरह के समान सम्मेलन के बीच स्विच करना संभव होगा लेकिन अब तक मुझे इस दृष्टिकोण के लिए काम करने वाली पैकेज संरचना के साथ कोई भाग्य नहीं मिला है।

जितना संभव हो उतना दर्द के साथ ऐसा करने के लिए मैं किस रणनीति को नियोजित कर सकता हूं?

+0

AndroidManif में पैकेज फ़ील्ड est.xml Google Play द्वारा उपयोग किया जाने वाला एक अद्वितीय पहचानकर्ता है और इसे आपके जावा स्रोत पैकेज संरचना के समान होने की आवश्यकता नहीं है। – yorkw

+0

यह सच नहीं हो सकता है, है ना? यदि मैं इसे बदलता हूं, तो जेन फ़ोल्डर बदलता है और मुझे "आर को एक चर के लिए हल नहीं किया जा सकता" त्रुटियों का एक टन मिलता है। इससे बचने का कोई रास्ता है क्या? –

+0

डॉक्स: पैकेज का नाम एप्लिकेशन के लिए एक अद्वितीय पहचानकर्ता के रूप में कार्य करता है। यह एप्लिकेशन प्रक्रिया के लिए डिफ़ॉल्ट नाम भी है ( तत्व की प्रक्रिया प्रक्रिया विशेषता देखें) और गतिविधि के डिफ़ॉल्ट कार्य संबंध ( तत्व का कार्य अफ़्रीकी विशेषता देखें)। –

उत्तर

0

मेरा सुझाव है कि आप 'चीज' बिल्ड टूल का उपयोग करें जो 'regexp' कार्य निर्दिष्ट करता है जिसका उपयोग कुछ फ़ाइलों में टेक्स्ट को प्रतिस्थापित करने के लिए किया जा सकता है (यानि उचित बिल्ड लक्ष्य के अनुसार मैनिफेस्ट फ़ाइल में अपने ऐप के पैकेज नाम को प्रतिस्थापित करें) । आप प्रत्येक निर्माण लक्ष्य (उदाहरण के लिए 'build_development.properties' के विकास के लिए अपने उत्पाद के निर्माण के लिए प्रासंगिक सभी मानकों को पकड़ने के लिए अलग-अलग गुण फ़ाइल को परिभाषित कर सकते हैं। ... उम्मीद है कि यह सहायक है ..

4

ग्रैडल के साथ आप निर्दिष्ट कर सकते हैं आपके आवेदन के विभिन्न "स्वाद"। यह आपके build.gradle में किया जाता है:

android { 
    // … 

    defaultConfig { 
     // … 
    } 

    productFlavors { 
     prod 
      applicationId "com.mydomain.prod" 
     } 

     staging { 
      applicationId "com.mydomain.staging" 
     } 

     dev { 
      applicationId "com.mydomain.dev" 
      versionCode 2 
     } 
    } 
} 

प्रत्येक स्वाद गुण defaultConfig से लिए गए हैं।

अब, अपने अनुप्रयोग के src निर्देशिका में, आप स्वाद-विशिष्ट कोड/संसाधनों के साथ निर्देशिकाओं उस में बना सकते हैं:

app/ 
|-- src/ 
    |-- main/ 
    |-- prod/ 
    |-- staging/ 
    |-- dev/ 

ये लिंक उपयोगी हो सकता है:

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