Zbudowałem aplikację, mogę ją uruchomić na moim lokalnym emulatorze (a także na moim urządzeniu z Androidem w tej samej sieci, zmieniając serwer debugowania).
Chcę jednak zbudować pakiet APK, który mogę wysłać komuś bez dostępu do serwera programistycznego i chcę, aby mógł on testować aplikację.
Widzę, że jest sekcja Używanie pakietu offline w sekcji iOS dokumentacji. Ale nie mogłem wymyślić, jak to zrobić dla Androida. czy to możliwe? Jeśli tak to jak?
AKTUALIZACJA: W odpowiedzi na to pytanie ( Android nie załadował pakietu JS ) mówi się, że pakiet offline można pobrać z serwera programistycznego. Ale gdy otrzymam pakiet z serwera programowania, nie można załadować plików obrazów.
javascript
android
react-native
mobile-application
Gokhan Sari
źródło
źródło
Odpowiedzi:
Po odpowiedzi Adityi Singh wygenerowany (niepodpisany) apk nie zainstaluje się na moim telefonie. Musiałem wygenerować podpisany apk, korzystając z instrukcji tutaj .
Dla mnie działało:
Umieść
my-release-key.keystore
plik wandroid/app
katalogu w folderze projektu. Następnie edytuj plik~/.gradle/gradle.properties
i dodaj następujące elementy (zastąp **** poprawnym hasłem do pliku kluczy, aliasem i hasłem klucza)Jeśli używasz systemu MacOS, możesz przechowywać hasło w pęku kluczy, postępując zgodnie z instrukcjami tutaj, zamiast przechowywać je w postaci zwykłego tekstu.
Następnie edytuj aplikację / build.gradle i upewnij się, że są tam następujące (może być konieczne dodanie sekcji z signingConfigs signingConfig):
Następnie uruchom polecenie
cd android && ./gradlew assembleRelease
,W systemie Windows „cd android”, a następnie uruchom
gradlew assembleRelease
polecenie i znajdź podpisany apk podandroid/app/build/outputs/apk/app-release.apk
źródło
Musisz utworzyć klucz, aby podpisać apk. Użyj poniżej, aby utworzyć swój klucz:
Po wyświetleniu monitu użyj hasła
Po wygenerowaniu klucza użyj go do wygenerowania instalowalnej kompilacji:
Wygeneruj kompilację za pomocą gradna
Prześlij pakiet APK na swój telefon.
-r
Flag zastąpi istniejącą aplikację (jeśli istnieje)Bardziej szczegółowy opis znajduje się tutaj: https://facebook.github.io/react-native/docs/signed-apk-android.html
AKTUALIZACJA : Na podstawie komentarzy @shashuec i @Fallen
jeśli pojawi się błąd
uruchom mkdir android / app / src / main / asset
źródło
react-native bundle
część. Dziękuję za odpowiedź!gradlew.bat assembleRelease
.Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
. kiedy próbuję zainstalować apk.ENOENT: no such file or directory, open 'android/app/src/main/assets/index.android.bundle'
mkdir android/app/src/main/assets
W tym procesie powinieneś po prostu użyć Androida Studio. To jest po prostu prostsze. Ale najpierw uruchom to polecenie w swoim katalogu aplikacji natywnej:
Dla nowszej wersji React-Native (np. React Native 0.49.0 i tak dalej ...)
Dla starszej wersji React-Native (0.49.0 i poniżej)
Następnie użyj Android studio, aby otworzyć folder „android”, w którym zareagujesz na natywny katalog aplikacji, poprosi o aktualizację gradle i kilka innych rzeczy. przejdź do build-> Wygeneruj podpisany APK i postępuj zgodnie z instrukcjami. To naprawdę proste.
źródło
Uruchom to polecenie:
źródło
cd android && ./gradlew installRelease
i dostałem ten błądTask 'assembleRelease.' not found in root project 'project'. Some candidates are: 'assembleRelease'.
dla React Native 0.49 i nowszych
powinieneś przejść do katalogu projektu na terminalu i uruchomić tę komendę
jeśli poniżej 0,49
Następnie użyj Android studio, aby otworzyć folder „android”, w którym zareagujesz na natywny katalog aplikacji, poprosi o aktualizację gradle i kilka innych rzeczy. przejdź do build-> Wygeneruj podpisany APK i postępuj zgodnie z instrukcjami. To dobrze.
źródło
Jeśli masz
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
.Próbowałem użyć metody @ Aditya do wygenerowania niepodpisanego pliku APK i zainstalowania go, ale kiedy poszedłem go zainstalować na moim tablecie z Androidem, wystąpił błąd
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
.Wyobrażam sobie, że dzieje się tak, ponieważ plik APK nie został podpisany, a tablet nie był z tego zadowolony. Po wygenerowaniu pliku pakietu React Native byłem w stanie wygenerować podpisany plik APK, jak zwykle, za pośrednictwem Android Studio.
Nawiasem mówiąc, nasza aplikacja jest w pełni działającą aplikacją na Androida, która już istnieje w Sklepie Play, a my dodajemy do niej React Native w kawałkach wielkości kęsa, ponieważ jest niesamowity.
Podsumowując, oto moje kroki:
1) Generuj pakiet React Native:
2) Wygeneruj podpisany plik APK z Android Studio.
3) Zainstaluj podpisany plik APK na urządzeniu USB:
-d
Flaga tylko mówiadb
do zainstalowania na urządzeniu USB załączonym, w przypadku gdy masz emulator działa tak dobrze. Jeśli chcesz zainstalować na dowolnym emulatorze, upuść-d
flagę.4) Zysk!
źródło
Spróbuj poniżej, wygeneruje app-debug.apk w folderze root / android / app / build / Output / apk / debug
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
następnie przejdź do folderu Androida i uruchom
./gradlew assembleDebug
źródło
Jeśli ktoś chce budować bez kluczy playstore, to polecenie byłoby bardzo pomocne.
# react-native run-android --variant=release
Po zakończeniu kompilacji możesz znaleźć apk w pliku kompilacji wydania.
źródło
Przejdź do katalogu projektu i uruchom polecenie:
źródło
Jeśli pojawi się błąd związany z plikiem index.android.js. Wynika to z faktu, że używasz nowej wersji natywnej React (używam wersji 0.55.4). Po prostu zamień „index.android.js” na „index.js”
źródło
Mam inne rozwiązanie: - Generowanie klucza podpisu Możesz wygenerować prywatny klucz podpisu za pomocą keytool. W systemie Windows keytool należy uruchomić z C: \ Program Files \ Java \ jdkx.x.x_x \ bin.
Umieść plik my-release-key.keystore w katalogu android / app w folderze projektu.
Edytuj plik android / app / build.gradle w folderze projektu i dodaj konfigurację podpisywania,
i biegnij
To da ci dwa pliki na Android \ app \ build \ wyjścia \ apk app-release.apk i app-release-unsigned.apk teraz zainstaluj app-release.apk na urządzeniu z Androidem.
źródło
Mam nadzieję, że pomoże nowym początkującym
Oficjalny dokument tutaj
Jeśli nie masz magazynu kluczy niż użyj przed komendą, pomiń
Generowanie klucza podpisu / pliku kluczy Można wygenerować prywatny klucz podpisu za pomocą keytool. W systemie Windows keytool należy uruchomić z C: \ Program Files \ Java \ jdkx.x.x_x \ bin.
otrzymasz plik taki jak my-release-key.keystore
Konfigurowanie zmiennych stopni Umieść plik my-release-key.keystore w katalogu android / app w folderze projektu. Zmodyfikuj plik android / gradle.properties i dodaj następujące elementy (zamień ***** na prawidłowe hasło magazynu kluczy, alias i hasło klucza), obejdź ustawienie enableAapt2 ustawione na fałsz, ponieważ problem dotyczy wersji 3.0 Androida
następnie dodaj te app / buid.gradle (app)
poniżej domyślnej konfiguracji
oraz wersja typu Inside Build {}
następnie po prostu uruchom to polecenie w terminalu Android Studio Poniższe polecenia zautomatyzują przede wszystkim odpowiedzi
jeśli Windows
jeśli linux / mac
jeśli wystąpi błąd, usuń cały folder kompilacji i uruchom polecenie
niż znowu
źródło
gradle clean
... Walczyłem z tym przez jakiś czas, otrzymując te błędy kompilacji, dziękuję bardzo za tę odpowiedź !!Najnowsze reakcje natywnych wersji w pakiecie projektu
Android
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
iOS
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
źródło
Sposób GUI w Android Studio
źródło
Użycie aplikacji Android Studio do wygenerowania podpisanego pliku APK dla projektu React's Android jest również dobrą i łatwą opcją, otwarcie projektu Android React w aplikacji Android Studio i wygenerowanie naciśnięcia klawisza i podpisanego APK.
źródło
Zapoznaj się z oficjalną dokumentacją reagującą na temat generowania podpisanego APK
Generowanie podpisanego APK przez React-Native
źródło