Liberar una compilación

Importante

Visual Studio App Center está programado para retirarse el 31 de marzo de 2025. Aunque puede seguir usando Visual Studio App Center hasta que se retire por completo, hay varias alternativas recomendadas a las que puede considerar la posibilidad de migrar.

Obtenga más información sobre las escalas de tiempo y las alternativas de soporte técnico.

Cargue el paquete binario de la aplicación en App Center para distribuirlo. App Center admite la distribución de paquetes para aplicaciones de sistema operativo android, iOS, macOS, Windows y personalizados. Puede distribuir versiones a evaluadores individuales o grupos de evaluadores. En el caso de las aplicaciones iOS y Android, también puede publicar en las tiendas como Google Play, el App Store y Intune. Consulte Publicación en almacenes empresariales y de consumidor.

En esta página, puede obtener información sobre cómo generar el binario para su lanzamiento y cómo cargarlo y publicarlo en grupos mediante el portal, la interfaz de línea de comandos (CLI) y la interfaz de programación de aplicaciones (API).

También puede usar Azure DevOps o Jenkins:

Generación de un paquete binario de aplicación

En primer lugar, debe empaquetar la aplicación en un archivo binario para su lanzamiento. Puede crear este archivo manualmente o usar App Center Build. Puede configurar La compilación para distribuirla automáticamente en la configuración de compilación de una rama.

En las secciones siguientes se explica cómo crear los archivos para todos los tipos de aplicaciones compatibles con App Center para su distribución.

Nota

Si vas a cargar el archivo (.zip, .ipa y otros), el tamaño total de la aplicación no comprimido debe ser inferior a 4 GB.

Android

Para Android, debe generar un paquete de aplicaciones firmado o un archivo APK. Para obtener detalles completos de este proceso, consulta la documentación oficial de Google sobre cómo preparar una aplicación para su lanzamiento.

  1. Asegúrese de que ha actualizado el manifiesto y de que tiene una compilación de Gradle configurada correctamente.
  2. En Android Studio, elija Generar agrupación>firmada / APK y siga los pasos del asistente para compilar la agrupación de aplicaciones o APK.

Android Studio coloca agrupaciones de aplicaciones compiladas en nombre /de proyectomodule-name/build/outputs/bundle/ y APKs en nombre/de proyecto module-name/build/outputs/apk/.

Nota

Al distribuir android Application Bundle (AAB), App Center genera un APK universal, lo firma con una clave de firma generada y lo distribuye a un dispositivo.

iOS

Para iOS, debe generar un paquete IPA para la aplicación. Para obtener detalles completos de este proceso, consulte la documentación oficial de Apple.

  1. Registre UDID para todos los dispositivos de hardware en el perfil de aprovisionamiento.
  2. En Xcode, vaya a Archivo del producto> para archivar la aplicación.
  3. Exporte el archivo mediante el perfil de aprovisionamiento adecuado.

macOS

Para macOS, debe generar un paquete de aplicación. App Center admite la publicación de paquetes de aplicaciones de tipo .app.zip, .pkg o .dmg. Para obtener detalles completos de este proceso, consulte la documentación oficial de MacOS de Apple.

  1. Registre un único dispositivo o registre varios dispositivos en su cuenta de desarrollador de Apple.
  2. En Xcode, vaya a Archivo del producto> para archivar la aplicación.
  3. Exporte el archivo mediante el perfil de aprovisionamiento adecuado.

Windows

App Center admite la publicación de paquetes de aplicaciones de Windows de tipo .appx, , .msixbundle.msi.appxupload.msix.appxbundle, , .msixuploado ..zip Para obtener información completa sobre cómo empaquetar la aplicación en formatos AppX o MSIX, consulta la documentación oficial de Microsoft UWP.

Sistema operativo personalizado

Archivar la compilación de aplicaciones con un sistema operativo personalizado en formato .zip.

Distribución del paquete

Nota

Todas las direcciones URL de install.appcenter.ms que contienen archivos para la descarga son accesibles públicamente.

Para distribuir un paquete con App Center, vaya a App Center, vaya a la aplicación, vaya a Distribuir>grupos y seleccione Nueva versión. Siga los pasos del asistente. Distribución de una nueva versión

En el primer paso, elija el área Liberar para buscar el archivo que desea cargar, o arrastre y coloque el archivo en el área. Según el sistema operativo de la aplicación y la extensión de archivo, App Center puede pedirle que escriba una versión y un número de compilación para la versión. Escriba la información y elija Siguiente.

Puede incluir notas de la versión como parte de la versión, tanto en texto sin formato como en formato Markdown. Elija Siguiente.

Puede dirigirse a la versión en varios grupos de distribución o evaluadores. App Center pone esta versión a disposición de los evaluadores y los usuarios que forman parte de los grupos seleccionados. Elija Siguiente.

Establecimiento de destinos de versión

Al publicar una aplicación iOS, puede aprovisionar automáticamente los dispositivos de los evaluadores. Elija Siguiente.

Revise la versión. Si la aplicación usa el SDK de Distribución, puede configurar App Center para que la versión sea obligatoria. Cuando App Center distribuye una versión, envía una notificación por correo electrónico de la nueva versión a todos los evaluadores establecidos en los destinos. Puede optar por no notificar a los evaluadores en la pestaña de revisión. Por último, elija Distribuir para liberar el archivo en los evaluadores.

Distribución mediante la interfaz de la línea de comandos de App Center

Advertencia

Necesita la CLI de App Center 2.7 o posterior para usar esta característica.

Distribuya la versión mediante el appcenter distribute release comando en la CLI de App Center. El siguiente comando de ejemplo distribuye un archivo llamado ~/releases/my_app-23.ipa al grupo Beta testers de la aplicación My-App propiedad Davidde .

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

Distribución mediante la API

Puede llamar a la API de App Center para distribuir una versión. El siguiente enfoque está pensado para describir un enfoque de trabajo mínimo, muchas de las tareas se pueden personalizar o automatizar aún más.

Puede ver una implementación de ejemplo aquí: https://github.com/microsoft/appcenter-Xamarin.UITest-Demo/blob/main/ac-distribute.sh

Requisitos previos

  • El paquete de la aplicación que se va a cargar y distribuir.
  • Obtenga un token de API. Se usa un token de API para la autenticación para todas las llamadas API de App Center.
  • El nombre del grupo de distribución (opcional, si falta o no es válido, la carga se completará)
  • Identifique y {owner_name}{app_name} para la aplicación para la que desea distribuir una versión. Estos identificadores se usan en la dirección URL de las llamadas API. Para una aplicación propiedad de un usuario, la dirección URL de App Center podría tener el siguiente aspecto: https://appcenter.ms/users/Example-User/apps/Example-App. Aquí, es {owner_name}Example-User y {app_name} es Example-App. En el caso de una aplicación propiedad de una organización, la dirección URL podría ser https://appcenter.ms/orgs/Example-Org/apps/Example-App y sería {owner_name}Example-Org.
Cargar nueva versión

Cargue una nueva versión mediante estas llamadas API secuenciales:

  1. Crear una nueva carga de versión: el punto de conexión al que llamar es 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"
    

    La respuesta tendrá un aspecto similar al siguiente, y {VARIABLE_NAME} reemplazará los datos únicos para cada uso:

         {
             "id": "{ID}",
             "package_asset_id": "{PACKAGE_ASSET_ID}",
             "upload_domain": "https://file.appcenter.ms",
             "token": "{TOKEN}",
             "url_encoded_token": "{URL_ENCODED_TOKEN}"
         }
    
  2. Copie los parámetros de la respuesta en el paso anterior, ya que la mayoría de ellos se usan en el paso siguiente, incluido , package_asset_idupload_domain & url_encoded_token.

    Determine el tamaño del paquete de la aplicación en bytes. Se recomienda usar un comando como wc -c ExampleApp.ipa para obtener un recuento preciso de bytes.

    Establezca para MIME Type en función de la content_type aplicación:

    • Android .apk usa el tipo de proveedor application/vnd.android.package-archive
    • Android .aab usa el tipo de proveedor application/x-authorware-bin
    • iOS usa el tipo general application/octet-stream

    El comando final debe tener un aspecto similar al siguiente:

    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"
    

    La salida devuelta debe tener un aspecto similar al siguiente:

     {
         "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. Con el valor que no se puede personalizar, puedes dividir la chunk_size carga de la aplicación en fragmentos secuenciales para cargar en Distribuir. Por ejemplo, puede usar la split utilidad de la siguiente manera:

    split -b $CHUNK_SIZE $RELEASE_FILE_LOCATION temp/split
    

    Este comando genera archivos secuenciales en el temp directorio denominado splitaa, splitab, etc. Cada archivo se divide dentro del chunk_size límite.

  4. A continuación, debe cargar cada fragmento del paquete de aplicación dividido con el bloque correspondiente:

    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. Una vez finalizada la carga, actualice el estado del recurso de carga a 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. Una vez cargado, hay un breve retraso antes de que la carga se marque como finalizada. Sondee este estado para obtener el $RELEASE_ID para el paso siguiente:

    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. Por último, publique la compilación. El punto de conexión al que llamar es 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
    
Distribuir versión

Distribuya la versión cargada a evaluadores, grupos o almacenes para ver la versión en el portal de App Center. Los tres puntos de conexión son:

Ejemplo de grupos:

    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}" 

Puede encontrar el identificador del grupo de distribución en la página de configuración de ese grupo.

Aquí se hace referencia a la solicitud de distribución a varios destinos para escenarios más complejos: PATCH /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}

Re-Release una compilación

Para publicar una compilación en otro grupo de distribución, desde cualquier lugar de App Center vaya a Distribuir > versiones y, a continuación, seleccione la versión que desea distribuir de nuevo. Se abre la página de detalles de la versión. Seleccione el botón Distribuir en la esquina superior derecha de la pantalla y seleccione el destino para iniciar el proceso de nueva versión. Siga los pasos del asistente y, por último, seleccione Distribuir para enviar la versión a grupos o evaluadores o al almacén.

Novedades obligatorios

Haga que una versión sea obligatoria para obligar a todos los usuarios a ejecutar la misma versión de la aplicación. Al hacerlo, App Center instalará la actualización seleccionada en todos los dispositivos evaluadores.

Solo puede hacer que una versión sea obligatoria si la aplicación usa el SDK de Distribución de App Center. Haga que una versión sea obligatoria activando la casilla Actualización obligatoria en la fase de revisión de la distribución de una versión, o bien puede usar la API.

Para ver las versiones obligatorias en App Center, abra [Su aplicación] > Distribuir > versiones de grupos>. Las versiones obligatorias se indican mediante un punto rojo.

Una vez que haya publicado correctamente, los evaluadores pueden acceder a la versión por correo electrónico, iniciar sesión en App Center o a través de un vínculo directo.

Puede encontrar vínculos a versiones específicas en la página de versiones para destinos privados. Botón Instalar

Nota

Los paquetes de aplicaciones de Android (AAB) están disponibles para su descarga en la página de versión haciendo clic en el botón descargar. Si necesita un formato de archivo APK instalable, use el portal de instalación (https://install.appcenter.ms) en el dispositivo. Puede encontrar el vínculo debajo del código QR generado junto al botón de descarga.

Puede encontrar vínculos a versiones específicas a destinos públicos en la pestaña versiones de grupos públicos. Vínculo profundo público