how to get user live location in Background and terminated mode?

Hi All, I need user continues location event if app in background and terminated (Not-running) mode below is the code I'm using to get the location but still I'm not get the location continuously

import BackgroundTasks import UIKit
class AppDelegate: UIResponder, UIApplicationDelegate {

var significatLocationManager: CLLocationManager?
func startSignificationLocation() {
    self.significatLocationManager = CLLocationManager()
    self.significatLocationManager?.delegate = self
    self.significatLocationManager?.activityType = .fitness
    self.significatLocationManager?.distanceFilter = 10
    self.significatLocationManager?.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
    self.significatLocationManager?.allowsBackgroundLocationUpdates = true
    self.significatLocationManager?.pausesLocationUpdatesAutomatically = false
    self.significatLocationManager?.startUpdatingLocation()
    self.significatLocationManager?.startMonitoringSignificantLocationChanges()
    self.significatLocationManager?.requestAlwaysAuthorization()
}
func stopAllRegionMonitoring(locationManager:CLLocationManager?){
    for delRegion in (locationManager?.monitoredRegions ?? []){locationManager?.stopMonitoring(for: delRegion)}
}

}

extension AppDelegate: CLLocationManagerDelegate { func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { self.myLocation = locations.last //call update My Location API if (self.myLocation?.horizontalAccuracy ?? 0.0) <= (self.liveLocationTrackingRegionRadius + 15.0 ){ self.createRegion(location: self.myLocation) } else { manager.stopUpdatingLocation() manager.startUpdatingLocation() }
} func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {} func locationManagerDidPauseLocationUpdates(_ manager: CLLocationManager) { manager.startUpdatingLocation() } func locationManagerDidResumeLocationUpdates(_ manager: CLLocationManager) { manager.startUpdatingLocation() } } extension AppDelegate { func createRegion(location:CLLocation?, type:LocationRegionMonitoringTyep = .LiveLocationTracking) { if self.significatLocationManager == nil { self.startSignificationLocation() } guard let location = location else { return } guard CLLocationManager.isMonitoringAvailable(for: CLCircularRegion.self) else{ return }

    var identifier:String = "Live_Location_Tracking-" + "\(location.coordinate.latitude)" + "-" +  "\(location.coordinate.longitude)"
    if (self.significatLocationManager?.monitoredRegions.count ?? 0) > 10 {
        self.stopAllRegionMonitoring(locationManager: self.significatLocationManager)
    }
    var region : CLCircularRegion?
    region = CLCircularRegion(center: CLLocationCoordinate2D(latitude: location.coordinate.latitude,longitude: location.coordinate.longitude),radius: 10.0 ,identifier: identifier)
    region?.notifyOnExit = true      
    self.significatLocationManager?.startUpdatingLocation()
    if let reg = region {
        self.significatLocationManager?.startMonitoring(for: reg)
    }
}
func stopAllRegionMonitoring(locationManager:CLLocationManager?){
    let WOMRequestId:String? = UserDefaultManager.shared.womEmergencyDetails?.data?.request?.id
    for delRegion in (locationManager?.monitoredRegions ?? []){
        if let reqId = WOMRequestId {
            if delRegion.identifier.contains(reqId) {
                locationManager?.stopMonitoring(for: delRegion)
            }
        } else {
            locationManager?.stopMonitoring(for: delRegion)
        }
    }
}
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
    if region.identifier.contains(AppConstants.WatchOverMe) {
        AppDelegate.shared?.isWOMReachDestination(location: manager.location, region: region)
    }    }

func locationManager(_ manager: CLLocationManager, didExitRegion region: CLRegion) {
    self.myLocation = manager.location
    manager.stopMonitoring(for: region)
    self.significatLocationManager?.stopMonitoring(for: region)
    manager.startUpdatingLocation()
    self.significatLocationManager?.startUpdatingLocation()
    self.createRegion(location: self.myLocation)
    //update M yLocation API
    if region.identifier.contains( AppConstants.WatchOverMe ) {
        TabBarController.isWOMReachDestinationAlertShown = false
    }
}

func locationManager(_ manager: CLLocationManager, monitoringDidFailFor region: CLRegion?, withError error: Error) { self.myLocation = manager.location self.createRegion(location: self.myLocation) } } extension AppDelegate { func applicationDidEnterBackground(_ application: UIApplication) { self.scheduleBackgroundTask() } func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { completionHandler(.newData) } func registerBGTask(){ BGTaskScheduler.shared.register(forTaskWithIdentifier: self.getBGTaskIdentifier(), using: nil) { task in self.handleBackgroundTask(task: task as! BGAppRefreshTask) } } func handleBackgroundTask(task: BGAppRefreshTask) { task.setTaskCompleted(success: true) } func scheduleBackgroundTask() { let request = BGAppRefreshTaskRequest(identifier: self.getBGTaskIdentifier() ) request.earliestBeginDate = Date(timeIntervalSinceNow: 10) // 30 second do { try BGTaskScheduler.shared.submit(request) } catch { print("Unable to schedule background task: (error)") } } func getBGTaskIdentifier()->String { let bundleId:String = AppInfoManager.shared.bundleId + ".locationBackgroundTask" return bundleId } func startLocationTrackingTimer() { self.stopLocationTrackingTimer() self.locationTrackingTimer = Timer.scheduledTimer(timeInterval: 1.0,target: self, selector: #selector(self.updateUserLocation),userInfo: nil,repeats: true) RunLoop.current.add(self.locationTrackingTimer!, forMode: .common) } func stopLocationTrackingTimer() { self.locationTrackingTimer?.invalidate() self.locationTrackingTimer = nil } @objc func updateUserLocation() { if self.isSocketActive { self.updateMyLocationAPI(fromRoam: false) } else { self.updateUserCurrentLocation() } } }

how to get user live location in Background and terminated mode?
 
 
Q