2016-10-31 19 views
6

Miałem projekt działa dobrze na cordova 6.3.1.Cordova 6.4.0 Błąd Androida podczas budowania wydania apk

Następnie zaktualizowałem cordova i mój projekt do wersji 6.4.0. Po tym, po raz pierwszy zbudowałem, gradle również automatycznie zaktualizowane.

Teraz jestem przeżywa ważną kwestię:

muszę zawierać alias magazynu kluczy i haseł w pliku build.json lub generowanie uwolnienie apk nie powiedzie się z powodu błędu.

używam plik build.json takiego:

{ 
"android": { 
    "debug": { 
     "keystore": "C:\\Path\\To\\Keystores\\debug.keystore", 
     "storePassword": "debugpass", 
     "alias": "thedebugalias", 
     "password" : "debugpass", 
     "keystoreType": "" 
    }, 
    "release": { 
     "keystore": "C:\\Path\\To\\Keystores\\theapp.keystore", 
     "storePassword": "", 
     "alias": "thealias", 
     "password" : "", 
     "keystoreType": "" 
    } 
}  

}

a następnie uruchomić to polecenie, aby wygenerować apk wydaniu:

cordova build android --release --buildConfig=build.json 

Do tej pory, to działa dobrze i zachęciło mnie to do wpisania zarówno haseł do magazynu kluczy, jak i aliasu. A potem zbudował apk ok.

Po aktualizacji do wersji Cordova 6.4.0 przestaje działać. Nigdy nie prosi o podanie haseł, a proces budowania kończy się niepowodzeniem, ponieważ "plik kluczy został zmodyfikowany lub hasło jest nieprawidłowe".

Dołączenie haseł do pliku build.json powoduje, że apk wydania jest generowany poprawnie, ponieważ ma już hasła i nie musi ich pytać.

Nie podoba mi się posiadanie hasła magazynu kluczy w postaci zwykłego tekstu w pliku build.json. Czy ktoś doświadczył tego samego problemu? Wszelkie pomysły, jak to naprawić?

Dzięki.

EDYCJA: Zauważyłem inny problem. Nie pokazuje moich ikon i ekranów powitalnych. EDIT: Ten ostatni problem, o nie pokazuje ikony i ekrany powitalne, jest to błąd w nowej wersji Cordova i to jest rozwiązane https://issues.apache.org/jira/browse/CB-12077

+0

Dlaczego upadek? Jest to ważna kwestia i nie znajduję odpowiedzi online. Właśnie zredagowałem pytanie i dodałem więcej szczegółów, na wypadek gdyby nie było wystarczająco jasne. – Vero

+0

Mam dokładnie ten sam problem (i), nie chcę też podawać mojego hasła w pliku build.json. Nie wiem, dlaczego ktoś głosował, ale jest to ważny problem. –

+1

Jeśli zmusisz Androida 6.1.0 do pliku config.xml, tak jak wspomniałeś w tym linku, rozwiąże on drugi problem. –

Odpowiedz

3

Ten problem został rozwiązany: https://issues.apache.org/jira/browse/CB-12159

Od teraz można używać cordova platform add [email protected] lub cordova platform add https://github.com/apache/cordova-android

Należy pamiętać, że drugie polecenie dodaje najnowszą wersję i może wprowadzić inne błędy ....

w przyszłości można użyć cordova platform add [email protected] ale jak teraz 6.2.0 nie istnieje. (Sprawdź tutaj: https://github.com/apache/cordova-android/releases)

1

Spróbuj zmienić build.gradle 'if (task.name == 'validateReleaseSigning') na if (task.name == 'assembleRelease').
Jest to prawdopodobnie związane z aktualizacją wersji gradle w najnowszych aktualizacjach na temat cordova-android.

Aktualizacja: Wydaje się, że validateReleaseSigning nazwa zadania została zmieniona na validateSigningRelease w nowszej wersji Gradle: \

Więc kwestia should be fixed w kolejnej wersji platformy (prąd 6.2.0-dev).

Aktualizacja # 2: PR został scalony, więc na razie możesz używać cordova platform add https://github.com/apache/cordova-android (uwaga na wersje niepublikowane).

+0

Może to rozwiązać problem, ale jest to tylko lokalnie i tymczasowo, ponieważ build.gradle jest odtwarzany po dodaniu/aktualizacji platformy ... To nie jest niezawodne ... –

+0

Tak, jest to rozwiązanie tymczasowe, dopóki ono (lub coś innego) jest popychany do repozytorium. Możesz teraz użyć widelca z tą zmianą. – daserge

1

Czy możesz umieścić swoje hasło w pliku build.json i sprawdzić, czy działa.

{ 
    "android": { 
    "release": { 
     "keystore": "path\\to\\keystore.keystore", 
     "storePassword": "password", 
     "alias": "alias", 
     "password" : "password", 
     "keystoreType": "" 
    } 
    } 
} 

Jestem w tej samej wersji co ty, a to jest mój build.json.

I potem po prostu zmienić, aby zwolnić i zbudować rozwiązanie, aby uzyskać release.apk

wiem cmd4life, przepraszam jeśli obraziłem!

+1

Jak powiedział, działa, ale nie jest to dobre rozwiązanie, ponieważ nie powinno się przechowywać hasła w tym pliku ... –

Powiązane problemy