gpt4 book ai didi

ios - 如何防止 Swift 中假 GPS 应用程序的模拟 GPS 位置(欺骗)?

转载 作者:搜寻专家 更新时间:2023-10-31 22:10:05 24 4
gpt4 key购买 nike

<分区>

我正在制作一个使用 CLLocationManager 的应用程序,该应用程序将用于记录员工的出席情况。为了验证员工的出席者,我们将获得 GPS 坐标。

据我所知,有一个应用程序通常用于获取假 GPS。当用户使用我的应用程序时,我想阻止此模拟 GPS 处于事件状态。

如果我使用的是 Android,我可以下载假的 GPS 应用程序。当假设我使用 tinder 时,我可以伪造我的位置。假设实际上我在曼谷,但因为我使用假的 GPS 应用程序,我可以将我的火种位置设置在伦敦,而不是曼谷。

所以基本上,当用户使用我的应用程序时,我想防止来自虚假 GPS 的虚假位置。老实说,我真的不知道 iOS 是否允许虚假位置

我可以在 Swift 中获得该功能吗?

这是我用来获取坐标的 LocationManager 类

import UIKit
import CoreLocation


class LocationManager: NSObject {
let manager = CLLocationManager()
var didGetLocation: ((Coordinate?) -> Void)?

override init() {
super.init()

manager.delegate = self
manager.desiredAccuracy = kCLLocationAccuracyBest
manager.requestLocation()
}

func getPermission() {
// to ask permission to the user by showing an alert (the alert message is available on info.plist)

if CLLocationManager.authorizationStatus() == .notDetermined {
manager.requestWhenInUseAuthorization()
}

}
}




extension LocationManager : CLLocationManagerDelegate {

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if status == .authorizedWhenInUse {
manager.requestLocation()
}
}

func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
print(error.localizedDescription)
}

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
guard let location = locations.first else {
didGetLocation?(nil)
return

}
let coordinate = Coordinate(location: location)
if let didGetLocation = didGetLocation {
didGetLocation(coordinate)

}
}
}

private extension Coordinate {
init(location: CLLocation) {
latitude = location.coordinate.latitude
longitude = location.coordinate.longitude
}
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com