Kompilowanie aplikacji React Native dla systemu Android
Ważne
Program Visual Studio App Center ma zostać wycofany 31 marca 2025 r. Mimo że można nadal używać programu Visual Studio App Center do momentu jego pełnego wycofania, istnieje kilka zalecanych alternatyw, do których można rozważyć migrację.
Dowiedz się więcej o osiach czasu pomocy technicznej i alternatywach.
Usługa App Center może tworzyć aplikacje react native przy użyciu oprogramowania React Native w wersji 0.34 lub nowszej.
Aby rozpocząć tworzenie pierwszej aplikacji React Native dla systemu Android, musisz:
- Połącz się z kontem usługi repozytorium (GitHub, Bitbucket, VSTS, Azure DevOps).
- Wybierz repozytorium i gałąź, w której znajduje się aplikacja.
- Wybierz projekt
package.json
, który chcesz skompilować. - Skonfiguruj pierwszą kompilację.
Uwaga
Aby aplikacja działała na rzeczywistym urządzeniu, kompilacja musi być podpisana kodem z prawidłowym certyfikatem.
1. Łączenie repozytorium
Jeśli wcześniej nie nawiązaliśmy połączenia z kontem usługi repozytorium, najpierw musisz to zrobić. Po nawiązaniu połączenia z kontem wybierz repozytorium, w którym znajduje się projekt React Native. Aby skonfigurować kompilację dla repozytorium, musisz mieć uprawnienia administratora i ściągania.
2. Wybieranie gałęzi
Po wybraniu repozytorium wybierz gałąź, którą chcesz skompilować. Domyślnie centrum aplikacji wyświetla listę wszystkich aktywnych gałęzi.
3. Konfigurowanie pierwszej kompilacji
Przed pierwszą kompilacją należy skonfigurować projekt React Native.
3.1. Projekt
Wybierz projekt .package.json
Usługa App Center automatycznie wyodrębni informacje ze skojarzonego pliku build.gradle (poziomu aplikacji), w tym zależności, wersji narzędzi kompilacji, typów kompilacji i smaków produktów.
Uwaga
Aby uzyskać najlepszą wydajność, analiza jest obecnie ograniczona do czterech poziomów katalogu, w tym katalogu głównego repozytorium.
3.2. Wariant kompilacji
Dostępne warianty kompilacji zostaną wypełnione z plików Build Types and Product Flavors określonych w pliku build.gradle (poziom aplikacji). Wybierz wariant kompilacji, który ma zostać skompilowany.
Uwaga
Kompilacja usługi App Center obsługuje znajdowanie wariantów kompilacji jako kombinacji typu kompilacji (debugowania, wydania lub niestandardowego) i jednej opcjonalnej odmiany produktu. Wykrywanie kombinacji wielu smaków produktów nie jest obecnie obsługiwane.
3.3. wersja Node.js
Wybierz wersję Node.js do użycia dla kompilacji Dowiedz się więcej o tym, jak wybrać wersję Node.js
3.4. Wyzwalacze kompilacji
Domyślnie nowa kompilacja jest wyzwalana za każdym razem, gdy deweloper wypycha do skonfigurowanej gałęzi. Jest to nazywane "ciągłą integracją". Jeśli wolisz ręcznie wyzwolić nową kompilację, możesz zmienić to ustawienie w okienku konfiguracji.
3.5. Tworzenie pakietu aplikacji systemu Android (aab)
Pakiet aplikacji systemu Android to format dystrybucji, który można przekazać do Sklepu Play. Służy do generowania zoptymalizowanych zestawów API dla określonych urządzeń. Więcej informacji na temat pakietu aplikacji dla systemu Android można znaleźć w oficjalnej dokumentacji systemu Android, co pomaga również zrozumieć, czy chcesz utworzyć pakiet wraz ze zwykłymi elementami .apk.
Przełącz opcję pakietu aplikacji dla systemu Android, aby utworzyć element .aab
oprócz elementu .apk
. build.gradle
Jeśli plik (poziom aplikacji) zawiera android.bundle
blok, ta opcja zostanie automatycznie włączona.
3.6. Numer wersji przyrostowej
Po włączeniu kod wersji w AndroidManifest.xml aplikacji automatycznie zwiększa się dla każdej kompilacji. Zmiana odbywa się podczas rzeczywistej kompilacji i nie zostanie zatwierdzona w repozytorium.
3.7. Uruchamianie pomyślnej kompilacji na rzeczywistym urządzeniu
Użyj nowo utworzonego pliku APK, aby sprawdzić, czy aplikacja zostanie uruchomiona na rzeczywistym urządzeniu. Uruchamianie testów spowoduje dodanie około 10 minut do łącznego czasu kompilacji. Przeczytaj więcej na temat konfigurowania testów uruchamiania.
3.8. Podpisywanie kodu
Pomyślna kompilacja spowoduje utworzenie .apk
pliku i dodatkowego .aab
pliku, jeśli zostanie włączony. Aby wydać kompilację do Sklepu Play, musi być podpisana przy użyciu prawidłowego certyfikatu przechowywanego w magazynie kluczy. Aby podpisać kompilacje utworzone z gałęzi, włącz podpisywanie kodu w okienku konfiguracji, przekaż magazyn kluczy do repozytorium i podaj odpowiednie wartości w okienku konfiguracji. Więcej informacji na temat dokumentacji podpisywania kodu w usłudze App Center dla systemu Android znajdziesz w dokumentacji podpisywania kodu systemu Android. Zostanie .aab
podpisany przy użyciu tych samych poświadczeń co ..apk
3.9. Dystrybuowanie kompilacji
Można skonfigurować każdą pomyślną kompilację z gałęzi, która ma być dystrybuowana do wcześniej utworzonej grupy dystrybucyjnej lub miejsca docelowego magazynu. Możesz dodać nową grupę dystrybucyjną lub skonfigurować połączenie magazynu z poziomu usługi rozproszonej. Zawsze istnieje domyślna grupa dystrybucyjna o nazwie "Współpracownicy", która obejmuje wszystkich użytkowników, którzy mają dostęp do aplikacji.
Uwaga
W przypadku dystrybucji do Sklepu Google Play preferowany jest pakiet aplikacji systemu Android (.aab
) i będzie dystrybuowany, jeśli jest włączony. W przypadku grup dystrybucyjnych usługi App Center i miejsc docelowych sklepów usługi Intune regularne .apk
będą używane nawet wtedy, gdy .aab
element zostanie również wygenerowany.
4. Wyniki kompilacji
Po wyzwoleniu kompilacji kompilacja będzie znajdować się w jednym z następujących stanów:
- queued — kompilacja znajduje się w kolejce czekającej na zwolnienie zasobów
- building — kompilacja uruchamia wstępnie zdefiniowane zadania
- powodzenie — kompilacja została ukończona i zakończyła się pomyślnie
- niepowodzenie — kompilacja została ukończona, ale zakończyła się niepowodzeniem. Możesz rozwiązać problem, pobierając i sprawdzając dziennik kompilacji
- anulowano — kompilacja została anulowana przez akcję użytkownika lub upłynął limit czasu
4.1. Dzienniki kompilacji
W przypadku ukończonej kompilacji (zakończonej powodzeniem lub niepowodzeniem) pobierz dzienniki, aby dowiedzieć się więcej na temat sposobu działania kompilacji. Usługa App Center udostępnia archiwum z następującymi plikami:
|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
|-- <build-step-1>
|-- <build-step-2>
|--
|-- <build-step-n> (e.g. n_Post Job Cleanup.txt)
Dzienniki specyficzne dla kroku kompilacji (znajdujące się w build/
katalogu archiwum) są przydatne do rozwiązywania problemów i zrozumienia, w jakim kroku i dlaczego kompilacja nie powiodła się.
4.2. Aplikacja (.apk)
Plik .apk
jest spakowanym plikiem aplikacji systemu Android, który przechowuje aplikację systemu Android. Jeśli kompilacja została poprawnie podpisana, aplikację można zainstalować na rzeczywistym urządzeniu i wdrożyć w Sklepie Play. Jeśli kompilacja nie została podpisana, aplikacja może działać w emulatorze lub być używana do innych celów.
5. Obsługiwane wersje i wymagania
Minimalna wersja obsługiwana do tworzenia aplikacji systemu Android to 5.0 (poziom 21 interfejsu API). Aplikacje systemu Android mogą mieć niższy minimalny poziom interfejsu API wymagany do uruchomienia, ale musi być przeznaczony dla co najmniej poziomu 21 interfejsu API.
6. Porady dotyczące kompilacji
6.1. Przędza
Menedżer pakietów Yarn jest szybszym, bardziej deterministycznym zastąpieniem elementu npm
. yarn.lock
Jeśli plik znajduje się w repozytorium obok package.json
, usługa App Center użyje narzędzia Yarn, wykonując czynności yarn install
na początku kompilacji. W przeciwnym razie będzie to robić npm install
.
6.2. Niestandardowe skrypty kompilacji
Istnieje kilka opcji uruchamiania skryptów przed wykonaniem domyślnych poleceń kompilacji centrum aplikacji.
Utwórz skrypt postinstalacji w pliku projektu
package.json
. Ten skrypt zostanie wykonany automatycznie po zainstalowaniu zależności."scripts": { ... "postinstall" : "npx jetify" // other examples: "node ./postinstall.js" or "./postinstall.sh" },
Pisanie skryptu powłoki przy użyciu niestandardowych skryptów kompilacji centrum App Center.
#!/usr/bin/env bash # Example: Authenticate with private NPM registry echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc # Example: Add your signing key file (from base64 encoded environment variable) base64 -d <<< "$ANDROID_JSON_KEY_FILE" > android/keystores/json_key_file.json
6.3. Kompilowanie wielu zestawów API
W przypadku oprogramowania React Native w systemie Android domyślnie jest wyłączone uniwersalne generowanie pakietu APK. Jeśli konfiguracja aplikacji została skonfigurowana do kompilowania wielu zestawów API, na przykład różnych na architekturę procesora CPU lub konfigurację ekranu, należy upewnić się, że jest również zbudowany uniwersalny plik APK. System kompilacji usługi App Center współpracuje z jednym głównym plikiem APK i zignoruje wszystkie interfejsy API specyficzne dla określonego procesora CPU/ABI lub gęstości ekranu.
Aby dowiedzieć się więcej o podziałach apk i sposobie tworzenia uniwersalnego pakietu APK, przeczytaj odpowiedni przewodnik dla deweloperów systemu Android. W związku z tym upewnij się, że universalApk
dla konfiguracji kompilacji react native ustawiono wartość true
.