Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Konfigurowanie kompilacji systemu React Native iOS w usłudze App Center

Ważne

Program Visual Studio App Center ma zostać wycofany 31 marca 2025 r. Chociaż możesz 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 napisane w React Native w wersji 0.34 lub nowszej.

Aby utworzyć aplikację React Native dla systemu iOS:

  1. Nawiąż połączenie z kontem usługi repozytorium (na przykład: Azure DevOps, Bitbucket, GitHub lub VSTS).
  2. Wybierz repozytorium i gałąź, w której znajduje się aplikacja.
  3. Skonfiguruj projekt lub obszar roboczy kompilacji oraz schemat, który chcesz skompilować.

Uwaga

Aby aplikacja działała na rzeczywistym urządzeniu, kompilacja musi być podpisana kodem z prawidłowym profilem aprowizacji i certyfikatem.

1. Łączenie repozytorium

Najpierw połącz konto usługi repozytorium z Centrum aplikacji. Po nawiązaniu połączenia z kontem wybierz repozytorium, w którym znajduje się projekt systemu iOS. Musisz mieć uprawnienia administratora i ściągania dla repozytorium.

2. Wybieranie gałęzi

Po wybraniu repozytorium wybierz gałąź, którą chcesz skompilować. Domyślnie zostaną wyświetlone wszystkie aktywne gałęzie.

3. Konfigurowanie pierwszej kompilacji

Przed pierwszą kompilacją należy skonfigurować projekt React Native.

3.1. Project

Wybierz projekt package.json. Usługa App Center automatycznie wykryje skojarzony projekt/obszar roboczy programu Xcode.

3.2. Wersja programu Xcode

Wybierz wersję programu Xcode, aby uruchomić kompilację z listy rozwijanej. Jeśli przełącznik "Użyj starszego systemu kompilacji" to On, starszy system kompilacji będzie używany niezależnie od ustawień projektu lub obszaru roboczego. Jeśli przełącznik "Użyj starszego systemu kompilacji" to Off, zostanie użyta konfiguracja systemu kompilacji z projektu lub obszaru roboczego.

Uwaga

  • Ustawienie obszaru roboczego powinno zostać zatwierdzone w repozytorium
  • Jeśli ustawienie obszaru roboczego nie zostanie zatwierdzone, zostanie użyty nowoczesny system kompilacji

3.3. wersja Node.js

Wybierz wersję Node.js do użycia dla kompilacji. Dowiedz się więcej na temat wybierania wersji Node.js

3.4. Wyzwalacze kompilacji

Domyślnie nowa kompilacja jest wyzwalana za każdym razem, gdy deweloper wypycha do skonfigurowanej gałęzi. Jeśli wolisz ręcznie wyzwolić nową kompilację, możesz zmienić to ustawienie w okienku konfiguracji.

3.5. Numer kompilacji przyrostowej

Po włączeniu w CFBundleVersion pliku Info.plist projektu aplikacja automatycznie zwiększa się dla każdej kompilacji. Zmiana jest wykonywana przed kompilacją i nie zostanie zatwierdzona w repozytorium.

3.6. Podpisywanie kodu

Pomyślna kompilacja .ipa generuje plik. Aby zainstalować kompilację na urządzeniu, kompilacja musi być podpisana przy użyciu prawidłowego profilu aprowizacji i certyfikatu. Aby podpisać kompilacje utworzone z gałęzi, włącz podpisywanie kodu w okienku konfiguracji i przekaż profil aprowizacji (.mobileprovision plik) oraz prawidłowy certyfikat (p12) wraz z hasłem dla certyfikatu.

Ustawienia w projekcie Xcode muszą być zgodne z przekazywanymi plikami. Przeczytaj więcej na temat podpisywania kodu systemu iOS w usłudze App Center i dokumentacji dla deweloperów firmy Apple.

Podpisywanie aplikacji za pomocą rozszerzeń aplikacji lub systemu watchOS wymaga dodatkowego profilu aprowizacji dla każdego rozszerzenia.

3.7. Uruchamianie pomyślnej kompilacji na rzeczywistym urządzeniu

Użyj nowo utworzonego .ipa pliku, aby sprawdzić, czy aplikacja jest uruchamiana na rzeczywistym urządzeniu. Test uruchamiania dodaje około 10 minut do łącznego czasu kompilacji. Przeczytaj więcej na temat konfigurowania testów uruchamiania.

3.8. CocoaPods

Usługa App Center skanuje wybraną gałąź i jeśli znajdzie plik Podfile, automatycznie wykona pod install krok na początku każdej kompilacji. Gwarantuje to, że wszystkie zależności są zainstalowane.

3.9. Dystrybuowanie do grupy dystrybucyjnej

Skonfiguruj każdą pomyślną kompilację z gałęzi, która ma być dystrybuowana do wcześniej utworzonej grupy dystrybucyjnej. Dodaj nową grupę dystrybucyjną z sekcji Dystrybucja. Zawsze istnieje domyślna grupa dystrybucyjna o nazwie "Współpracownicy", która obejmuje wszystkich użytkowników, którzy mają dostęp do aplikacji.

Po zapisaniu konfiguracji zostanie automatycznie uruchomiona nowa kompilacja.

4. Wyniki kompilacji

Kompilacje mogą być w jednym z następujących stanów:

  • queued — kompilacja jest w kolejce oczekujących na dostępne zasoby
  • kompilowanie — kompilacja jest uruchomiona i wykonuje wstępnie zdefiniowane zadania
  • powodzenie — kompilacja została ukończona pomyślnie
  • niepowodzenie — kompilacja zakończyła się niepowodzeniem; rozwiązywanie problemów z problemami, pobierając i sprawdzając dziennik kompilacji
  • anulowano — kompilacja została anulowana za pośrednictwem akcji 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> (e.g. 2_Get Sources.txt)
    |-- <build-step-2> (e.g. 3_Pod install.txt)
    |--
    |-- <build-step-n> (e.g. n_Post Job Cleanup.txt)

Dzienniki 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 (.ipa)

Plik .ipa jest plikiem archiwum aplikacji dla telefonu iPhone, który zawiera aplikację dla systemu iOS.

  • Jeśli kompilacja została podpisana poprawnie, możesz zainstalować .ipa plik na rzeczywistym urządzeniu dołączonym do profilu aprowizacji używanego podczas podpisywania. Więcej szczegółowych informacji na temat podpisywania i dystrybucji kodu za pomocą usługi App Center można znaleźć w dokumentacji podpisywania kodu w usłudze App Center dla systemu iOS.
  • Jeśli kompilacja nie jest podpisana podczas kompilacji, deweloperzy mogą podpisać .ipa plik (lokalnie przy użyciu codesign) lub użyć go do innych celów (na przykład przekazać do usługi Test na potrzeby testowania interfejsu użytkownika na rzeczywistych urządzeniach lub uruchomić w symulatorze).
  • Niepodpisane kompilacje nie generują .ipa pliku. Artefakt niepodpisanej kompilacji to .xcarchive plik, którego można użyć do wygenerowania .ipa pliku za pomocą organizatora Xcode Archives.

4.3. Mapy źródłowe i pliki symboli

Podczas tworzenia React Native aplikacji dla systemu iOS mapa źródłowa JavaScript i jeden lub wiele .dsym plików są generowane automatycznie przy użyciu każdej kompilacji i można je pobrać po zakończeniu kompilacji.

  • Jeśli wcześniej zintegrowano zestaw SDK centrum aplikacji w aplikacji z włączonym modułem raportowania awarii, sygnał nawigacyjny raportowania awarii wymaga tego .dsym pliku i mapy źródłowej języka JavaScript dla kompilacji w celu wyświetlania raportów awarii możliwych do odczytania przez człowieka (symboliczne).
  • Jeśli wcześniej zintegrowano inny zestaw SDK na potrzeby raportowania awarii w aplikacji, odpowiednia usługa wymaga .dsym pliku i mapy źródłowej języka JavaScript w celu wyświetlenia raportów awarii możliwych do odczytania przez człowieka (symboliczne).

Należy pamiętać, że .dsym plik nie zmienia się podczas podpisywania .ipakodu . Jeśli zdecydujesz się na podpisanie kodu kompilacji później, .dsym wygenerowany przed podpisaniem kodu będzie nadal prawidłowy.

Jeśli ta aplikacja zawiera zestaw SDK awarii, symbole systemu iOS i mapy źródłowe zostaną wysłane do usługi App Center Crash. Symbole umożliwią czytelne (symboliczne) raporty o awariach zarówno natywnych, jak i JavaScript.

5. Porady dotyczące kompilacji

5.1. Przędzy

Yarn to szybsze, bardziej deterministyczne zastąpienie elementu npm. yarn.lock Jeśli plik znajduje się w repozytorium obok package.jsonpolecenia , usługa App Center użyje narzędzia Yarn, wykonując yarn install czynności na początku kompilacji. W przeciwnym razie zrobi to .npm install

5.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 . Spowoduje to automatyczne wykonanie po zainstalowaniu zależności.

      "scripts": {
        ...
        "postinstall" : "eslint ./" // other examples: "node ./postinstall.js" or "./postinstall.sh"
      },
    
  • Pisanie skryptu powłoki przy użyciu niestandardowych funkcji 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: Create a file that's not in version control (from base64 encoded environment variable)
    base64 -d <<< "$MY_FILE_CONTENTS" > ios/SuperSecretFile.txt