2014-12-28 13 views
16

Za każdym razem, gdy uruchamiam projekt z Androidem Studio (1.02), generuję niepodpisany apk, który znajduje się w folderze .. \ build \ outputs \ apk i otrzymuję domyślną nazwę "app-debug.apk"Zmień nazwę wygenerowanej apk z "app-debug.apk"

Chcę zmienić tę domyślną nazwę na coś innego.

Czy to możliwe? W jaki sposób?

Odpowiedz

23

Można użyć applicationVariants i zmienić plik wyjściowy w build.gradle. Możesz także zmodyfikować nazwę dotyczącą swoich potrzeb.

buildTypes{ 

    applicationVariants.all { variant ->        
     variant.outputs.each { output ->        
      output.outputFile = file("$project.buildDir/apk/test.apk") 
     }                
    } 

} 
+1

ten nie działa już od Gradle 3. – elcuco

2

Część "app" nazwy używa nazwy folderu modułu aplikacji (domyślnie jest to "aplikacja"). Zobacz link poniżej, jak to zmienić.
Why is my APK name generic?

The 'debug' przedrostek jest coś co można zmienić w ustawieniach modułu w Rodzaje Build

0

Może to pytanie (i jego zaakceptowane odpowiedź) są interesujące dla Ciebie: How to set versionName in APK filename using gradle? Opisuje w jaki sposób umieścić swoje versionName w imię APK.

Musisz użyć części "Aktualizuj" zaakceptowanej odpowiedzi. Ponadto potrzebujesz nazwy wersji (w tym przykładzie) zadeklarowanej w defaultConfig w pliku build.gradle. Działa również, jeśli zdefiniujesz versionCode w pliku build.gradle (jak opisano tutaj: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Manifest-entries).

2

Jeśli ktoś chce zmienić nazwę pliku APK poza Androidem Studio (wystarczy wysłać ten plik komuś innemu, tak jak w moim przypadku), kliknij prawym przyciskiem myszy nazwę aplikacji i zmień ją na dowolną.

14

W build.gradle (moduł: app):

android { 
    ... 
    defaultConfig { 
     ... 
     setProperty("archivesBaseName", "MyNewAppNameGoesHere") 
    } 
} 

To działa modyfikując archivesBaseName -property i pracuje dla Gradle wersja> = 2.0, ostatni przetestowany z 2.1.0.

1
defaultConfig { 

    applicationId "com.dcarl661.awesomelayout" 

    minSdkVersion 14 

    targetSdkVersion 25 

    versionCode 1 

    versionName "1.0" 

    //here put it in the section where you have the version stuff 
    setProperty("archivesBaseName", "AwesomeLayout") 

} 
3

rozwiązanie dla gradle3:

android.applicationVariants.all { variant -> 
    variant.outputs.all { 
     outputFileName = applicationId; 
     outputFileName += "-v" + android.defaultConfig.versionName; 
     if (variant.buildType.name == "release") { 
      outputFileName += ".apk"; 
     } else { 
      outputFileName += "-SNAPSHOT.apk"; 
     } 
    } 
} 
+0

ta powinna być przyjęta odpowiedź. –

+1

A jeśli ktoś jest zdezorientowany tym kodem, zasadniczo można ustawić "outputFileName" na dowolny ciąg, który chcesz. –