Bug fixes
- Fixed an issue where calling
recordErrorunder low-memory conditions could terminate the host application. Error reports are now dropped and logged, and New Relic agent frames are trimmed from the top of the recorded stack. - Fixed a crash in
NRMALoggerBridge::logcaused by a missing argument in a log format string when removing session attributes. Corrected two additional invalid format strings in the same component. - Fixed an issue where distributed tracing timestamps (
tracestateand payloadti) were sent in seconds instead of milliseconds when using the new event system. - Fixed an issue where successful
MobileRequestevents lost all distributed tracing attributes when a cross-platform SDK passedtraceHeaders. - Updated the native agent to prevent adding duplicate distributed traces to requests reported with
traceHeadersby Flutter, React Native, or other hybrid agents. This applies to bothMobileRequestandMobileRequestErrorin both event systems. - Enforced minimum and maximum boundary limits for
MaxEventPoolSizeandMaxEventBufferTimeconfiguration settings (maximum buffer time capped at 600 seconds). - Updated
recordCustomEventto return a boolean indicating whether the event was successfully added when using the new event system, rather than always returningYES. - Updated React Native JavaScript error uploads to pass the correctly cased
ReactNativeplatform value, matching the Android agent behavior.
Nueva característica
- Se actualizó la configuración de compilación de XCFramework para apuntar a una versión de despliegue mínima de iOS 15.0 y tvOS 15.0, en consonancia con los requisitos mínimos de plataforma documentados.
Corrección de errores
Se resolvió un bloqueo (
SIGSEGVdentro deobjc_msgSend) que ocurría durante las lecturas de configuración de harvest. Ocho propiedades de objeto enNRMAHarvesterConfigurationdeclaradas comoassignretenían punteros colgantes después del vaciado del autorelease pool de la respuesta/connecto del diccionarioNSUserDefaults.Se resolvió un problema en el que se descartaban todas las trazas de actividad de una sesión cuando la respuesta
/connectomitía el atributoat_capture.Se corrigió el valor
platformreportado con errores de React Native para que se reporte comoReactNative.Se corrigió el campo
agentVersionen la carga de errores de JavaScript para informar con precisión la versión del agente de iOS en lugar de la versión de la plataforma del host.Se actualizó la validación del atributo personalizado: pasar un objeto
NSArrayoNSDictionarycomo atributo de evento ahora registra un error explícito que identifica el tipo no compatible, reemplazando el mensaje de advertencia genérico"value must be an NSString, NSNumber, or BOOL".
Corregido en esta versión
Se corrigió el orden de los eventos de Session Replay antes de Meta/FullSnapshot.
se corrigió la posible pérdida de datos al reescribir
NRMAExceptionMetaDataStore.Se corrigió el script de carga de sourcemap de RN.
Se corrigió un posible problema de reinicio de sesión en
checkAndHandleSessionTimeout.
Corregido en esta versión
Se corrigió un error en el que llamar a setUserId con nil siempre iniciaba una nueva sesión.
Se evitó que los fotogramas antiguos de Session Replay se cargaran con una nueva sesión.
Se cambió reachability para actualizar una devolución de llamada en caso de cambio en lugar de llamarla cada vez.
Se corrigió un fallo de invalidación hexadecimal.
Se corrigió un fallo de vendorId de setUserId.
Se corrigió la atomicidad en las colecciones de traza de NRMA.
Se corrigió setUserId para que se mantenga sincrónico.
Se corrigió un fallo al cambiar Session Replay de un Timer a un DispatchSourceTimer.
Se corrigió un fallo de NRMAMethodProfiler de CoreData.
Se corrigió un fallo al hacer que sessionAttributeJSONString tome una instantánea de los diccionarios.
Se corrigió el texto de MSR al limitar el desplazamiento de compensación de ancho del texto de SwiftUI a su contenido.
Se corrigió una fuga de memoria de JSErrorController.
Se corrigió el texto de MSR al hacer referencia al peso de fuente numérico preciso en lugar del atributo binario de negrita.
Se actualizaron las herramientas de carga de dSYM para agregar el parámetro appVersion a dsym-upload-tools run-symbol-tool.
Se corrigieron los modales de SwiftUI faltantes en MSR.
Nueva característica
Los dispositivos simuladores ahora se reportan como simulator-(deviceType).
Corregido en esta versión
- Se eliminó la detección de KMP que estaba causando inestabilidad en 7.7.3.
- Se corrigió un bloqueo que podía ocurrir al registrar requests web asíncronas.
- Se corrigió un bloqueo causado por una condición de carrera en la configuración de harvest.
New Features
Offline storage functionality for Mobile Session Replay.
Fixed in this release
Replaced timestamp-seeded LCG in IGuidGenerator with arc4random_buf.
Added EU region detection to RN Sourcemap upload.
Blocked recursion for MAUI style default interaction swizzle.
Renamed appVersionId to appVersion in RN source map upload.
Fixed infinite loop in EventDeserializer that froze the agent on launch.
Changed default session replay masking mode to not allow unmasking using programmatic APIs and fixed UIKit override APIs.
Fixed crash that could occur in NRMAWKWebViewNavigationDelegate webViewWebContentProcessDidTerminate.
Ensured session replay data uploads on next launch if it failed to upload when the app closed.
Discarded permanently-rejected (400/403) crash reports.
Added TTL eviction for offline storage (#786).
Fixed NRMAHarvestController initialize crash (#793).