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:
- Nawiąż połączenie z kontem usługi repozytorium (na przykład: Azure DevOps, Bitbucket, GitHub lub VSTS).
- Wybierz repozytorium i gałąź, w której znajduje się aplikacja.
- 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.
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.
Po wybraniu repozytorium wybierz gałąź, którą chcesz skompilować. Domyślnie zostaną wyświetlone wszystkie aktywne gałęzie.
Przed pierwszą kompilacją należy skonfigurować projekt React Native.
Wybierz projekt package.json
. Usługa App Center automatycznie wykryje skojarzony projekt/obszar roboczy 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
Wybierz wersję Node.js do użycia dla kompilacji. Dowiedz się więcej na temat wybierania wersji Node.js
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.
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.
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.
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.
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.
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.
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
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ę.
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.
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 .ipa
kodu . 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.
Yarn to szybsze, bardziej deterministyczne zastąpienie elementu npm
. yarn.lock
Jeśli plik znajduje się w repozytorium obok package.json
polecenia , 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
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