Skocz do zawartości
Coders Lab

Jak stworzyć signed APK

    Rekomendowane odpowiedzi

    Instrukcja dla Android Studio 3.1.3

    Jeżeli chcemy wydać naszą aplikację i zbudować ją w wariancie release musimy stworzyć podpisane APK.

    Z menu wybieramy Build -> Generate Signed APK

    image.png.db72d35e1c889fd711448b3f1c4bdaa4.png

    Następnie potrzebny nam jest "key store", którym podpiszemy nasze APK. Prawdopodobnie nie mamy żadnego pod ręką, więc w nowym oknie klikamy na "Create new...":
    image.png.60f6c7466ab341db29773001a74f3564.png

    Teraz uzupełniamy informacje o naszym kluczu:
    image.png.3aa7fd4e4021f8770cac10719a832bc3.png

    Key store path - ścieżka do pliku klucza (plik zostanie utworzony automatycznie)
    Poniżej mamy hasło key store - trzeba je zapamiętać! tak samo jak hasło samego klucza (będzie potrzebne do konfiguracji pliku gradle).
    Ustawiamy jak długo klucz będzie ważny. Domyślnie jest 25 lat ;) Potem dodajemy dane do certyfikatu (nie musimy ich uzupełniać). Klikamy OK i wracamy do poprzedniego okna:

    image.png.2bf016c89ff4ecccfe58fe8bc50fb318.png

    Mamy już wszystko uzupełnione. Możemy jeszcze dodatkowo zapamiętać hasła przez zaznaczenie "Remember passwords". Klikamy Next:

    image.png.dd09c917652a963fbaecc4bfac2baf64.png

    Tutaj zaznaczamy V1 oraz V2 (Full APK signature) - jest to rekomendowane przez google. Więcej informacji dlaczego można uzyskać klikając w Signature Help

    Klikamy Finish. Po chwili powinniśmy zobaczyć że nasz build przebiegł prawidłowo:
    image.png.16e3f26657cf5bdd91fb328748edd035.png

    Nasze podpisane APK znajdziemy w folderze app/release/ naszego projektu. Można się tam szybko dostać z poziomu Android Studio. W tym celu przechodzimy na zakładkę Project, klikamy Android i zmieniamy na Projects:
    image.png.686fac28cd949166c791bcd751db81d2.png

    Teraz możemy naszą podpisaną aplikację zainstalować na naszym telefonie lub nawet na emulatorze (wystarczy ją przeciągnąć do okna emulatora).

    Jeśli jednak chcielibyśmy szybciej budować podpisaną aplikację i automatycznie instalować ją na telefonie musimy jeszcze skonfigurować Build Variant w pliku gradle na poziomie modułu. Najłatwiej zrobić to wybierając Build Variant release i klikając na przycisk "Run app":

    image.png.5dde813f23032e4dcf4ae6886e113389.png

    W oknie które się pojawi klikamy na przycisk Fix. Będzie on widoczny obok komunikatu błędu na dole okna:

    image.png.2f1332e9ea9854c4970dbab5201e50cf.png

    Teraz klikając w plusik:

    image.png.3a8e7a87467b47bd4b026b58b65273b6.png

    Wybieramy nazwę, plik klucza który wcześniej stworzyliśmy i uzupełniamy hasła:

    image.png.4faa7ca68fa766f217e06dc8129c188b.png

    Przechodzimy do zakładki Build Types i dla release wybieramy Signing Config:
    image.png.4ccec5ab066b5c2e1686c3b97a18ef45.png

    Klikamy OK i już mamy konfigurację utworzoną i zapisaną w naszym pliku gradle:

    apply plugin: 'com.android.application'
    
    apply plugin: 'kotlin-android'
    
    apply plugin: 'kotlin-android-extensions'
    
    android {
        signingConfigs {
            config {
                keyAlias 'testowyKlucz'
                keyPassword 'haslokey'
                storeFile file('C:/androidcompl/testowyklucz.jks')
                storePassword 'haslostore'
            }
    
        }
        compileSdkVersion 27
        defaultConfig {
            applicationId "tutorial.android.com.pl.tutorial"
            minSdkVersion 22
            targetSdkVersion 27
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig signingConfigs.config
            }
        }
    }

    UWAGA! hasła tutaj nie są chronione - w konfiguracji są podane jawnie. Jednak jeżeli nie planujemy wystawiać gdzieś na zewnątrz naszego repozytorium nie jest to wielkim problemem. W przyszłości dodam wpis jak sobie z tym poradzić ;)
    Teraz możemy już uruchamiać aplikacje w wariancie release za pomocą "Run app"

    image.png

    Edytowane przez mmaciejow
    poprawa tematu
    • Lubię to! 1

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    nigraS

    Jaka powinna być dokładna ścieżka do pliku klucza?

    Czy ma to być główny katalog z aplikacją?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    @nigraS  Może to być dowolna lokalizacja. Trzeba jednak pamiętać że klucz jest plikiem który musimy chronić. Jeżeli ktoś zdobędzie klucz i hasła,  wprowadzić zmiany w naszej aplikacji i podpiszę APK naszym kluczem to będzie wyglądało to tak jakbyśmy sami wprowadzili te zmiany.
    Dlatego też klucz powinien być trzymany poza głównym katalogiem, nawet nie powinno go być w naszym repozytorium.
     

    • Lubię to! 1

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x