2013-11-01 11 views
18

पर आधारित स्वाद संस्करण नाम बदलें, मैं ऐप स्वाद के लिए संस्करण का नाम बदलना चाहता हूं, लेकिन केवल तभी यह डिबग बिल्ड है।एंड्रॉइड - बिल्ड प्रकार

(उदाहरण के लिए डीबग बिल्डों में 1.0.1 डी (डीईबीयूजी) 555 या 1.0.1 पी (डीईबीयूजी) 555 जैसे संस्करण होंगे, हालांकि मैं चाहता हूं कि रिलीज केवल 1.0.1 जैसे संस्करण हो) मैं कैसे प्राप्त कर सकता हूं इस?

buildTypes { 


    debug { 
     versionNameSuffix " (DEBUG) " + mBuild 

    } 
    release { 
     runProguard true 
     proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), file('proguard-project.txt') 
     signingConfig signingConfigs.release 
    } 
} 

और इन जायके (अलग एपीआई पर्यावरण के लिए):

मूल रूप से मैं इन प्रकार के निर्माण है

productFlavors { 
    dev { 
     versionName = android.defaultConfig.versionName + " D" 
    } 
    prod { 
     versionName = android.defaultConfig.versionName + " P" 
    } 
} 

वहाँ किसी भी तरह से रिहाई सुनिश्चित करने के लिए कैसे है उत्पाद जायके संस्करण का नाम परिवर्तन के बिना बनाता है ?

मैं के माध्यम से

buildTypes.each { buildType -> 
    if(buildType.name == 'debug') { 
     productFlavors.dev.versionName = android.defaultConfig.versionName + " D" 
    } 
} 

गतिशील संस्करण नाम सेट करने की कोशिश की है, लेकिन इस

में जो परिणाम संपत्ति 'देव' GroupableProductFlavorDsl कंटेनर पर नहीं मिल सका।

+0

का उपयोग कर रिलीज निर्माण के लिए संस्करण का नाम में किए गए परिवर्तनों को दूर करने, प्रबंधित करने के तरीके घंटे के बाद। तो यह समुदाय के लिए स्पष्ट है, उस मुद्दे को हल किया गया। –

+0

"आप कल अपना जवाब स्वीकार कर सकते हैं" – martinpelant

उत्तर

29

खोज रहा कृपया अपने खुद के जवाब स्वीकार करें इस कोड

applicationVariants.all { variant -> 
    if (variant.buildType.name == 'release') { 
     variant.mergedFlavor.versionName = android.defaultConfig.versionName; 
    } 
} 
+0

यह नोटेशन (android.defaultConfig.versionName) आज तक मेरे लिए काम करता है जब तक मैं एंड्रॉइडस्टूडियो 0.5.5 से 0.8.1 तक अपग्रेड नहीं करता हूं। किसी भी विचार के बजाय अब इसका उपयोग क्यों किया जाना चाहिए? – Gavriel

+2

I प्रोजेक्ट पर 'प्रॉपर्टी नहीं मिल सका' एप्लिकेशन प्राप्त नहीं हो सकता है ... ... त्रुटि। – Alf

+2

एप्लिकेशन का उपयोग करें Variants.each एप्लिकेशन के बजाय Variants.all – San

3

Build TypeProduct Flavor को ओवरराइड करना चाहिए। अगले एक कोशिश करो।

buildTypes { 

    release { 
     versionName = android.defaultConfig.versionName 
    } 
} 
+5

मैंने पहले से ही कोशिश की है। समस्या यह है कि बिल्ड प्रकार में संस्करणनाम गुण नहीं है, केवल संस्करण नामकफिक्स है। उपरोक्त कोड 'मांग पर गुण बनाना (ए.के.ए. गतिशील गुण) में .0 है। गतिशील गुणों के प्रतिस्थापन पर कृपया http://gradle.org/docs/current/dsl/org.gradle.api.plu पढ़ें। अस्वीकृत गतिशील संपत्ति: "BuildTypeDsl_Decorated" पर "संस्करण नाम" – martinpelant

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