in Sources/apm-agent-ios/Instrumentation/CrashReporting/CrashManager.swift [31:63]
init(resource: Resource, logExporter: LogRecordExporter) {
// if something went wrong with the lastResource in the user defaults, fallback of the current resource data.
var tempResource = resource
if let lastResourceJson = UserDefaults.standard.data(forKey: Self.lastResourceDefaultsKey) {
do {
let decoder = JSONDecoder()
tempResource = try decoder.decode(Resource.self, from: lastResourceJson)
} catch {
os_log("initialization: unable to load last Resource from user defaults.",
log: logger,
type: .error)
}
}
lastResource = tempResource
loggerProvider = LoggerProviderBuilder()
.with(resource: lastResource)
.with(processors: [
BatchLogRecordProcessor(
logRecordExporter: logExporter
)
])
.build()
do {
let encoder = JSONEncoder()
let data = try encoder.encode(resource)
UserDefaults.standard.set(data, forKey: Self.lastResourceDefaultsKey)
} catch {
os_log("initialization: unable to save current Resource from user defaults.", log: logger, type: .error)
}
}