Pobrałem plik zip aplikacji na Androida na github i próbuję ją uruchomić, ale pojawia się okno dialogowe z tą wiadomością
app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.
Używam Android Studio. Co powinienem zrobić?
Upewnij się, że wariant kompilacji jest ustawiony na debugowanie (a nie wydanie ) w Android Studio (sprawdź panel wariantów kompilacji ).
Jeśli ustawione na debugowanie, powinno automatycznie podpisywać aplikację przy użyciu automatycznie generowanego magazynu kluczy debugowania, bez edytowania skryptów kompilacji.
Jednak do wydania konieczne będzie utworzenie i skonfigurowanie określonego magazynu kluczy.
Oficjalna dokumentacja obejmująca tryby debugowania i wydania: https://developer.android.com/tools/publishing/app-signing.html
źródło
Zawsze podpisuj kompilację za pomocą skryptu DSL build.gradle w następujący sposób:
android { signingConfigs { debug { storeFile file("debug.keystore") } myConfig { storeFile file("other.keystore") storePassword "android" keyAlias "androidotherkey" keyPassword "android" } } buildTypes { bar { debuggable true jniDebugBuild true signingConfig signingConfigs.debug } foo { debuggable false jniDebugBuild false signingConfig signingConfigs.myConfig } } }
Jeśli chcesz dowiedzieć się więcej na temat systemu kompilacji Gradle związanego z Android Studio, po prostu odwiedź:
Podręcznik użytkownika wtyczki Gradle
źródło
debug.keystore
znajduje się w.android
folderze? Możesz podać pełną ścieżkę, chyba że przeniesiesz ją do swojego projektuUdało mi się zdebugować podpisany plik APK, wykonaj tę procedurę: -
Build.gradle
zestawie modułowymdebuggable true
na typ kompilacji wydaniaźródło
Jeśli ktoś chce debugować i wydać oddzielny wariant kompilacji przy użyciu Android Studio 3.5, wykonaj poniższe czynności: 1. Ustaw wariant kompilacji na tryb wydania.
build.gradle
i zmieńbuildTypes
sekcję> „wydanie”, jak na poniższym Zrzucie ekranu.Następnie uruchom swój projekt. Miłego kodowania.
źródło
signingConfigs powinno znajdować się przed buildTypes
signingConfigs { debug { storeFile file("debug.keystore") } myConfig { storeFile file("other.keystore") storePassword "android" keyAlias "androidotherkey" keyPassword "android" } } buildTypes { bar { debuggable true jniDebugBuild true signingConfig signingConfigs.debug } foo { debuggable false jniDebugBuild false signingConfig signingConfigs.myConfig } }
źródło
jeśli chcesz uruchomić aplikację w trybie debugowania
1) Spójrz na dół po lewej stronie, nad Ulubionymi znajdują się warianty budowy
2) Kliknij opcję Warianty budowania. Kliknij zwolnienie i wybierz debugowanie
działa idealnie !!!
źródło
Pobrany projekt aplikacji może zawierać podpisane informacje w pliku build.gradle. Jeśli widziałeś takie kody:
buildTypes { debug { signingConfig signingConfigs.release } release { signingConfig signingConfigs.release } }
możesz je usunąć i spróbować ponownie.
źródło
Dla gradle Kotlin dsl
signingConfigs { create("releaseConfig") { storeFile = file("your keystore file path") storePassword = "storePassword" keyAlias = "keyAlias" keyPassword = "keyPassword" } } buildTypes { getByName("release") { signingConfig = signingConfigs.getByName("releaseConfig") isMinifyEnabled = true isShrinkResources = true proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") } }
źródło
Mój problem został rozwiązany przez zmianę wariantu kompilacji, zgodnie z sugestią Stéphane'a, jeśli ktoś miał problem ze znalezieniem „wariantów kompilacji”, tak jak ja tutaj, jest zrzut ekranu, na którym można go znaleźć.
źródło
Ze względów bezpieczeństwa nie można zainstalować niepodpisanego pliku APK na Androida. Więc jeśli masz tylko niepodpisany apk: musisz go podpisać. Oto jak to zrobić: link
Pamiętaj, że możesz podpisać plik APK certyfikatem z podpisem własnym.
Alternatywą może być:
źródło
W pasku narzędzi wybierz opcję Build Variants Change Build Variant from Release to Debug
źródło
Jak to rozwiązałem
Ten błąd występuje, ponieważ ustawiłeś warianty kompilacji na tryb wydania. ustaw go w tryb kompilacji i ponownie uruchom projekt.
Jeśli chcesz działać w trybie wydania, po prostu wygeneruj podpisany plik APK w taki sam sposób, w jaki robimy to normalnie podczas udostępniania aplikacji
źródło
Moim rozwiązaniem była zmiana nazwy mojej konfiguracji podpisywania z domyślnej „config” na „debug”. Aby to sprawdzić, zmieniłem go na inną losową nazwę i ponownie otrzymałem błąd, a następnie zmieniłem go z powrotem na „debugowanie” i błąd zniknął. Więc chociaż wydaje mi się to sztuczne i nie wierzę, że to wszystko, wypróbuj to rozwiązanie.
źródło
pojawia się również ten problem, a mój kod poniżej
storeFile file(properties.getProperty("filepath")) storePassword properties.getProperty("keypassword") keyAlias properties.getProperty("keyAlias") keyPassword properties.getProperty("keypassword")
przyczyną jest błąd nazwy właściwości, powinno to być hasło-klucz, a nie hasło-klucz
źródło
To, co w końcu zadziałało i nie mam pojęcia dlaczego, to:
Zauważ, że wielokrotnie próbowałem kopiować, wybierając hasło, klikając na końcu hasła i wybierając hasło, przesuwając mysz.
Jest to dziwne, ale zadziałało tylko po dwukrotnym kliknięciu hasła, aby je skopiować.
Użyłem również metody Open Module Settings> Signing ... wyjaśnionej przez @NightFury w tym poście.
źródło
dodanie poniższych linii kodu w pliku build.gradel działało dla mnie, dodaj je pod blokiem buildTypes poniżej wydania, jak pokazano
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { applicationIdSuffix ".debug" debuggable true }
źródło