LocationSpoofer
LocationSpoofer是一个iOS库,可以模拟/伪造设备位置,而不需要修改现有的CoreLocation代码。
安装
LocationSpoofer通过CocoaPods提供。要安装它,只需将以下行添加到Podfile中
pod 'LocationSpoofer'
使用方法
要伪造您的当前位置,只需将LocationSpoofer
的location
属性设置为非nil值
/// Swift
let alcatraz = CLLocation(latitude: 37.825944, longitude: -122.422398)
LocationSpoofer.shared.location = alcatraz
/// Objective-C
CLLocation *alcatraz = [[CLLocation alloc] initWithLatitude:37.825944 longitude:-122.422398];
[LOSPLocationSpoofer sharedSpoofer].location = alcatraz;
地理编码助手
不想查找确切的经纬度?LocationSpoofer 提供相应的助手
/// Swift
let address = "1 Telegraph Hill Blvd, San Francisco, CA 94133"
CLLocation.losp_get(withAddress: address) { location, error in
guard let location = location else {
print("Error: \(String(describing: error))")
return
}
LocationSpoofer.shared.location = location
}
/// Objective-C
NSString *address = @"1 Telegraph Hill Blvd, San Francisco, CA 94133";
[CLLocation losp_getLocationWithAddress:address completion:^(CLLocation *location, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
}
[LOSPLocationSpoofer sharedSpoofer].location = location;
}];
行程
LocationSpoofer可以模拟行程,即从一个起始坐标到终止坐标的移动位置。
/// Swift
let startAddress = "1150 Lombard St, San Francisco"
let endAddress = "950 Lombard St, San Francisco"
Trip.getWithStartAddress(startAddress, endAddress: endAddress, duration: 10) { trip, error in
guard let trip = trip else {
print("Error: \(String(describing: error))")
return
}
LocationSpoofer.shared.location = trip
}
```objc
/// Objective-C
NSString *startAddress = @"1150 Lombard St, San Francisco";
NSString *endAddress = @"950 Lombard St, San Francisco";
[LOSPTrip getTripWithStartAddress:startAddress endAddress:endAddress duration:10 completion:^(LOSPTrip *trip, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
}
[LOSPLocationSpoofer sharedSpoofer].location = trip;
}];
禁用位置伪装
要禁用位置伪装,只需将 LocationSpoofer
上的 location
属性设置为 nil
。
/// Swift
LocationSpoofer.shared.location = nil
/// Objective-C
[LOSPLocationSpoofer sharedSpoofer].location = nil;
调试视图控制器
LocationSpoofer 提供了模糊位置的界面;如果你有调试菜单,你可以将其嵌入其中,或者通过自定义手势来实现。
/// Swift
let vc = LocationDebugViewController()
present(vc, animated: true)
/// Objective-C
LOSPLocationDebugViewController *vc = [[LOSPLocationDebugViewController alloc] init];
[self presentViewController:vc animated:YES completion:nil];
作者
LocationSpoofer 由 Buglife 团队构建,我们希望它能为您节省不必要的驾驶时间:)。
许可协议
LocationSpoofer 在 MIT 许可协议下可用。更多信息请参阅 LICENSE 文件。