Udostępnij za pośrednictwem


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:

  1. Połącz się z kontem usługi repozytorium (GitHub, Bitbucket, VSTS, Azure DevOps).
  2. Wybierz repozytorium i gałąź, w której znajduje się aplikacja.
  3. Wybierz projekt package.json , który chcesz skompilować.
  4. 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 projektupackage.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 .