Udostępnij za pośrednictwem


Wydawanie kompilacji

Ważne

Program Visual Studio App Center został wycofany 31 marca 2025 r. z wyjątkiem funkcji analizy i diagnostyki, które będą nadal obsługiwane do 30 czerwca 2026 r. Dowiedz się więcej.

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żesz dowiedzieć się, jak wygenerować plik binarny dla 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 do wydania. Ten plik można utworzyć ręcznie.

W poniższych sekcjach opisano sposób tworzenia plików dla wszystkich typów aplikacji, które są obsługiwane przez centrum aplikacji na potrzeby dystrybucji.

Uwaga / Notatka

Jeśli zamierzasz przekazać archiwum (.zip, .ipa i inne), łączny rozmiar aplikacji 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 zaktualizowano manifest i masz poprawnie skonfigurowaną kompilację narzędzia Gradle.
  2. W programie Android Studio wybierz pozycję Buduj>Wygeneruj podpisany pakiet / APK i wykonaj kroki przedstawione w kreatorze, aby zbudować pakiet aplikacji lub pakiet APK.

Program Android Studio umieszcza wbudowane pakiety aplikacyjne w nazwa-projektu///build/outputs/bundle/ i APK w nazwa-projektu/nazwa-modułu/build/outputs/apk/.

Uwaga / Notatka

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 Produkt>Archiwum, 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 Apple macOS.

  1. Zarejestruj jedno urządzenie lub zarejestruj wiele urządzeń na koncie dewelopera firmy Apple.
  2. W programie Xcode przejdź do Produkt>Archiwum, 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.msi.msix, .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

Zarchiwizuj kompilację dla aplikacji przy użyciu niestandardowego systemu operacyjnego w formacie .zip.

Dystrybucja pakietu

Uwaga / Notatka

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

Aby rozpowszechnić pakiet za pomocą usługi App Center, przejdź do centrum aplikacji, przejdź do aplikacji, a następnie przejdź do pozycji Grupy rozproszone>i wybierz pozycję Nowa wersja. Wykonaj kroki opisane w kreatorze. Rozpowszechnianie nowej wersji

Na początku wybierz obszar Wydanie, aby przeszukać go i znaleźć plik, który chcesz przekazać, lub przeciągnij i upuść plik w tym obszarze. W zależności od systemu operacyjnego Twojej aplikacji i rozszerzenia pliku, App Center może poprosić Cię o wprowadzenie numeru wersji i kompilacji dla wydania. Wprowadź informacje i wybierz pozycję Dalej.

Informacje o wersji można uwzględnić w ramach wydania, zarówno w formacie zwykłego tekstu, jak i języka Markdown. Wybierz Dalej.

Wydanie można kierować 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 Dalej.

Ustalanie miejsc docelowych wydania

Podczas wydawania aplikacji systemu iOS można automatycznie aprowizować urządzenia testerów. Wybierz Dalej.

Przejrzyj wydanie. Jeśli aplikacja korzysta z zestawu DISTRIBUTE SDK, możesz skonfigurować centrum aplikacji, aby wersja została obowiązkowa. Gdy centrum aplikacji 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ę Rozpowszechnij , 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 centrum aplikacji. Poniższe przykładowe polecenie dystrybuuje plik o nazwie ~/releases/my_app-23.ipa do grupy Beta testers aplikacji My-App, której właścicielem jest David.

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

Dystrybucja przy użyciu interfejsu API

Aby dystrybuować wydanie, możesz wywołać interfejs API centrum aplikacji. Poniższe podejście ma na celu opisanie minimalnego podejścia roboczego. Wiele zadań można 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 rozpowszechniania.
  • Uzyskiwanie tokenu interfejsu API. Token API jest używany do uwierzytelniania wszystkich wywołań API w App Center.
  • Nazwa grupy dystrybucyjnej (opcjonalnie, jeśli brakuje lub jest nieprawidłowa, przesyłanie nadal zostanie ukończone)
  • Zidentyfikuj {owner_name} i {app_name} aplikacji, dla której chcesz rozpowszechnić wersję. 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 parametr {owner_name} jest i ma wartość Example-User{app_name}.Example-App W przypadku aplikacji należącej do organizacji adres URL może być https://appcenter.ms/orgs/Example-Org/apps/Example-App adresem i będzie to {owner_name}Example-Org.
Przekaż nową wersję

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

  1. Tworzenie nowego wydania: wywoływany punkt końcowy 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 i url_encoded_token.

    Określ rozmiar pakietu aplikacji w bajtach. Zaleca się użycie polecenia, takiego jak wc -c ExampleApp.ipa, aby uzyskać dokładną liczbę bajtów.

    Ustaw MIME Type dla content_type na podstawie swojej aplikacji.

    • 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. Używając wartości chunk_size, której nie można dostosować, możesz podzielić przekazywanie swojej aplikacji na sekwencyjne fragmenty do przekazywania do Distribute. Możesz na przykład użyć split narzędzia w sposób pokazany poniżej.

    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 granicach 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 dotyczące dystrybucji do wielu miejsc docelowych jest objaśnione tutaj w przypadku bardziej złożonych scenariuszy: PATCH /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}

Re-Release kompilacji

Aby wydać kompilację do innej grupy dystrybucyjnej, z dowolnego miejsca w App Center wejdź do panelu Dystrybuowanie wydań> , a następnie wybierz wydanie, które chcesz ponownie rozpowszechnić. Otwiera się strona ze szczegółami wydania. Wybierz przycisk Dystrybuuj w prawym górnym rogu ekranu i wybierz miejsce docelowe, aby rozpocząć proces ponownego wydawania. Wykonaj kroki kreatora, a na koniec wybierz Rozpowszechnij, aby wysłać wydanie do grup testowych lub sklepu.

Obowiązkowe aktualizacje

Wprowadź wydanie obowiązkowe, aby wymusić uruchamianie tej samej wersji aplikacji przez wszystkich użytkowników. W takim przypadku program App Center zainstaluje wybraną aktualizację na wszystkich urządzeniach testera.

Wydanie jest obowiązkowe tylko wtedy, gdy aplikacja korzysta z zestawu SDK dystrybucji centrum aplikacji. Uczyń wydanie obowiązkowym, zaznaczając pole wyboru Obowiązkowa aktualizacja na etapie przeglądania dystrybucji wydania, lub skorzystaj z interfejsu API.

Obowiązkowe wersje można wyświetlić w Centrum aplikacji, otwierając [Twoja aplikacja] > Dystrybucja > Grupy > Wydania. Wydania obowiązkowe są oznaczane czerwoną kropką.

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

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

Uwaga / Notatka

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ń przeznaczonych dla miejsc publicznych można znaleźć w zakładce wydania w grupach publicznych. Link bezpośredni publiczny