转自王中周的技术博客

问题说明

 
在做地图类应用时,经常需要用到位置模拟功能。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. glide使用总结

    1 glide是什么 glide是一个图片加载和缓存库. 2 glide的使用 第一,添加依赖 implementation 'com.github.bumptech.glide:glide:4.5. ...

  2. Android的Monkey和MonkeyRunner

    本文部分解释性语段摘自网络百科或其它BLOG,语句内容网络随处可见,也不知道谁是初始原创,便不再署名出处,如有雷同,还请见谅. Monkey 什么是Monkey Monkey是Android中的一个命 ...

  3. P3984高兴的津津

    这道题的标签是并查集,但其实是一个并查集思想的模拟题. 被算法标签迷惑了,一直在想怎么存f[],然后怎么查找,但发现其实很难去做.然后就发现其实就是做一个选择就可以了:拿AU的第i次包含在i-1次里, ...

  4. Codeforces 1262F Wrong Answer on test 233(组合数)

    E1:设dp[i][j],表示在第i个位置的当前新状态超过原状态j分的方案数是dp[i][j],那么对于这种情况直接进行转移即可,如果a[i]==b[i]显然k种选择都可以,不影响j,如果不一样,这个 ...

  5. Java并发编程:锁的释放

    Java并发编程:锁的释放 */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #839496;} Ja ...

  6. HTML中button标签点击实现页面跳转

    方法1:使用onclick事件 <input type="button" value="按钮" onclick="javascrtpt:wind ...

  7. JS中对数组元素进行增、删、改、查的方法,以及其他方法

    前言 昨天联调一个页面,看着就一个页面,接口倒是不少. 热点问题配置测试联调完成(同步异步接口共11个) 1.配置新增 2.配置编辑 3.配置删除 4.热点问题新增 5.热点问题编辑 6.热点问题删除 ...

  8. 使用pyenv对python版本管理

     1.使用pyenv进行python版本管理   1.1安装对应的依赖包,如果不安装后续操作可能会因为缺少某一个变量包而出现错误 sudo apt-get install -y make build- ...

  9. Apache 的 php.ini 配置文件详解

    [root@taokey ~]# grep -v ";" /application/php/lib/php.ini [PHP] engine = On  ——→  是否启用 PHP ...

  10. fpga ip

    原文地址:altera FIR ip核 license破解作者:王永刚Aether 在证书文件中添加一段: FEATURE 6AF7_0012 alterad 2035.12 permanent un ...