Wydawanie kompilacji

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.

Przekaż pakiet binarny aplikacji do centrum aplikacji, aby go rozpowszechnić. Usługa App Center obsługuje dystrybucję pakietów dla systemów Android, iOS, macOS, Windows i niestandardowych aplikacji systemu operacyjnego. Wydania można dystrybuować do poszczególnych testerów lub grup testerów. W przypadku aplikacji dla systemów iOS i Android można również wydać je do sklepów, takich jak Google Play, App Store i Intune. Zobacz Publikowanie w sklepach konsumenckich i korporacyjnych.

Na tej stronie można dowiedzieć się, jak wygenerować plik binarny do wydania oraz jak przekazać go do grup przy użyciu portalu, interfejsu wiersza polecenia (CLI) i interfejsu programowania aplikacji (API).

Możesz również użyć usługi Azure DevOps lub narzędzia Jenkins:

Generowanie pakietu binarnego aplikacji

Najpierw należy spakować aplikację do pliku binarnego w celu wydania. Ten plik można utworzyć ręcznie lub użyć narzędzia App Center Build. Kompilację można skonfigurować do automatycznego dystrybuowania w konfiguracji kompilacji gałęzi.

W poniższych sekcjach wyjaśniono, jak utworzyć pliki dla wszystkich typów aplikacji obsługiwane przez centrum aplikacji na potrzeby dystrybucji.

Uwaga

Jeśli zamierzasz przekazać archiwum (.zip, ipa i inne), łączny rozmiar aplikacji nieskompresowany musi być mniejszy niż 4 GB.

Android

W przypadku systemu Android należy utworzyć podpisany pakiet aplikacji lub plik APK. Aby uzyskać szczegółowe informacje na temat tego procesu, zobacz oficjalną dokumentację firmy Google dotyczącą przygotowywania aplikacji do wydania.

  1. Upewnij się, że manifest został zaktualizowany i masz poprawnie skonfigurowaną kompilację narzędzia Gradle.
  2. W programie Android Studio wybierz pozycję Skompiluj>wygenerowany podpisany pakiet /APK , a następnie wykonaj kroki kreatora, aby skompilować pakiet aplikacji lub pakiet APK.

Program Android Studio umieszcza skompilowane pakiety aplikacji w nazwach projektunazwa-modułu//build/outputs/bundle/ i zestawy API w nazwie projektu/ nazwamodułu/build/outputs/apk/.

Uwaga

Podczas dystrybucji pakietu aplikacji systemu Android (AAB) usługa App Center generuje uniwersalny plik APK, podpisuje go przy użyciu wygenerowanego klucza podpisywania i dystrybuuje go na urządzenie.

iOS

W przypadku systemu iOS należy utworzyć pakiet IPA dla aplikacji. Aby uzyskać szczegółowe informacje na temat tego procesu, zobacz oficjalną dokumentację firmy Apple.

  1. Zarejestruj identyfikatory UDID dla wszystkich urządzeń sprzętowych w profilu aprowizacji.
  2. W programie Xcode przejdź do pozycjiArchiwumproduktów>, aby zarchiwizować aplikację.
  3. Wyeksportuj archiwum przy użyciu odpowiedniego profilu aprowizacji.

macOS

W przypadku systemu macOS należy utworzyć pakiet aplikacji. Usługa App Center obsługuje wydawanie pakietów aplikacji typu .app.zip, .pkg lub .dmg. Aby uzyskać szczegółowe informacje na temat tego procesu, zobacz oficjalną dokumentację systemu MacOS firmy Apple.

  1. Zarejestruj jedno urządzenie lub zarejestruj wiele urządzeń na koncie dewelopera firmy Apple.
  2. W programie Xcode przejdź do pozycjiArchiwumproduktów>, aby zarchiwizować aplikację.
  3. Wyeksportuj archiwum przy użyciu odpowiedniego profilu aprowizacji.

Windows

Usługa App Center obsługuje wydawanie pakietów aplikacji systemu Windows typu .appx, .appxbundle, .appxupload, .msix.msi, .msixbundle, , .msixuploadlub .zip. Aby uzyskać szczegółowe informacje na temat tworzenia pakietów aplikacji w formatach AppX lub MSIX, zobacz oficjalną dokumentację platformy Microsoft UWP.

Niestandardowy system operacyjny

Archiwizowanie kompilacji dla aplikacji przy użyciu niestandardowego systemu operacyjnego w formacie .zip.

Dystrybucja pakietu

Uwaga

Wszystkie install.appcenter.ms adresy URL zawierające pliki do pobrania są publicznie dostępne.

Aby dystrybuować pakiet za pomocą usługi App Center, przejdź do centrum aplikacji, przejdź do swojej aplikacji, a następnie przejdź do pozycji Rozproszone>grupy i wybierz pozycję Nowa wersja. Postępuj zgodnie z krokami w kreatorze. Dystrybucja nowej wersji

W pierwszym kroku wybierz obszar Wydanie , aby wyszukać plik, który chcesz przekazać, lub przeciągnij i upuść plik w obszarze. W zależności od systemu operacyjnego aplikacji i rozszerzenia pliku centrum aplikacji może poprosić o wprowadzenie wersji i numeru kompilacji dla wydania. Wprowadź informacje i wybierz pozycję Dalej.

Informacje o wersji można uwzględnić jako część wydania, zarówno w formacie zwykłego tekstu, jak i języka Markdown. Wybierz pozycję Next (Dalej).

Możesz kierować swoją wersję do wielu grup dystrybucyjnych lub testerów. Usługa App Center udostępnia tę wersję tym testerom i użytkownikom, którzy są częścią wybranych grup. Wybierz pozycję Next (Dalej).

Ustawianie miejsc docelowych wydania

Podczas wydawania aplikacji dla systemu iOS można automatycznie aprowizować urządzenia testerów. Wybierz pozycję Next (Dalej).

Przejrzyj wydanie. Jeśli aplikacja korzysta z zestawu Distribute SDK, możesz skonfigurować centrum aplikacji tak, aby wydanie było obowiązkowe. Gdy usługa App Center dystrybuuje wydanie, wysyła powiadomienie e-mail o nowej wersji do wszystkich testerów ustawionych w miejscach docelowych. Możesz zrezygnować z powiadamiania testerów na karcie przeglądu. Na koniec wybierz pozycję Dystrybuuj , aby zwolnić plik do testerów.

Dystrybucja przy użyciu interfejsu wiersza polecenia centrum aplikacji

Ostrzeżenie

Do korzystania z tej funkcji jest potrzebny interfejs wiersza polecenia usługi App Center w wersji 2.7 lub nowszej.

Rozpowszechnij wydanie przy użyciu appcenter distribute release polecenia w interfejsie wiersza polecenia usługi App Center. Poniższe przykładowe polecenie dystrybuuje plik o nazwie ~/releases/my_app-23.ipa do grupy Beta testers aplikacji My-App należącej do .David

appcenter distribute release --app David/My-App --file ~/releases/my_app-23.ipa --group "Beta testers"

Dystrybucja przy użyciu interfejsu API

Możesz wywołać interfejs API centrum aplikacji, aby rozpowszechnić wydanie. Poniższe podejście ma na celu opisanie minimalnego podejścia roboczego. Wiele zadań można dodatkowo dostosować lub zautomatyzować.

Przykładowa implementacja można zobaczyć tutaj: https://github.com/microsoft/appcenter-Xamarin.UITest-Demo/blob/main/ac-distribute.sh

Wymagania wstępne

  • Pakiet aplikacji do przekazywania i dystrybucji.
  • Uzyskiwanie tokenu interfejsu API. Token interfejsu API jest używany do uwierzytelniania dla wszystkich wywołań interfejsu API usługi App Center.
  • Nazwa grupy dystrybucyjnej (opcjonalnie, jeśli brakuje lub jest nieprawidłowa, przekazywanie będzie nadal ukończone)
  • Zidentyfikuj wersję {owner_name} i {app_name} dla aplikacji, dla której chcesz rozpowszechnić wydanie. Te identyfikatory są używane w adresie URL wywołań interfejsu API. W przypadku aplikacji należącej do użytkownika adres URL w centrum aplikacji może wyglądać następująco: https://appcenter.ms/users/Example-User/apps/Example-App. W tym miejscu element {owner_name} to Example-User , a element {app_name} to Example-App. W przypadku aplikacji należącej do organizacji adres URL może mieć https://appcenter.ms/orgs/Example-Org/apps/Example-App wartość i będzie to {owner_name}Example-Org.
Przekaż nową wersję

Przekaż nową wersję przy użyciu tych sekwencyjnych wywołań interfejsu API:

  1. Utwórz nowe przekazywanie wydania: punkt końcowy do wywołania to POST /v0.1/apps/{owner_name}/{app_name}/uploads/releases

        OWNER_NAME="Example-Org"
        APP_NAME="Example-App"
        API_TOKEN="Example-Token"
    
        curl -X POST "https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/uploads/releases" -H  "accept: application/json" -H  "X-API-Token: $API_TOKEN" -H  "Content-Type: application/json" -H "Content-Length: 0"
    

    Odpowiedź będzie wyglądać mniej więcej tak, zastępując {VARIABLE_NAME} dane unikatowe dla każdego użycia:

         {
             "id": "{ID}",
             "package_asset_id": "{PACKAGE_ASSET_ID}",
             "upload_domain": "https://file.appcenter.ms",
             "token": "{TOKEN}",
             "url_encoded_token": "{URL_ENCODED_TOKEN}"
         }
    
  2. Skopiuj parametry z odpowiedzi w poprzednim kroku, ponieważ większość z nich jest używana w następnym kroku, w tym package_asset_id, upload_domain & url_encoded_token.

    Określ rozmiar pakietu aplikacji w bajtach. Zaleca się użycie polecenia, takiego jak wc -c ExampleApp.ipa uzyskanie dokładnej liczby bajtów.

    MIME Type Ustaw dla elementu w oparciu content_type o aplikację:

    • System Android .apk używa typu dostawcy application/vnd.android.package-archive
    • System Android .aab używa typu dostawcy application/x-authorware-bin
    • System iOS używa typu ogólnego application/octet-stream

    Ostatnie polecenie powinno wyglądać mniej więcej tak:

    FILE_NAME="ExampleApp.apk"
    FILE_SIZE_BYTES=$(wc -c $RELEASE_FILE_LOCATION | awk '{print $1}')
    APP_TYPE='application/vnd.android.package-archive' # iOS uses `application/octet-stream` instead.
    
    METADATA_URL="https://file.appcenter.ms/upload/set_metadata/$PACKAGE_ASSET_ID?file_name=$FILE_NAME&file_size=$FILE_SIZE_BYTES&token=$URL_ENCODED_TOKEN&content_type=$APP_TYPE"
    
     curl -s -d POST -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" "$METADATA_URL"
    

    Zwrócone dane wyjściowe powinny wyglądać mniej więcej tak:

     {
         "error":false,
         "id":"{PACKAGE_ASSET_ID}",
         "chunk_size":4194304,
         "resume_restart":false,
         "chunk_list":[1,2,3,4,5],
         "blob_partitions":1,
         "status_code":"Success"
     }
    
  3. chunk_size Przy użyciu wartości, której nie można dostosować, możesz podzielić przekazywanie aplikacji na sekwencyjne fragmenty przekazywania do dystrybucji. Możesz na przykład użyć split narzędzia w następujący sposób:

    split -b $CHUNK_SIZE $RELEASE_FILE_LOCATION temp/split
    

    To polecenie generuje sekwencyjne pliki w temp katalogu o nazwie splitaa, splitabitd. Każdy plik jest podzielony w ramach limitu chunk_size .

  4. Następnie należy przekazać każdy fragment podzielonego pakietu aplikacji z odpowiednim blokiem:

    BLOCK_NUMBER=0
    
    for i in temp/*
    do
        BLOCK_NUMBER=$(($BLOCK_NUMBER + 1))
        CONTENT_LENGTH=$(wc -c "$i" | awk '{print $1}')
    
        UPLOAD_CHUNK_URL="https://file.appcenter.ms/upload/upload_chunk/$PACKAGE_ASSET_ID?token=$URL_ENCODED_TOKEN&block_number=$BLOCK_NUMBER"
    
        curl -X POST $UPLOAD_CHUNK_URL --data-binary "@$i" -H "Content-Length: $CONTENT_LENGTH" -H "Content-Type: $CONTENT_TYPE"
    done
    
  5. Po zakończeniu przekazywania zaktualizuj stan zasobu przekazywania na uploadFinished.

    FINISHED_URL="https://file.appcenter.ms/upload/finished/$PACKAGE_ASSET_ID?token=$URL_ENCODED_TOKEN"
    curl -d POST -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" "$FINISHED_URL"
    
    COMMIT_URL="https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/uploads/releases/$ID"
    curl -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" \
    --data '{"upload_status": "uploadFinished","id": "$ID"}' \
    -X PATCH \
    $COMMIT_URL
    
  6. Po przekazaniu nastąpi krótkie opóźnienie, zanim przekazywanie zostanie oznaczone jako zakończone. Sonduj $RELEASE_ID ten stan, aby uzyskać wartość dla następnego kroku:

    RELEASE_STATUS_URL="https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/uploads/releases/$UPLOAD_ID"
    POLL_RESULT=$(curl -s -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" $RELEASE_STATUS_URL)
    RELEASE_ID=$(echo $POLL_RESULT | jq -r '.release_distinct_id')
    
    if [[ $RELEASE_ID == null ]];
    then
       echo "Failed to find release from appcenter"
       exit 1
    fi
    
  7. Na koniec wydaj kompilację. Punkt końcowy do wywołania to PATCH /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}

    DISTRIBUTE_URL="https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/releases/$RELEASE_ID"
    
    curl -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" \
    --data '{"destinations": [{ "name": "'"$DISTRIBUTION_GROUP"'"}] }' \    
    -X PATCH \
    $DISTRIBUTE_URL
    
Dystrybuowanie wydania

Rozpowszechnij przekazane wydanie do testerów, grup lub sklepów, aby wyświetlić wydanie w portalu Centrum aplikacji. Trzy punkty końcowe to:

Przykład dla grup:

    curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" -d "{ \"id\": "$DISTRIBUTION_GROUP_ID", \"mandatory_update\": false, \"notify_testers\": false}" 

Identyfikator grupy dystrybucyjnej można znaleźć na stronie ustawień tej grupy.

Żądanie dystrybucji do wielu miejsc docelowych znajduje się tutaj w przypadku bardziej złożonych scenariuszy: PATCH /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}

Re-Release kompilacji

Aby zwolnić kompilację do innej grupy dystrybucyjnej, z dowolnego miejsca w Centrum aplikacji przejdź do pozycji Dystrybuowanie > wydań , a następnie wybierz wydanie, które chcesz rozpowszechnić ponownie. Zostanie otwarta strona szczegółów wydania. Wybierz przycisk Dystrybuuj w prawym górnym rogu ekranu i wybierz miejsce docelowe, aby rozpocząć proces ponownego wydania. Wykonaj kroki kreatora, a na koniec wybierz pozycję Dystrybuuj , aby wysłać wydanie do grup/testerów lub sklepu.

Obowiązkowe Aktualizacje

Należy wprowadzić obowiązkowe wydanie, aby wymusić uruchamianie tej samej wersji aplikacji przez wszystkich użytkowników. Gdy to zrobisz, program App Center zainstaluje wybraną aktualizację na wszystkich urządzeniach testera.

Wydanie może być obowiązkowe tylko wtedy, gdy aplikacja korzysta z zestawu SDK dystrybucji centrum aplikacji. Wprowadź obowiązkowe wydanie, zaznaczając pole wyboru Obowiązkowa aktualizacja na etapie przeglądu dystrybucji wydania lub możesz użyć interfejsu API.

Obowiązkowe wersje można wyświetlić w Centrum aplikacji, otwierając pozycję [Twoja aplikacja] > Rozprosz > wydania grup>. Obowiązkowe wydania są wskazywane przez czerwoną kropkę.

Po pomyślnym wydaniu testerzy mogą uzyskiwać dostęp do wersji za pośrednictwem poczty e-mail, logując się do Centrum aplikacji lub za pośrednictwem linku bezpośredniego.

Linki do określonych wersji można znaleźć na stronie wydania dla prywatnych miejsc docelowych. Przycisk Zainstaluj

Uwaga

Pakiety aplikacji systemu Android (AAB) są dostępne do pobrania na stronie wydania, klikając przycisk pobierania. Jeśli potrzebujesz zainstalowanego formatu pliku APK, użyj portalu instalacji (https://install.appcenter.ms) na urządzeniu. Link znajduje się poniżej wygenerowanego kodu QR obok przycisku pobierania.

Linki do określonych wydań do publicznych miejsc docelowych można znaleźć na karcie wydania w grupach publicznych. Publiczny link bezpośredni