我正在制作一个依赖手机位置才能正常工作的应用程序,从某种意义上说,它是一种游戏,作弊者会毁掉它。
在android中,我认为防止这种情况很简单,因为我将使用gps位置并使用Google Geolocation API,通过使用手机信号塔id(我只需要确认该人是否在城市内,不需要非常准确)。 https://developers.google.com/maps/documentation/geolocation/overview
在IOS上,我知道我必须首先防止越狱。但即使没有越狱,我怎样才能防止人们伪造他们的位置呢? CoreLocation 是否被欺骗?
提前致谢
iOS Google Maps API 不使用 CoreLocation。它仅使用 Google Maps iOS SDK 中未内置的位置管理器。您想要做什么需要可靠的位置?
适用于 iOS 15 及以上版本,
func isLocationSimulated() -> Bool {
if #available(iOS 15.0, *) {
let locationManager = CLLocationManager()
let isLocationSimulated = locationManager.location?.sourceInformation?.isSimulatedBySoftware ?? false
let isProducedByAccess = locationManager.location?.sourceInformation?.isProducedByAccessory ?? false
let info = CLLocationSourceInformation(softwareSimulationState: isLocationSimulated, andExternalAccessoryState: isProducedByAccess)
return info.isSimulatedBySoftware || info.isProducedByAccessory
} else {
return false
}
}