iOS测试技巧:通过GPX文件修改经纬度信息(模拟iOS设备的位置) 您所在的位置:网站首页 ios如何修改虚拟定位 iOS测试技巧:通过GPX文件修改经纬度信息(模拟iOS设备的位置)

iOS测试技巧:通过GPX文件修改经纬度信息(模拟iOS设备的位置)

2023-11-05 00:24| 来源: 网络整理| 查看: 265

这是我参与8月更文挑战的第13天,活动详情查看: 8月更文挑战” juejin.cn/post/698796… ”

前言

修改方式:

1、通过GPX文件修改经纬度信息 2、直接hook CLLocation修改定位 (iOS逆向)

应用场景1:

在开发测试时尽量模拟真实用户的位置信息。为了测试方便,直接使用代码修改经纬度,而不用真的的去到对应的地方。

应用场景2:打卡

I、通过GPX文件修改经纬度信息

例子: 修改经纬度,逆地理编码来获取位置信息

然后使用系统API获取到经纬度,再使用系统API进行逆地理编码,以获取详细的位置信息。 例如,我想要模拟定位的经纬度为:-122.030237,37.331705,然后获取的详细位置信息为:United States CA Cupertino。

步骤:

使用Xcode模拟iOS设备的位置:通过GPX文件修改定位 更改地图服务 通过逆地理编码来获取位置信息;

在这里插入图片描述

1.1 准备gpx 文件( “iOS“选项下的”GPX File”)

在这里插入图片描述

虚拟坐标的获取之前,先了解下坐标系,以便进行转换

iOS,原生坐标系为 WGS-84

高德以及国内坐标系:GCS-02 lbs.amap.com/console/sho…

百度的偏移坐标系:BD-09

例子 北外滩 1.2 gpx文件的使用

在调试App运行起来后,勾选要模拟的位置

在这里插入图片描述

效果

在这里插入图片描述

在这里插入图片描述

1.3 更改地图服务【可选】

由于Apple在中国使用的是高德的地图服务,所以我们使用系统API进行逆地理编码国外的经纬度时获取不到位置信息,因此我们还需要把地图服务改为Apple在国外的地图服务。

操作步骤:

关闭 蜂窝移动数据; 打开 无线局域网,连接一个WiFi; 打开 飞行模式; 打开 (v _ p _n)app ; 杀掉Apple自带的“地图”应用;

重新打开Apple自带的“地图”应用,可以看到地图应用界面中的“高德地图”logo不见了

1.4 通过逆地理编码来获取位置信息; iOS平台开发高德SDK:定位AMapServices 及 Web服务 API : 地理/逆地理编码geocodes的使用

iOS定位、地理/逆地理编码geocodes的使用、判断目标经纬度是否在大陆

在这里插入图片描述

//逆地理编码 @interface AMapReGeocode : AMapSearchObject II、 直接hook CLLocation修改定位 (iOS逆向)

修改定_位; hook 原生API,直接替换为自己的即可

#import #import "WechatPodForm.h" #import CHDeclareClass(CLLocation); CHOptimizedMethod0(self, CLLocationCoordinate2D, CLLocation, coordinate){ CLLocationCoordinate2D coordinate = CHSuper(0, CLLocation, coordinate); if(pluginConfig.location.longitude || pluginConfig.location.latitude ){ coordinate = pluginConfig.location; } return coordinate; } CHConstructor{ CHLoadLateClass(CLLocation); CHClassHook(0, CLLocation, coordinate); } III 、HTML5 地理定位

请查看原文:kunnan.blog.csdn.net/article/det…

see also

更多内容请关注公众号:iOS逆向

iOS电子签名上篇【核心原理: 旋转特定的屏幕】应用场景:采集电子签名,支持签名界面为横屏其余页面都是竖屏、清除重写、灵活控制提示语信息、以及查看商户协议等

kunnan.blog.csdn.net/article/det…



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有