Jak mogę lokalnie zbudować aplikację na Androida za pomocą interfejsu wiersza polecenia Phonegap 3.x, gotową do wydania? Sprawdzam folder bin wygenerowany w katalogu platform / android projektu i ma tylko pliki APK .debug.
Nawiasem mówiąc, używam tego polecenia: phonegap local build android
źródło
<application android:debuggable="true"...
zmienić na<application android:debuggable="false"
/path/to/your/project/platforms/android/ant-build
W PhoneGap 3.4.0 możesz zadzwonić:
Jeśli skonfigurowałeś plik „ant.properties” w katalogu „platform / android” w następujący sposób:
Następnie zostaniesz poproszony o podanie hasła do magazynu kluczy, a plik wyjściowy (myapp-release.apk) trafi do katalogu „platform / android / ant-build” już podpisanego, wyrównanego i gotowego do wdrożenia.
źródło
ant.properties
wplatforms/android
i właśnie te dwie właściwości spadła do niego. Działa idealnie, dzięki!In cordova 6.2.0
Poprzednia odpowiedź:
Według Cordova 5.0.0
i uruchom
./build --release --buildConfig build.json
z kataloguplatforms/android/cordova/
Lokalizacja pliku kluczy jest względna
platforms/android/cordova/
, więc w powyższym.keystore
pliku konfiguracyjnym ibuild.json
znajdują się w tym samym katalogu.keytool -genkey -v -keystore app-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
źródło
Kontynuując do @ steven-anderson, możesz również skonfigurować hasła wewnątrz ant.properties, dzięki czemu proces może być w pełni zautomatyzowany
więc jeśli umieścisz platform \ android \ ant.properties, co następuje
źródło
po prostu dużo się zastanawiałem, ponieważ mam ten sam problem, ale w mojej instalacji polecenie „cordova” nigdy nie było dostępne, a „phone gap build android --release” po prostu ignorowało platformę / android / ant.properties.
więc zaglądając do mojego filtra platformy znalazłem folder o nazwie "cordova", aw nim był plik binarny "build", który zaakceptował argument --release, poprosił mnie o breloczki i zakończyłem podpisanym i gotowym do produkcji APK.
to nigdy nie zostało udokumentowane w żadnej części strony z lukami telefonicznymi i szczerze mówiąc teraz trochę nienawidzę telefonowania :( miało to ułatwić, ale wszystko było po prostu skomplikowane :(
źródło
Te kroki będą działać w przypadku Cordova, PhoneGap lub Ionic. Jedyna różnica polegałaby na tym, że gdziekolwiek zostanie wykonane połączenie
cordova
, zamień je naphonegap
lubionic
, dla swojego konkretnego scenariusza.Gdy zakończysz tworzenie i będziesz gotowy do wdrożenia, wykonaj następujące kroki:
Otwórz okno wiersza poleceń (Terminal w systemie macOS i Linux LUB Wiersz polecenia w systemie Windows).
Udaj się do / path / to / your / project /, który nazywamy katalogiem głównym projektu.
Będąc w katalogu głównym projektu, usuń wtyczkę „Console” z zestawu wtyczek.
Polecenie to:
cordova plugin rm cordova-plugin-console
Będąc nadal w katalogu głównym projektu, użyj polecenia build cordova, aby utworzyć pakiet APK do dystrybucji wydania.
Polecenie to:
cordova build --release android
Powyższy proces tworzy plik o nazwie
android-release-unsigned.apk
w folderzeProjectRoot/platforms/android/build/outputs/apk/
Podpisz i wyrównaj APK, korzystając z instrukcji podanych na https://developer.android.com/studio/publish/app-signing.html#signing-manually
Na końcu tego kroku plik APK, który otrzymasz, można przesłać do Sklepu Play .
Uwaga: jako nowicjusza lub początkującego ostatni krok może być nieco zagmatwany, tak jak dla mnie. Można napotkać kilka problemów i mieć pytania dotyczące tego, czym są te polecenia i gdzie je znaleźć.
Q1. Co to jest jarsigner i keytool ?
Odp: Instrukcje podpisywania aplikacji na Androida mówią dokładnie, o co chodzi w jarsigner i keytool, ALE nie mówi ci, gdzie je znaleźć, jeśli napotkasz ` ` błąd nie znaleziono polecenia '' w oknie wiersza poleceń.
Tak więc, jeśli masz Java Development Kit (JDK) dodany do zmiennej PATH , po prostu uruchom polecenia tak, jak w Przewodniku. ALE, jeśli nie masz go w swojej PATH, zawsze możesz uzyskać do nich dostęp z folderu bin instalacji JDK.
Q2. Gdzie jest zipalign ?
Odp: Istnieje duże prawdopodobieństwo, że polecenie zipalign nie zostanie znalezione i nie zostanie wyświetlony komunikat „Nie znaleziono polecenia”. Prawdopodobnie szukałbyś w Google zipalign i gdzie go znaleźć?
Narzędzie zipalign znajduje się w folderze instalacyjnym Android SDK. Na MacOS, domyślna lokalizacja jest,
user-name/Library/Android/sdk/
. Jeśli udać się do folderu, można znaleźć kilka innych folderów, takich jakdocs
,platform-tools
,build-tools
,tools
,add-ons
...Otwórz w
build-tools
folderze.cd build-tools
. W tym miejscu byłoby kilka folderów, które są wersjonowane zgodnie z łańcuchem narzędzi do kompilacji, którego używasz w Menedżerze Android SDK. ZipAlignjest dostępny w każdym z tych folderów. Osobiście sięgam po folder z najnowszą wersją. Otwórz dowolne.W systemie MacOS lub Linux może być konieczne użycie
./zipalign
zamiast zwykłego wpisywania,zipalign
jak wspomniano w dokumentacji. W systemie Windowszipalign
jest wystarczająco dobry.źródło
Mam to do pracy, kopiując, wklejając podpisaną aplikację w tym samym katalogu, co zipalign. Wygląda na to, że aapt.exe nie mógł znaleźć pliku źródłowego, nawet jeśli podano mu ścieżkę. tzn. to nie zadziałało. zipalign -f -v 4 C: ... \ CordovaApp-release-unsigned.apk C: ... \ destination.apk osiągnął aapt.exeCordovaApp-release-unsigned.apk, zamarł i po naciśnięciu powrotu „aapt.exeCordovaApp-release-unsigned.apk” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy. I to zrobiło zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk
źródło
Wiem, że to pytanie dotyczy konkretnie Phonegap 3.X, ale dla odniesienia każda wersja Phonegap powyżej 4.0.0 domyślnie używa Gradle zamiast Ant do kompilacji. Aby użyć Ant zamiast Gradle, możesz dodać to do pliku config.xml:
Podczas korzystania z Gradle informacje dotyczące podpisywania magazynu kluczy muszą teraz zostać przeniesione do nowej lokalizacji ( jak opisano w tym poście ). Utwórz nowy plik o nazwie „ release-signing.properties ” w tym samym folderze co plik „build.gradle” i umieść w nim następującą zawartość:
źródło
Możesz wypróbować to polecenie, powinno zbudować i uruchomić aplikację (więc powinno zostać utworzone .apk):
phonegap local run android
źródło