转自王中周的技术博客

问题说明

 
在做地图类应用时,经常需要用到位置模拟功能。iOS模拟器提供了该功能,我们可以设置指定的经纬度,选中模拟器后,按照以下菜单层次进入即可设置:
  1. Debug --> Location --> Custom Location
但是该功能存在的问题是设置完经纬度每次重新run程序,或者重启模拟器的时候都有可能使之前设置的Location状态从Custom Location变成None,导致设置的经纬度信息无效。
 
因此经常需要重新选择Custom Location,对于每天需要run程序n次的我们来说苦不堪言…
 
解决方案
好在Xcode的target设置项中提供了设置位置信息的方法,允许我们使用GPX文件来设置自定义位置信息,步骤如下:
 
获取GPX文件
 
GPX(GPS eXchange Format, GPS交换格式)是一个XML格式,为应用软件设计的通用GPS数据格式。它可以用来描述路点、轨迹、路程。(来自维基百科
 
我们可以通过第三方网站:gpx-poi.com来生成一个GPX文件,生成过程也很方便:
 
在网站左上角拖动地图到指定位置,鼠标单击后会出现一个红色标注,同时地图下方会显示出标注的经纬度数据;
 
点击地图下方的Update按钮就能将经纬度信息更新到界面右侧的位置信息描述表格中;
 
然后将界面拉到底部,填写GPX文件名称,选择操作系统型号;
 
点击Create按钮即可生成一个XML格式的GPX文件,再点击Download按钮即可将文件下载到本地。
 
生成的GPX文件大概是这样:
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <gpxxmlns="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"version="1.1" creator="gpx-poi.com">
  3. <wpt lat=“41.988810" lon="116.474828">
  4. <time>2014-05-25T07:27:53Z</time>
  5. <name>A</name>
  6. </wpt>
  7. </gpx>
 
导入GPX文件
 
在Xcode中选中指定target,按以下菜单层次进入:
  1. Edite Scheme -->  Options -->  Default Location -->  Add GPX File to Project
(此时必须保证Allow Location Simulation选项是选中的,该设置项默认选中。)
 
如图所示:
即可将刚才生成并下载到本地的GPX文件添加到工程里。从此以后不管是重新run程序还是重启模拟器都可以在程序启动的时候定到位。
 
不过这种做法有个缺点,我在实际使用的时候发现设置完Default Location以后,真机的位置信息也会被更改成设置的位置!!!还请记得在软件发布时删除该设置项。

iOS模拟器Custom Location被重置解决方案的更多相关文章

  1. Xamarin的不归路-ios模拟器没有键盘

    ios模拟器没有键盘解决方案: 勾选上就有了. 2016年9月1日

  2. 在iOS模拟器上安装程式的ios-sim

    针对iOS装置进行开发时,绝大部分开发者采用的工具都是官方的Xcode.问题是负责图像设计和开发管理人员,却不一定熟悉Xcode的操作,这时ios-sim便是一个解决方案. 曾经从事iOS开发的朋友, ...

  3. IOS模拟器调试ANE

    来源:http://www.tuicool.com/articles/AFRJzi 利用iOS模拟器来检测和调试AIR应用程序补充篇 Air3.4来了 除去可以直接往模拟器里面部署应用,还可以往真机里 ...

  4. Xcode模拟器启动不了,修复ios模拟器

    1.如果可以重置模拟器 首先试试重置模拟器 2.如果不能重置,可以选择使用如下命令杀死模拟器服务: killall -9 com.apple.CoreSimulator.CoreSimulatorSe ...

  5. Xamarin的不归路-ios模拟器调整窗口大小

    ios模拟器调整窗口大小:

  6. Xcode无法启动ios模拟器的问题

    一.问题描述 开发过程需要来回切换ios模拟器调试程序,开始在iPhone 4s下调试,然后切换到iPhone 6s Plus,再切换回iPhone 4s,遇到无法启动ios模拟器.错误提示如下: 二 ...

  7. storyboard在ios模拟器无法显示的问题

    一.问题描述 1.在原有项目新建一个名称为test的storyboard类型的文件. 2.test.storyboard添加View Controller,并设置View Controller下Vie ...

  8. Xcode5 运行程序 提示IOS 模拟器未能安装此应用程序

    更新了Xcode5,结果模拟器各种不配合,首先遇到的问题就是提示“IOS 模拟器未能安装此应用程序” 上网查了一下,网友给出的解决办法“删除~/Library/Application Support/ ...

  9. Xamarin.iOS模拟器调试找不到资源文件

    Xamarin.iOS模拟器调试找不到资源文件 在Visual Studio 2015中,运行Xamarin.iOS项目,出现找不到资源文件的错误.错误信息:System.IO.FileNotFoun ...

随机推荐

  1. JavaSE_Java跨平台原理

    Java语言的核心优势就是跨平台. C/C++语言都是直接编译成针对特定平台的机器码,如果要跨平台,需要借用相应的编译器重新编译.Java源程序(.java)要先编译成与平台无关的字节码文件(.cla ...

  2. Spring源码深度解析

    Spring源码分析 Spring Web入门及源码学习 [Spring源码分析]Bean加载流程概览 Spring Framework 实现原理与源码解析系统 Spring源码分析--水门 Spri ...

  3. 005 gcc 的简单使用

    0. 前言 本文主要讲关于 gcc 的几种编译方式 不妨设文件名为 test.c 1. 方法一 $ gcc test.c (Windows OS)编译成功的话,没有回馈,在 test.c 所在的文件夹 ...

  4. SpringBoot自定义Starter实现

    自定义Starter: Starter会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦.Starter 提供了一种开箱即用的理念,其中核心就是springboot的自动配置原理相 ...

  5. 如何在ubuntu上安装 搜狗输入法(已经成功)

    转自:https://blog.csdn.net/qq_37589838/article/details/81208409 本文链接:https://blog.csdn.net/qq_37589838 ...

  6. Luogu P4040 [AHOI2014/JSOI2014]宅男计划

    题目 显然存活天数与叫外卖次数的函数是凸函数. 所以三分买外卖的次数. 然后把食品按保质期升序排序. 并且单调栈搞一下,把又贵又保质期短的丢掉. 那么随着保质期的增加,食品的价格一定上涨. 所以我们从 ...

  7. laravel5.5结合bootstrap上传插件fileinput 上传图片

    引入相关js <script src="{{ asset('bootstrap-fileinput/js/fileinput.js') }}"></script& ...

  8. JavaScript的二维数组

    二维数组的初始化: 实例① var arr = [[1,2],['a','b']]; console.log(arr[1][0]); //a 第2列第1行所在的元素 实例② var arr = new ...

  9. 前端校招知识体系之HTML5

    啥是HTML5?官方说HTML5 是下一代的 HTML... 本文主要介绍HTML5三个方面的知识,继续往下看看吧. 语义化标签 canvas&svg 响应式meta 一.语义化标签 语义化标 ...

  10. Mybatis驼峰式命名

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...