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:
- Azure DevOps usa la App Center Distribute (versión 3+)
- Complemento Jenkins (versión 0.11.0+).
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.
- Asegúrese de que ha actualizado el manifiesto y tiene una compilación de Gradle configurada correctamente.
- 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.
- Registre UDID para todos los dispositivos de hardware en el perfil de aprovisionamiento.
- En Xcode, vaya a Archivo > de producto para archivar la aplicación.
- 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.
- Registre un único dispositivo o registre varios dispositivos en su cuenta de desarrollador de Apple.
- En Xcode, vaya a Archivo > de producto para archivar la aplicación.
- 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.

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.

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}esExample-Usery 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íaExample-Org.
Upload nueva versión
Upload una nueva versión mediante estas llamadas API secuenciales:
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}" }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.ipaobtener un recuento de bytes preciso.Establezca para
MIME Typeen función de lacontent_typeaplicació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" }- Android usa el tipo de proveedor
Con el valor que no se puede personalizar, puede dividir la carga de la aplicación en
chunk_sizefragmentos secuenciales para cargarla en Distribute. Por ejemplo, puede usar lasplitutilidad de la siguiente manera:split -b $CHUNK_SIZE $RELEASE_FILE_LOCATION temp/splitEste comando genera archivos secuenciales en el
tempdirectorio denominado , , y asísplitaasplitabsucesivamente. Cada archivo se divide dentro delchunk_sizelímite.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" doneUna 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_URLUna vez cargada, hay un breve retraso antes de que la carga se marque como finalizada. Sondee este estado para obtener
$RELEASE_IDpara 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 fiPor ú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:
- POST /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/testers
- POST /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/groups
- POST /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/stores
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.
Vínculo a versiones
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.

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.
