Compartir a través de


Solución de problemas del SDK de iOS

Importante

Visual Studio App Center se retiró el 31 de marzo de 2025, excepto las características de análisis y diagnóstico, que seguirán siendo compatibles hasta el 30 de junio de 2026. Más información.

Problemas durante la instalación

  1. En la consola, busque un registro Assert con el mensaje "SDK de App Center configurado correctamente". El mensaje implica que el SDK está configurado correctamente.
  2. Si usa Cocoapods para integrar App Center en la aplicación iOS y se produce un error con el mensaje : CocoaPods - Unable to find a specification for AppCenter, ejecute pod repo update para actualizar el repositorio local de Cocoapods y, a continuación, vuelva a ejecutarse pod install .
  3. Si usa CocoaPods para integrar App Center en la aplicación de iOS y durante la compilación del proyecto se produce un error con el mensaje framework not found AppCenter.xcframework, debe actualizar (reinstalar) CocoaPods a la versión más reciente ejecutando [sudo] gem install cocoapods.
  4. Si va a integrar manualmente los archivos binarios del SDK, asegúrese de que tiene módulos habilitados para el proyecto.

Los datos de análisis no se muestran en el portal

  1. Asegúrese de que ha integrado correctamente los módulos del SDK.

  2. Asegúrese de que se incluye el secreto de aplicación correcto junto con la llamada al método start:withServices:. Para copiar el código exacto start:withServices:, abra la aplicación en el portal y vaya a la página Introducción .

  3. Si desea ver los registros que se envían al backend, cambie el nivel de registro a Detallado en su aplicación. A continuación, el SDK imprimirá los registros en la consola. Inserte la siguiente llamada antes de iniciar el SDK:

    [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
    
    AppCenter.logLevel = .verbose
    

    Asegúrese de que aparece "SDK de App Center configurado correctamente" en el registro (en el nivel de registro INFO), y luego compruebe si ve los registros de solicitudes HTTPS.

  4. Asegúrese de que el dispositivo está en línea.

  5. En ocasiones, los registros pueden tardar unos minutos en aparecer en el portal. Espere algún tiempo si ese es el caso.

  6. Para comprobar si el back-end de App Center ha recibido los datos, vaya a la sección Flujo de registro del servicio Analytics . Tus eventos deberían aparecer una vez que se hayan enviado.

Los fallos no se muestran en el portal

  1. Asegúrese de que ha integrado correctamente los módulos del SDK.

  2. Asegúrese de que se incluya la clave secreta correcta de la aplicación junto con la llamada al método start:withServices:. Para copiar el código exacto start:withServices: , abra la aplicación en el portal y vaya a la página Introducción .

  3. Los fallos de App Center reenviarán el registro de fallos solo después de que la aplicación se reinicie. Además, el SDK no reenviará ningún informe de fallos si está conectado al depurador. Asegúrate de que no haya un depurador adjunto cuando se bloquee la aplicación.

  4. Si desea ver los registros que se envían al backend, cambie el nivel de registro a Detallado en su aplicación. A continuación, el SDK imprimirá los registros en la consola. Inserte la siguiente llamada antes de iniciar el SDK:

    [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
    
    AppCenter.logLevel = .verbose
    

    Asegúrese de que aparece "SDK de App Center configurado correctamente" en el registro (en el nivel de registro INFO), y luego compruebe si ve los registros de solicitudes HTTPS.

  5. No use ninguna otra librería que proporcione funcionalidad de informes de fallos. Solamente puedes tener un SDK de informes de bloqueo integrado en tu aplicación.

  6. Asegúrese de que el dispositivo está en línea.

  7. En ocasiones, los registros pueden tardar unos minutos en aparecer en el portal. Espere algún tiempo si ese es el caso.

  8. Compruebe si el SDK detectó el bloqueo en el siguiente inicio de la aplicación. Puede llamar a la API para comprobar si la aplicación se bloqueó en la última sesión; si es así, se muestra una alerta. O bien, puede ampliar la devolución de llamada del error didSucceedSendingErrorReport para comprobar si se envió correctamente al servidor.

  9. Para comprobar si el back-end de App Center recibió el incidente, vaya a la sección Flujo de registros del servicio de analítica. Tus bloqueos aparecerán allí, una vez que se haya enviado.

La alerta que solicita a los usuarios una actualización no contiene cadenas, sino solo las claves para ellos.

Esto significa que AppCenterDistributeResources.bundle no se agregó al proyecto. Asegúrese de que ha agregado el archivo en el proyecto de Xcode y que aparece en la fase de compilación de Copy Bundle Resources del objetivo de su aplicación. Debería aparecer allí si agregó el archivo a través de arrastrar y colocar: Xcode lo hace automáticamente. Si falta el archivo de la fase de compilación, agréguelo para que se compile en el paquete de la aplicación.

Si usa Cocoapods, se encarga de los recursos automáticamente. Trate de reinstalar el módulo.

Verá mensajes en la consola que indican que no se pudo abrir la base de datos.

A partir de la versión 0.11.0 del SDK de iOS, App Center usa SQLite para conservar los registros antes de enviarlos al back-end. Si empaqueta su aplicación con su propia biblioteca de SQLite en lugar de usar la proporcionada por el sistema operativo, es posible que vea errores como este en la consola [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database y no verá ninguna información de análisis o de fallos en el sistema. Actualice el SDK a la versión 0.13.0 o posterior.

Las actualizaciones de distribución y dentro de la aplicación están bloqueando mis pruebas automatizadas de IU.

Si las actualizaciones dentro de la aplicación están habilitadas, bloquearán las pruebas automatizadas de la interfaz de usuario. El proceso de actualización intentará autenticarse en el back-end de App Center. Se recomienda no activar App Center Distribute para el objetivo de prueba de la interfaz de usuario.

Por qué el SDK se distribuye como una "biblioteca estática"

Los objetivos de diseño principales del SDK de App Center son tener un impacto mínimo en la aplicación mediante App Center y tener un SDK modular. Esto daría lugar a que el SDK se distribuya como varias bibliotecas compartidas vinculadas dinámicas.

Sin embargo, App Center se distribuye como una biblioteca compartida vinculada estáticamente, encapsulada en un marco falso multi-arquitectura. Esto significa que el SDK está vinculado en tiempo de compilación y no en tiempo de inicio para mejorar el rendimiento. La carga de varias bibliotecas compartidas vinculadas dinámicas tarda tiempo.

Apple recomienda optimizar el inicio de la aplicación para que no tarde más de 400 ms en una sesión wwDC. En concreto, recomiendan bibliotecas compartidas estáticas sobre las compartidas dinámicas para lograr este objetivo. La distribución del SDK de App Center para iOS como una biblioteca compartida vinculada estáticamente sigue la recomendación de Apple para proporcionar el mejor rendimiento y un impacto mínimo en la aplicación que incluye el SDK.

Para obtener más información sobre las bibliotecas compartidas vinculadas estáticamente frente a las bibliotecas compartidas vinculadas dinámicas, se recomienda la documentación general de Apple sobre el tema.

¿Por qué los archivos binarios del SDK son tan grandes? Me preocupa el tamaño de mi aplicación

Los archivos binarios de AppCenter se distribuyen como marcos "fat" que contienen segmentos para todas las arquitecturas de iPhone y para el simulador de iPhone. Este es el motivo por el que, por ejemplo , AppCenter.framework es de 10,5 MB para descargar.

El tamaño compilado de los archivos binarios del SDK será mucho menor que el .framework que agregue a la aplicación en Xcode. Tenga también en cuenta que las compilaciones de versión serán más pequeñas que las compilaciones de depuración.

Para ilustrar esto, creamos una aplicación Objective-C vacía con Xcode 9.2, agregamos los archivos binarios de App Center a la aplicación y compilaciones de versión distribuidas en un iPhone 7 que ejecuta iOS 11.3.

Ejecutamos las pruebas sin Bitcode habilitado y no usamos App Thinning. Puedes usar esas técnicas para reducir aún más el tamaño binario de la aplicación.

Los números siguientes pueden variar y depender de la configuración de compilación, por lo que puede considerarlos una guía aproximada. Dicho esto, agregar el SDK de App Center a la aplicación tiene un impacto mínimo en el tamaño del archivo binario de la aplicación.

Módulos de App Center usados Tamaño de IPA exportado Tamaño de instalación
Ninguno (aplicación en blanco) 24 KB 132 KB
Análisis de App Center 120 KB 377 KB
Bloqueo de App Center 239 KB 705 KB
Distribución de App Center 163 KB 528 KB
Todos los módulos de App Center 314 KB 930 KB

Protege el valor del secreto de App Center

app_secret es un identificador de la aplicación, es necesario saber a qué aplicación se aplica el tráfico y no se puede usar para recuperar o editar datos existentes. Si su app_secret está expuesto, el mayor riesgo es enviar datos incorrectos a su aplicación, pero no tendrá ningún efecto en la seguridad de los datos.

Para recuperar cualquier dato confidencial, tendría que proporcionar un token de aplicación o usuario, que se genera en el lado del cliente. No hay ninguna manera de proteger completamente los datos en el lado del cliente.

Puede mejorar la seguridad de la aplicación mediante una variable de entorno para insertar el secreto de la aplicación en el código. De este modo, el secreto no es visible en el código.