LocationSpoofer 0.1.0

LocationSpoofer 0.1.0

Dave Schukin维护。



  • 作者
  • buglife

LocationSpoofer

Platform CocoaPods Compatible License Twitter

LocationSpoofer是一个iOS库,可以模拟/伪造设备位置,而不需要修改现有的CoreLocation代码。

安装

LocationSpoofer通过CocoaPods提供。要安装它,只需将以下行添加到Podfile中

pod 'LocationSpoofer'

使用方法

要伪造您的当前位置,只需将LocationSpooferlocation属性设置为非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];

Screenshots of the debug view controllers

作者

LocationSpoofer 由 Buglife 团队构建,我们希望它能为您节省不必要的驾驶时间:)。

许可协议

LocationSpoofer 在 MIT 许可协议下可用。更多信息请参阅 LICENSE 文件。