2013-07-04 11 views
34

Obecnie staram się nauczyć Gradle budować pakiety APK systemu Android. Jak ustawić opcję gradle, aby utworzyć niepodpisany pakiet APK?Zbuduj niepodpisany pakiet APK z Gradle

+0

Przez niepodpisany znaczy nawet z kluczem debugowania? Czemu ? – tbruyelle

+1

nope. wersja wydania, ale niepodpisana: – Zul

+0

@tbruyelle Amazon Appstore wymaga niepodpisanych apków. – withoutclass

Odpowiedz

59

Nie trzeba ustawić dowolną opcję, wystarczy uruchomić zwykłe zadanie:

$ gradle assemble 

To wygeneruje dwa pliki w projekcie/build/apk/

app-debug-unaligned.apk 
app-release-unsigned.apk 
+0

Wypróbuję to i zobaczę. – Zul

+1

To nie działa dla mnie. Zobacz moją odpowiedź -> która działa. – owe

+0

@rafaello: Wiesz, że to jakiś czas temu. Ale moje rozwiązanie (odpowiedź powyżej) już nie działa (dlaczego? ... nie wiem). Teraz wypróbowałem Twoje rozwiązanie i zadziałało to dla mnie. Wielkie dzięki! Błędem, który popełniłem we wcześniejszym czasie, było ustawienie signConfig w smaku, który chciałem unsigned ... Teraz usunąłem signConfig i wszystko działa dobrze! Jest to denerwujące po linii poleceń ... – owe

16

Aby wygenerować niepodpisany apk wykonaj następujące czynności:

  • zdefiniować signingConfig z pustymi configuations jak ten:

    signingConfigs{ 
        unsigned{ 
         storePassword = "" 
         keyAlias = "" 
         keyPassword = "" 
        } 
    } 
    
  • określić w buildTypes do wydania wersji z unsigned Konfiguracja:

    buildTypes{ 
        release{ 
         signingConfig signingConfigs.unsigned 
        } 
    } 
    

uzyskać to od adt-dev group, gdzie Xavier Ducrohet zapisu:

The current behavior is to check that the signing config is fully configured(*) and if it is, it generates a signed APK, otherwise an unsigned APK.

(*) fully configured right now means the value for store, alias and passwords are present, but does not include that the keystore is present.

UPDATE 2013-12-19

Jak wspomniano wyżej, nie działa to w przypadku wtyczki gradle w wersji 0.6.3.

W każdym razie możliwe jest wygenerowanie niepodpisanego pliku APK ze stopniem: wystarczy, że wpis signingConfig elementu smakowego lub typu buildType będzie pusty. Powinno to wyglądać tak:

productFlavors{ 
    // with this config you should get a "MyProject-flavorUnsigned-release-unsigned.apk" 
    flavorUnsigned{ 
     versionCode = 9 
     packageName defaultPkgName 
    } 
} 

buildTypes{ 
    // with this config you should get a "MyProject-release-unsigned.apk" 
    release{ 
     packageNameSuffix '.release' 
    } 
} 
+0

Nie działa już dla mnie. Ale odpowiedź Rafaellosa jest całkiem dobra. Dodano wpis do ADT Dev Group na G +: https: //plus.google.com/117954254390243608387/posts/N5dTMNS5UGv – owe

+1

To nie działa, ponieważ kompilacja nie powiedzie się, stwierdzając, że nie określono żadnej wartości dla wymaganych pól. wersja wtyczki 0.6.3 – withoutclass

+0

@withoutclass: Twoje prawo. Zaktualizowałem swoją odpowiedź i wyjaśniłem, w jaki sposób można wygenerować niepodpisaną apk z najnowszą wersją gradle. – owe

5

wystarczy przypisać null signingConfig

android { 
    buildTypes { 
    debug { 
     signingConfig null 
    } 
    } 
} 
Powiązane problemy