妙用 Xcode 修改 iPhone 的当前定位位置
妙用 Xcode 修改 iPhone 的当前定位位置
在iOS应用开发和测试过程中,有时需要改变设备的定位位置来测试特定功能。本文将介绍如何在不需要越狱的情况下,使用Xcode工具临时修改iPhone的当前定位位置。
iPhone可以利用GPS来精确定位所处的位置,借助得到的位置结果可以应用在众多地图类、社交类等app中。为了app的开发和测试或者一些其他目的,有时需要改变当前的定位位置来测试一些结果。本文的主题就是在不需要越狱的前提下,使用iOS开发最常用的Xcode工具来临时修改iPhone的当前定位位置。
背景
地图中的每一个点都有一个坐标,可以用经度(表东西方向)和纬度(表南北方向)来表示。针对于这个坐标,我们常见的有三种坐标系标准:
要想把定位位置改成我们想要的位置,首先要找到那个位置的经度+维度坐标,确定其使用的坐标标准,利用工具将其转换为WGS-84标准,获取到在WGS-84标准下的准确坐标。
准备
以下以「上海中心」这个地理位置坐标作为最终目标为例说明:
- 获取GCJ-02标准的地理位置坐标:在高德地图或者Google地图中找到上海中心的经纬度坐标(GCJ-02标准)为121.505385,31.233526,如下图:
高德地图
Google Map
- 获取WGS-84标准的地理位置坐标:利用转换工具将获取到的GCJ-02标准的坐标转换成WGS-84标准的坐标,如下图,最终获取到的WGS-84坐标为121.50097295,31.23555959。
- 配置一个GPX格式的文件:这个文件稍后会导入到Xcode项目中使用,文件内容如下,注意将其中的lat和lon改成刚刚你获取到的WGS-84坐标。
<?xml version="1.0" encoding="UTF-8" ?>
<gpx version="1.1"
creator="GMapToGPX 6.4j - http://www.elsewhere.org/GMapToGPX/"
xmlns="http://www.topografix.com/GPX/1/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<wpt lat="31.23555959" lon="121.50097295">
</wpt>
</gpx>
操作
- 在Xcode中新建一个项目,并将刚刚创建的GPX格式文件拖入到项目中,如下图:
打开Xcode项目的「Edit Scheme…」设置窗口,在「Run-Option-Core Location」中选中「Allow Location Simulation」,并在「Default Location」选择刚刚添加的GPX文件(Default Location中默认包含了一些全世界各个国家和地区的位置,这些位置的周围一般都有一家Apple Store),如下图:
在iPhone真机上编译并运行此app,此时手机的定位位置就已经变成了「上海中心」,可以在地图app或者社交app中查看确认。
只要在Xcode中停止运行app,这个模拟的地理位置就可以保持一段时间,在Xcode中停止运行app或者重启手机都会恢复成真实的地理位置。
以上就是本文的全部内容,希望对大家的学习有所帮助。