Publicación de una compilación

Upload el paquete binario de la aplicación App Center distribuirlo. App Center la distribución de paquetes para aplicaciones de sistema operativo android, iOS, macOS, Windows y personalizadas. 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, App Store e Intune. Consulte Publicar en tiendas de consumidor y de empresa.

En esta página puede obtener información sobre cómo generar el archivo binario para su versión y cómo cargarlo y publicarlo en grupos mediante el portal, la interfaz de la 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 App Center admite para la distribución.

Nota

Si va a cargar el archivo (.zip, .ipa y otros), el tamaño total sin comprimir de la aplicación 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, consulte la documentación oficial de Google sobre la preparación de una aplicación para la versión.

  1. Asegúrese de que ha actualizado el manifiesto y tiene una compilación de Gradle configurada correctamente.
  2. En Android Studio, elija Build Generate Signed Bundle /APK (Generar paquete > firmado/APK) y siga los pasos del asistente para compilar el paquete de aplicaciones o el APK.

Android Studio agrupaciones de aplicaciones compiladas en / project-name module-name/build/outputs/bundle/ y APKs en project-name / module-name/build/outputs/apk/.

Nota

Al distribuir el paquete de aplicaciones android (AAB), App Center 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 > de producto para archivar la aplicación.
  3. Exporte el archivo con el perfil de aprovisionamiento adecuado.

macOS

Para macOS, debe generar un paquete de aplicación. App Center admite el lanzamiento de paquetes de aplicación 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 > de producto para archivar la aplicación.
  3. Exporte el archivo con el perfil de aprovisionamiento adecuado.

Windows

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

Sistema operativo personalizado

Archive la compilación para aplicaciones con un sistema operativo personalizado en .zip formato.

Distribución del paquete

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 Versión 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. Seleccione Siguiente.

Puede dirigir la versión a varios grupos de distribución o evaluadores. App Center esta versión está disponible para los evaluadores y los usuarios que forman parte de los grupos seleccionados. Seleccione Siguiente.

Establecimiento de destinos de versión

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

Revise la versión. Si la aplicación usa el SDK distribute, puede configurar App Center para que la versión sea obligatoria. Cuando App Center 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 elegir no notificar a los evaluadores en la pestaña de revisión. Por último, elija Distribuir para publicar el archivo a los evaluadores.

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

Advertencia

Debe usar App Center CLI 2.7 o posterior para usar esta característica.

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

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 App Center para distribuir una versión. El enfoque siguiente está pensado para describir un enfoque de trabajo mínimo; muchas de las tareas se pueden personalizar o automatizar aún más.

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

Prerrequisitos

  • Paquete de aplicación que se cargará y distribuirá.
  • Obtenga un token de API. Un token de API se usa para la autenticación de todas las App Center API.
  • El nombre del grupo de distribución (opcional, si falta o no es válido, la carga seguirá completa)
  • Identifique y {owner_name} para la aplicación para la que desea distribuir una {app_name} versión. Estos identificadores se usan en la dirección URL de las llamadas API. En el caso de una aplicación propiedad de un usuario, la dirección URL App Center podría tener el siguiente aspecto: https://appcenter.ms/users/Example-User/apps/Example-App . En este caso, {owner_name} es Example-User y es {app_name} Example-App . Para 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 {owner_name} sería Example-Org .
Upload nueva versión

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

    La respuesta tendrá un aspecto parecido a este, con {VARIABLE_NAME} el reemplazo de 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 del paso anterior, ya que la mayoría de ellos se usan en el paso siguiente, incluido package_asset_id , upload_domain & url_encoded_token .

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

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

    • Android usa el tipo de proveedor application/vnd.android.package-archive
    • iOS usa el tipo general application/octet-stream

    El comando final debe tener un aspecto parecido 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 parecido al siguiente:

     {
         "error":false,
         "id":"{UPLOAD_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, puede dividir la carga de la aplicación en chunk_size fragmentos secuenciales para cargarla en Distribute. 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 , , y así splitaa splitab sucesivamente. 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 realizada 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/$UPLOAD_ID"
    curl -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" \
    --data '{"upload_status": "uploadFinished","id": "$UPLOAD_ID"}' \
    -X PATCH \
    $COMMIT_URL
    
  6. Una vez cargada, hay un breve retraso antes de que la carga se marque como finalizada. Sondee este estado para obtener $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, libere 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 App Center portal. Los tres puntos de conexión son:

Un ejemplo para 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 para distribuir 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 liberar una compilación en otro grupo de distribución, desde cualquier lugar de App Center vaya a Distribuir versiones de > 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 reequibación. Siga los pasos del asistente y, por último, seleccione Distribuir para enviar la versión a grupos o evaluadores o a la tienda.

Actualizaciones obligatorias

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 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 App Center Distribute. Para que una versión sea obligatoria, active la casilla Actualización obligatoria en la fase de revisión de distribución de una versión, o bien puede usar la API.

Puede ver las versiones obligatorias en App Center si abre [Su aplicación]> Distribuir > grupos > versiones. Las versiones obligatorias se indican mediante un punto rojo.

Una vez que se 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 versión de destinos privados. Botón Instalar

Nota

Los paquetes de aplicaciones 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