Share via


Configuración de una compilación de iOS React Native en App Center

Importante

Visual Studio App Center está programado para la retirada 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 de soporte técnico y las alternativas.

App Center puede compilar aplicaciones React Native escritas en React Native versión 0.34 o posterior.

Para compilar una aplicación de React Native para iOS:

  1. Conéctese a la cuenta de servicio del repositorio (por ejemplo: Azure DevOps, Bitbucket, GitHub o VSTS).
  2. Seleccione un repositorio y una rama donde reside la aplicación.
  3. Configure el proyecto o área de trabajo de la compilación y el esquema que desea compilar.

Nota

Para que la aplicación se ejecute en un dispositivo real, la compilación debe estar firmada con código con un perfil de aprovisionamiento válido y un certificado.

1. Vinculación del repositorio

En primer lugar, conecte la cuenta de servicio del repositorio a App Center. Una vez conectada la cuenta, seleccione el repositorio donde se encuentra el proyecto de iOS. Debe tener permiso de administrador y extracción para el repositorio.

2. Selección de una rama

Después de seleccionar un repositorio, seleccione la rama que desea compilar. De forma predeterminada, se mostrarán todas las ramas activas.

3. Configuración de la primera compilación

Antes de la primera compilación, es necesario configurar el proyecto de React Native.

3.1. Project

Seleccione el de package.jsonsu proyecto. App Center detectará automáticamente el proyecto o área de trabajo de Xcode asociado.

3.2. Versión de Xcode

Seleccione la versión de Xcode para ejecutar la compilación en en la lista desplegable. Si el botón de alternancia "Usar sistema de compilación heredado" es On, el sistema de compilación heredado se usará independientemente de la configuración del proyecto o del área de trabajo. Si el botón de alternancia "Usar sistema de compilación heredado" es Off, se usará la configuración del sistema de compilación desde el proyecto o la configuración del área de trabajo.

Nota

  • La configuración del área de trabajo debe confirmarse en el repositorio
  • Si no se confirma la configuración del área de trabajo, se usará el sistema de compilación moderno.

3.3. Versión de Node.js

Seleccione la versión Node.js que se va a usar para la compilación. Más información sobre cómo seleccionar Node.js versión

3.4. Desencadenadores de compilación

De forma predeterminada, se desencadena una nueva compilación cada vez que un desarrollador inserta en una rama configurada. Si prefiere desencadenar manualmente una nueva compilación, puede cambiar esta configuración en el panel de configuración.

3.5. Incrementar el número de compilación

Cuando se habilita, en CFBundleVersioninfo.plist del proyecto de la aplicación se incrementa automáticamente para cada compilación. El cambio se produce previamente a la compilación y no se confirmará en el repositorio.

3.6. Firma de código

Una compilación correcta genera un .ipa archivo. Para instalar la compilación en un dispositivo, la compilación debe estar firmada con un perfil de aprovisionamiento y un certificado válidos. Para firmar las compilaciones generadas desde una rama, habilite el inicio de sesión de código en el panel de configuración y cargue un perfil de aprovisionamiento (.mobileprovision archivo) y un certificado válido (.p12), junto con la contraseña del certificado.

La configuración del proyecto de Xcode debe ser compatible con los archivos que está cargando. Obtenga más información sobre la firma de código de iOS de App Center y la documentación para desarrolladores de Apple.

La firma de aplicaciones con extensiones de app o watchOS requiere un perfil de aprovisionamiento adicional por extensión.

3.7. Inicio de la compilación correcta en un dispositivo real

Use el archivo recién generado .ipa para probar si la aplicación se inicia en un dispositivo real; la prueba de inicio agrega aproximadamente 10 minutos más al tiempo de compilación total. Obtenga más información sobre cómo configurar pruebas de inicio.

3.8. CocoaPods

App Center examina la rama seleccionada y, si encuentra un podfile, realizará automáticamente un pod install paso al principio de cada compilación. Esto garantiza que se instalen todas las dependencias.

3.9. Distribuir a un grupo de distribución

Configure cada compilación correcta de una rama que se va a distribuir a un grupo de distribución creado anteriormente. Agregue un nuevo grupo de distribución desde la sección Distribuir. Siempre hay un grupo de distribución predeterminado denominado "Colaboradores" que incluye a todos los usuarios que tienen acceso a la aplicación.

Una vez guardada la configuración, se iniciará automáticamente una nueva compilación.

4. Generar resultados

Las compilaciones pueden estar en uno de los siguientes estados:

  • en cola : la compilación se pone en cola esperando recursos disponibles.
  • compilación : la compilación se está ejecutando y ejecutando tareas predefinidas
  • correcto: la compilación se completó correctamente
  • failed : la compilación se completó sin éxito; solución de problemas de lo que salió mal mediante la descarga e inspección del registro de compilación
  • cancelado: la compilación se canceló a través de la acción del usuario o se agotó el tiempo de espera.

4.1. Registros de compilación

Para una compilación completada (correcta o errónea), descargue los registros para obtener más información sobre cómo se ha producido la compilación. App Center proporciona un archivo con los siguientes archivos:

|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
    |-- <build-step-1> (e.g. 2_Get Sources.txt)
    |-- <build-step-2> (e.g. 3_Pod install.txt)
    |--
    |-- <build-step-n> (e.g. n_Post Job Cleanup.txt)

Los registros de compilación (ubicados en el build/ directorio del archivo) son útiles para solucionar problemas y comprender en qué paso y por qué se produjo un error en la compilación.

4.2. La aplicación (.ipa)

El .ipa archivo es un archivo de archivo de aplicación de iPhone que contiene la aplicación de iOS.

  • Si la compilación se firmó correctamente, puede instalar el .ipa archivo en un dispositivo real que se incluye en el perfil de aprovisionamiento usado al firmar. Puede encontrar más detalles sobre la firma y distribución de código con App Center en la documentación de firma de código de iOS de App Center.
  • Si la compilación no está firmada durante la compilación, los desarrolladores pueden firmar el .ipa archivo (localmente mediante codesign) o usarse para otros fines (por ejemplo, cargar en servicio de prueba para pruebas de iu en dispositivos reales o ejecutarse en el simulador).
  • Las compilaciones sin firmar no generarán un .ipa archivo. El artefacto de una compilación sin firmar es el .xcarchive archivo , que se puede usar para generar un .ipa archivo con el organizador Xcode Archives.

4.3. Los archivos de símbolos y mapas de origen

Después de compilar una aplicación de iOS React Native, se genera automáticamente un mapa de código fuente de JavaScript y uno o varios .dsym archivos con cada compilación y se pueden descargar una vez completada la compilación.

  • Si anteriormente ha integrado el SDK de App Center en la aplicación con el módulo de informes de bloqueos habilitado, la baliza de informes de bloqueo requiere este .dsym archivo y el mapa de origen de JavaScript para una compilación para mostrar informes de bloqueo legibles (simbólicos) humanos.
  • Si anteriormente ha integrado otro SDK con fines de informes de bloqueos en la aplicación, el servicio correspondiente requiere el .dsym archivo y el mapa de origen de JavaScript para mostrar informes de bloqueo legibles (simbólicos).

Tenga en cuenta que el .dsym archivo no cambia al firmar el .ipacódigo . Si decide codificar la compilación más adelante, el .dsym elemento generado antes de que la firma de código siga siendo válida.

Si esta aplicación tiene incluido el SDK de bloqueos, los símbolos de iOS y las asignaciones de origen se enviarán al servicio Bloqueos de App Center. Los símbolos habilitarán los informes de bloqueo legibles (simbólicos) humanos en la pila nativa y javaScript.

5. Crear sugerencias

5.1. Yarn

Yarn es un reemplazo más rápido y determinista para npm. Si un yarn.lock archivo está presente en el repositorio junto a package.json, App Center usará Yarn, haciendo yarn install al principio de la compilación. De lo contrario, hará npm install.

5.2. Scripts de compilación personalizados

Hay varias opciones para ejecutar scripts antes de que se ejecuten los comandos de compilación predeterminados de App Center.

  • Cree un script postinstall en el archivo del package.json proyecto. Esto se ejecuta automáticamente después de instalar las dependencias.

      "scripts": {
        ...
        "postinstall" : "eslint ./" // other examples: "node ./postinstall.js" or "./postinstall.sh"
      },
    
  • Escriba un script de shell con la funcionalidad de scripts de compilación personalizados de App Center.

    #!/usr/bin/env bash
    
    # Example: Authenticate with private NPM registry
    echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
    
    # Example: Create a file that's not in version control (from base64 encoded environment variable)
    base64 -d <<< "$MY_FILE_CONTENTS" > ios/SuperSecretFile.txt