热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS开发调试技巧之模拟定位国外位置

因为App面向的用户为国外用户,所以想在测试时尽量模拟真实用户的位置信息。需要使手机定位的经纬度在国外,然后使用系统API获取到经纬度,再

因为App面向的用户为国外用户,所以想在测试时尽量模拟真实用户的位置信息。需要使手机定位的经纬度在国外,然后使用系统API获取到经纬度,再使用系统API进行逆地理编码,以获取详细的位置信息。

例如,我想要模拟定位的经纬度为:-122.030237,37.331705,然后获取的详细位置信息为:United States CA Cupertino

要想实现我的调试目标,需要以下三步:
一、使用Xcode模拟iOS设备的位置;
二、更改地图服务;
三、通过逆地理编码来获取位置信息;


1. 使用Xcode来模拟iOS设备的位置

1.1 准备 gpx 文件

  1. 新建文件;
  2. 选择新建文件类型, “iOS“选项下的”GPX File”;
  3. 创建 gpx 文件;
  4. 确定 gpx 文件中您想要模拟地点的经纬度;

具体操作步骤如下:
新建文件 --> 文件类型 --> 创建文件


1. 新建文件2. 文件类型

3. 创建文件

gpx文件的内容:


<gpx version&#61;"1.1" creator&#61;"Xcode"><wpt lat&#61;"37.331705" lon&#61;"-122.030237"><name>Cupertinoname>
wpt>gpx>

其中&#xff0c;lat&#61;"37.331705"为纬度值&#xff0c;lon&#61;"-122.030237"为经度值。经纬度的值可在 经纬度坐标拾取 中获取&#xff0c;选择你想要模拟的位置&#xff0c;然后复制经纬度数值&#xff0c;填写到gpx文件的lat&#61;&#xff0c;lon&#61;位置即可&#xff0c;注意&#xff1a;纬度在前&#xff0c;经度在后


1.2 gpx文件的使用

在调试App运行起来后&#xff0c;勾选要模拟的位置&#xff0c;勾选后&#xff0c;您在App中获取到的经纬度即为您想要模拟位置的经纬度了。如下图&#xff1a;
确定模拟位置
以上这种勾选方式需要在调试App每次运行起来后&#xff0c;都勾选一下&#xff0c;有点麻烦。

裤裆里冒烟&#xff0c;当然啦&#x1f604;&#xff0c;有另外一种简单的方式&#xff0c;那就是设置默认的模拟位置&#xff0c;把您想要模拟的位置设置为默认模拟位置就行了。这样&#xff0c;调试App每次运行起来后都会选择您的模拟位置&#xff0c;不用每次都去勾选一下&#xff0c;非常方便。设置方式&#xff1a;在XcodeEdit Scheme中进行设置&#xff0c;如下图&#xff1a;
Edit Scheme中设置默认模拟位置


1.3 模拟位置后的效果

在iPhone真机上把调试App运行起来&#xff0c;并设置模拟位置后&#xff0c;你的iPhone真机定位位置就是你设置的模拟位置了&#xff0c;结果如下&#xff1a;
lat&#61;
你也可以打开百度地图、高德地图等地图App&#xff0c;查看你当前的位置&#xff0c;可以看到同样为&#xff1a;Cupertino - 库比蒂诺&#xff0c;这样你就可以随意模拟你想要的定位位置了&#x1f60e;。


2. 更改地图服务

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


2.1 更改地图服务

操作步骤&#xff1a;


  1. 关闭 蜂窝移动数据&#xff1b;
  2. 打开 无线局域网&#xff0c;连接一个WiFi&#xff1b;
  3. 打开 飞行模式&#xff1b;
  4. 打开 VPN 360 或其他VPN应用&#xff0c;连接VPN&#xff1b;
  5. 杀掉Apple自带的“地图”应用&#xff1b;
  6. 重新打开Apple自带的“地图”应用&#xff0c;可以看到地图应用界面中的“高德地图”logo不见了。


关闭移动数据打开飞行模式

2.2 更改后的效果对比图

  1. 使用高德的地图服务时

模拟地点&#xff1a;库比蒂诺中国区域的地图显示

  1. 使用Apple在国外的地图服务时

模拟地点&#xff1a;库比蒂诺中国区域的地图显示

3. 通过逆地理编码获取位置信息

  1. 准备一个demo项目&#xff0c;导入您想要模拟定位的gpx文件&#xff0c;并在XcodeEdit Scheme中设置为默认模拟位置&#xff1b;
  2. 运行demo项目到您使用的调试真机上&#xff0c;运行成功后&#xff0c;调试真机的定位位置就是您想要模拟定位的位置了&#xff1b;
  3. 再打开您真正想要测试的App&#xff08;不要停止第二步运行的demo项目&#xff09;&#xff0c;则在该App中获取的经纬度就是您模拟的定位位置的经纬度&#xff0c;然后利用系统API逆地理编码出来的位置也是您模拟定位的位置信息。

我的测试中&#xff0c;想要模拟定位位置的经纬度为&#xff1a;-122.030237&#xff0c;37.331705&#xff0c;最后获取的详细位置信息为&#xff1a;United States CA Cupertino



推荐阅读
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了简书APP的PRD文档规范写法及内容概述。PRD文档的要求因公司、团队或产品而异,本文总结了简书APP的PRD文档框架,包括版本信息、文档说明、产品简介、产品特色、用户分析和产品架构等内容。简书APP致力于提供最好的分享体验,为写作者打造最优秀的写作软件,为阅读者打造最优雅的阅读社区。主要用户为喜欢分享交流、爱生活拥有文艺气息的年轻人,喜爱文字并想在喧嚣网络中沉淀文字的读写人。产品架构包括了主要模块,并应展开至最小用户可见单元。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 【工具篇】抓包中的王牌工具—Fiddler (1环境搭建)
    本文介绍了抓包工具Fiddler的概述,包括其功能、选择原因和安装方法。Fiddler是一款免费且功能强大的抓包工具,可用于网络代理、接口测试、安全测试和WEB调试等。安装配置简单,上手快速,适合新手使用。详细的安装地址为https://www.telerik.com/download/fiddl。 ... [详细]
  • Imdevelopinganappwhichneedstogetmusicfilebystreamingforplayinglive.我正在开发一个应用程序,需要通过流 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有