init()

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)

    }
  }