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.
Novo recurso
- Atualizada a configuração de build do XCFramework para definir como destino uma versão mínima de implantação do iOS 15.0 e tvOS 15.0, alinhando-se aos requisitos mínimos de plataforma documentados.
Correções de bugs
Resolvida uma falha (
SIGSEGVemobjc_msgSend) que ocorria durante as leituras de configuração de harvest. Oito propriedades de objeto emNRMAHarvesterConfigurationdeclaradas comoassignretiveram ponteiros pendentes após a drenagem do autorelease pool da resposta/connectou do dicionárioNSUserDefaults.Resolvido um problema em que todos os traces de atividade eram descartados para uma sessão quando a resposta
/connectomitia o atributoat_capture.Corrigido o valor
platformrelatado com erros do React Native para ser relatado comoReactNative.Corrigido o campo
agentVersionna carga de erro do JavaScript para relatar com precisão a versão do agente iOS em vez da versão da plataforma host.Atualizada a validação de atributo personalizado: passar um objeto
NSArrayouNSDictionarycomo um atributo de evento agora registra um erro explícito identificando o tipo não compatível, substituindo a mensagem de aviso genérica"value must be an NSString, NSNumber, or BOOL".
Corrigido nesta versão
Corrigida a ordenação de eventos do Session Replay antes do Meta/FullSnapshot.
corrigida a possível ausência de dados ao reescrever
NRMAExceptionMetaDataStore.Script de upload de sourcemap do RN corrigido.
Corrigido um possível problema de reinício de sessão no
checkAndHandleSessionTimeout.
Corrigido nesta versão
Corrigido um bug em que chamar setUserId com nil sempre iniciava uma nova sessão.
Evitado o upload de quadros antigos do Session Replay com uma nova sessão.
Alterada a acessibilidade para atualizar um retorno de chamada na alteração em vez de chamá-lo todas as vezes.
Corrigida a falha de invalidação de hex.
Corrigida a falha de vendorId do setUserId.
Corrigida a atomicidade nas coleções de trace do NRMA.
Corrigido o setUserId para permanecer síncrono.
Corrigido um travamento ao alterar o Session Replay de um Timer para um DispatchSourceTimer.
Corrigida uma falha no CoreData NRMAMethodProfiler.
Corrigida uma falha fazendo com que sessionAttributeJSONString tire um snapshot de dicts.
Corrigido o texto MSR limitando o deslocamento de compensação de largura de texto do SwiftUI ao seu conteúdo.
Corrigido um vazamento de memória no JSErrorController.
Corrigido o texto MSR referindo-se ao peso numérico preciso da fonte em vez do traço negrito binário.
Atualizadas as ferramentas de upload de dSYM para adicionar o parâmetro appVersion ao dsym-upload-tools run-symbol-tool.
Corrigidos os modais ausentes do SwiftUI no MSR.
Novo recurso
Os dispositivos simuladores agora são reportados como simulator-(deviceType).
Corrigido nesta versão
- Removida a detecção de KMP que estava causando instabilidade na versão 7.7.3.
- Corrigida uma falha que poderia ocorrer ao registrar requests da web assíncronas.
- Corrigida uma falha causada por uma condição de corrida na configuração 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).