Udostępnij za pośrednictwem


Skrypty kompilacji

Ważne

Program Visual Studio App Center ma zostać wycofany 31 marca 2025 r. Mimo że możesz nadal używać programu Visual Studio App Center do momentu jej 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.

Uwaga

Skrypty kompilacji umożliwiają dostosowywanie kompilacji; ale problemy występujące podczas tego procesu wykraczają poza zakres pomocy technicznej centrum aplikacji. Jeśli jeden ze skryptów kończy się niepowodzeniem, cała kompilacja zgłosi błąd, nawet jeśli kompilacja podstawowa do tego punktu zakończyła się pomyślnie.

Niestandardowe skrypty kompilacji, które są uruchamiane na wstępnie zdefiniowanych etapach w czasie kompilacji: po sklonowania, przed kompilacją, po kompilacji. Umieść skrypty w formacie określonym poniżej obok pliku na poziomie projektu (.xcodeproj, .csproj, .slnlub package.json) lub pliku na poziomie modułu (build.gradle) wybranego w konfiguracji kompilacji i uruchomimy je jako niestandardowe kroki kompilacji.

W centrum aplikacji aplikacje inne niż uwP są tworzone w systemie macOS, dzięki czemu mogą używać skryptów powłoki Bash. Aplikacje platformy UNIWERSALNEJ systemu Windows są oparte na systemie Windows, dzięki czemu mogą używać skryptów programu PowerShell. Wiele podobnych zadań można wykonać w obu formatach skryptów, ale w przypadku migracji między nimi może być konieczne przeprowadzenie konwersji. Na przykład powłoka Bash systemu macOS wymaga użycia zakończeń linii w stylu systemu UNIX (LF).

Kolekcję przykładów skryptów kompilacji można znaleźć w dedykowanym publicznym repozytorium GitHub. Możesz korzystać z przykładowych skryptów, modyfikować je lub przesyłać nowe żądania ściągnięcia za pomocą najbardziej przydatnych skryptów do użytku w pozostałej części społeczności.

Ostrzeżenie

Gdy usługa App Center wykryje skrypty kompilacji po raz pierwszy lub zmieni lokalizację skryptów lub zmienisz miejsce przechowywania cocoaPods; Zmiany należy zastosować, klikając przycisk Zapisz lub Zapisz & kompilacji w konfiguracji kompilacji. W takim przypadku centrum aplikacji uruchamia analizę, aby indeksować drzewo repozytorium i aktualizować definicję kompilacji.

Zapisanie wykrytych skryptów

Po sklonowanie

Skrypt po sklonowania jest uruchamiany natychmiast po sklonowanym repozytorium, ale zanim zrobimy coś innego na naszym końcu.

Aby uruchomić skrypty po sklonowaniach, dodaj następujący plik obok pliku projektu w repozytorium:

  • appcenter-post-clone.sh (powłoka Bash dla systemu iOS & Android)

    #!/usr/bin/env bash
    
    # Example: Clone a required repository
    git clone https://github.com/example/SomeProject
    
    # Example: Install App Center CLI
    npm install -g appcenter-cli
    
  • appcenter-post-clone.ps1 (PowerShell dla platformy UWP)

Wstępna kompilacja

Skrypt przed kompilacją jest uruchamiany przed rozpoczęciem rzeczywistej kompilacji. W przypadku aplikacji React Native skrypt jest uruchamiany przed wygenerowaniem map źródłowych. W przypadku innych platform działa po zainstalowaniu zależności, na przykład z nuGet, CocoaPods lub Carthage.

Aby uruchomić skrypty przed kompilacją, dodaj następujący plik obok pliku projektu w repozytorium:

  • appcenter-pre-build.sh (Bash dla systemu iOS & Android)

    #!/usr/bin/env bash
    
    # Example: Change bundle name of an iOS app for non-production
    if [ "$APPCENTER_BRANCH" != "main" ];
    then
        plutil -replace CFBundleDisplayName -string "\$(PRODUCT_NAME) Beta" $APPCENTER_SOURCE_DIRECTORY/MyApp/Info.plist
    fi
    
  • appcenter-pre-build.ps1 (PowerShell dla platformy UWP)

Po kompilacji

Skrypt po kompilacji jest uruchamiany po zakończeniu kompilacji i skopiował wszystkie niezbędne artefakty do katalogu wyjściowego. Skrypt po kompilacji zostanie uruchomiony nawet wtedy, gdy kompilacja zakończy się niepowodzeniem.

Aby uruchomić skrypty po kompilacji, dodaj następujący plik obok pliku projektu w repozytorium:

  • appcenter-post-build.sh (Bash dla systemu iOS & Android)

    if [ "$AGENT_JOBSTATUS" == "Succeeded" ]; then
        HOCKEYAPP_API_TOKEN={API_Token}
        HOCKEYAPP_APP_ID={APP_ID}
    
        # Example: Upload main branch app binary to HockeyApp using the API
        if [ "$APPCENTER_BRANCH" == "main" ];
         then
            curl \
            -F "status=2" \
            -F "ipa=@$APPCENTER_OUTPUT_DIRECTORY/MyApps.ipa" \
            -H "X-HockeyAppToken: $HOCKEYAPP_API_TOKEN" \
            https://rink.hockeyapp.net/api/2/apps/$HOCKEYAPP_APP_ID/app_versions/upload
        else
            echo "Current branch is $APPCENTER_BRANCH"
        fi
    fi
    
  • appcenter-post-build.ps1 (PowerShell dla platformy UWP)

Zmienne środowiskowe

Aby ułatwić pisanie skryptów kompilacji, możesz użyć wstępnie zdefiniowanych, niestandardowych lub w skryscie zmiennych środowiskowych , aby uzyskać więcej informacji.