«App-release.apk», как изменить это имя apk, созданное по умолчанию

Когда я создаю подписанный apk в студии android, по умолчанию он дает имя как app-release.apk …

Можем ли мы сделать какие-либо настройки, чтобы он запрашивал и спрашивал имя, которое нужно назначить apk (как это сделать в eclipse)

Что я делаю – переименуйте apk после его сгенерирования. Это не дает никаких ошибок, но есть ли какой-либо подлинный способ, чтобы я мог делать какие-либо изменения в настройках, чтобы получить подсказку.

Заметка::

В то время как создание студии apk android дает мне подсказку для выбора местоположения (только) Введите описание изображения здесь

Solutions Collecting From Web of "«App-release.apk», как изменить это имя apk, созданное по умолчанию"

Да, мы можем изменить это, но с некоторым вниманием

Видеть это

Теперь добавьте это в свой build.gradle в свой проект, но убедитесь, что вы проверили вариант сборки вашего проекта, например, release or Debug поэтому здесь я установил вариант сборки как release но вы также можете выбрать Debug.

  buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig getSigningConfig() applicationVariants.all { variant -> variant.outputs.each { output -> def date = new Date(); def formattedDate = date.format('yyyyMMddHHmmss') output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace("-release", "-" + formattedDate) //for Debug use output.outputFile = new File(output.outputFile.parent, // output.outputFile.name.replace("-debug", "-" + formattedDate) ) } } } } 

Вы можете сделать это с другим подходом.

  defaultConfig { applicationId "com.myapp.status" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" setProperty("archivesBaseName", "COMU-$versionName") } 

Использование метода свойств Set в build.gradle и не забудьте синхронизировать градиент перед запуском проектов. Надеюсь, что это решит вашу проблему 🙂

Я изменил @Abhishek Chaubey ответ на изменение всего имени файла:

 buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' applicationVariants.all { variant -> variant.outputs.each { output -> project.ext { appName = 'MyAppName' } def formattedDate = new Date().format('yyyyMMddHHmmss') def newName = output.outputFile.name newName = newName.replace("app-", "$project.ext.appName-") //"MyAppName" -> I set my app variables in the root project newName = newName.replace("-release", "-release" + formattedDate) //noinspection GroovyAssignabilityCheck output.outputFile = new File(output.outputFile.parent, newName) } } } debug { } } 

Это создает имя файла, например: MyAppName-release20150519121617.apk

Я искал более сложный вариант переименования файлов apk, и я написал это решение, которое переименовывает apk со следующими данными:

  • аромат
  • Тип сборки
  • версия
  • Дата

Вы получите apk следующим образом: myProject_dev_debug_1.3.6_131016_1047.apk .

Здесь вы можете найти целый ответ . Надеюсь, поможет!

В build.gradle:

 android { ... buildTypes { release { minifyEnabled true ... } debug { minifyEnabled false } } productFlavors { prod { applicationId "com.feraguiba.myproject" versionCode 3 versionName "1.2.0" } dev { applicationId "com.feraguiba.myproject.dev" versionCode 15 versionName "1.3.6" } } applicationVariants.all { variant -> variant.outputs.each { output -> def project = "myProject" def SEP = "_" def flavor = variant.productFlavors[0].name def buildType = variant.variantData.variantConfiguration.buildType.name def version = variant.versionName def date = new Date(); def formattedDate = date.format('ddMMyy_HHmm') def newApkName = project + SEP + flavor + SEP + buildType + SEP + version + SEP + formattedDate + ".apk" output.outputFile = new File(output.outputFile.parent, newApkName) } } } 

Не переименовать его, но, возможно, правильно создать имя в первую очередь? Изменить имя apk с помощью Gradle

Я написал более универсальное решение, основанное на ответе @Fer.

Он также должен работать с настройкой типа flavor и build на основе типа applicationId , versionName , versionCode .

В build.gradle:

 android { ... applicationVariants.all { variant -> variant.outputs.each { output -> def appId = variant.applicationId def versionName = variant.versionName def versionCode = variant.versionCode def flavorName = variant.flavorName // eg free def buildType = variant.buildType // eg debug def variantName = variant.name // eg freeDebug def apkName = appId + '_' + variantName + '_' + versionName + '_' + versionCode + '.apk'; output.outputFile = new File(output.outputFile.parentFile, apkName) } } } 

Пример apk name: com.example.app_freeDebug_1.0_1.apk

Для получения дополнительной информации см. Javadoc для переменной variant : ApkVariant

Я думаю, это будет полезно.

 buildTypes { release { shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' applicationVariants.all { variant -> variant.outputs.each { output -> project.ext { appName = 'MyAppName' } def formattedDate = new Date().format('yyyyMMddHHmmss') def newName = output.outputFile.name newName = newName.replace("app-", "$project.ext.appName-") newName = newName.replace("-release", "-release" + formattedDate) output.outputFile = new File(output.outputFile.parent, newName) } } } } productFlavors { flavor1 { } flavor2 { proguardFile 'flavor2-rules.pro' } }