मैं "app-release.apk" फ़ाइल का नाम बदलना पसंद करूंगा, जब मैं एक ऐप्लिकेशंस का उपयोग करके निर्माण करूं।

[format]
(appname of package name)_V(version code)_(yyMMdd)_(R|T)

[explain]
(appname of package name) : example) com.example.myApp -> myApp
(version code) : build version code 2.2.3 -> 223
(yyMMdd) : build date 2015.11.18 -> 151118  
(R|T) : if app is release, "R" but debug is "T".

अगर मैं रिलीज़ में एक एपीके फ़ाइल उत्पन्न करता हूं, तो परिणाम है: myApp_V223_151118_R.apk।

कैसे इस तरह से एक फ़ाइल नाम बनाने के लिए है?

51
S.J. Lim 18 नवम्बर 2015, 11:36

3 जवाब

सबसे बढ़िया उत्तर

अपडेट करें: कृपया एनिमीयन का उत्तर देखें, जिसके नीचे बहुत सरल और छोटा है।

इसे इस्तेमाल करे:

gradle.properties

applicationName = MyApp

build.gradle

android {
  ...
  defaultConfig {
     versionCode 111
     ...
  }
  buildTypes {
     release {
         ...
         applicationVariants.all { variant ->
             renameAPK(variant, defaultConfig, 'R')
         }
     }
     debug {
         ...
         applicationVariants.all { variant ->
             renameAPK(variant, defaultConfig, 'T')
         }
     }
  }
}
def renameAPK(variant, defaultConfig, buildType) {
 variant.outputs.each { output ->
     def formattedDate = new Date().format('yyMMdd')

     def file = output.packageApplication.outputFile
     def fileName = applicationName + "_V" + defaultConfig.versionCode + "_" + formattedDate + "_" + buildType + ".apk"
     output.packageApplication.outputFile = new File(file.parent, fileName)
 }
}

संदर्भ: https://stackoverflow.com/a/30332234/206292 https://stackoverflow.com/a/27104634/206292

42
Krishnaraj 7 पद 2017, 07:33

2019/2020 - कैसे बदलें नाम के लिए ग्रेड नाम 3.3, 3.4, 3.5, 4.0 और ऊपर है

android {
   ......
   applicationVariants.all { variant ->
       variant.outputs.all {
           def flavor = variant.name
           def versionName = variant.versionName
           outputFileName = "prefix_${flavor}_${versionName}.apk"
       }
   }
}

परिणाम इस प्रकार होगा,

prefix_release_1.0.1.apk

23
Zumry Mohamed 6 जुलाई 2020, 01:52

यह सबसे छोटा तरीका हो सकता है:

defaultConfig {
    ...
    applicationId "com.blahblah.example"
    versionCode 1
    versionName "1.0"
    setProperty("archivesBaseName", applicationId + "-v" + versionCode + "(" + versionName + ")")
}

BuildType: जैसे

buildTypes {
    debug {
        ...
        versionNameSuffix "-T"
    }
    release {
        ...
        versionNameSuffix "-R"
    }
}

ध्यान रखें, एंड्रॉइड स्टूडियो डिफ़ॉल्ट रूप से टाइप नाम का निर्माण करके संस्करणनामसेफिक्स जोड़ता है, इसलिए आपको इसकी आवश्यकता नहीं हो सकती है।

Upd । एंड्रॉइड स्टूडियो के नए संस्करणों में आप इसे बहुत कम लिख सकते हैं (szx टिप्पणी के लिए धन्यवाद):

defaultConfig {
    ...
    archivesBaseName = "$applicationId-v$versionCode($versionName)"
}
117
Anrimian 23 फरवरी 2019, 15:32