转自王中周的技术博客

问题说明

 
在做地图类应用时,经常需要用到位置模拟功能。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. XSS注入常用语句(整理)

    <script>alert('hello,gaga!');</script> //经典语句,哈哈! >"'><img src="javas ...

  2. 【监控笔记】【1.2】监控事件系列——SQL Trace(默认跟踪与自定义跟踪)

    目录: [1.1]概念与使用 [1.2]跟踪的基本操作 --[1.2.1]查看默认跟踪是否在运行 --[1.2.2]开启默认跟踪 --[1.2.3]关闭默认跟踪 --[1.2.4]查看跟踪文件/查看跟 ...

  3. PC端微信防撤回功能分析

    1.打开PC端微信的安装目录,有一个WeChatWin.dll文件,微信的所有功能基本上都在这个文件中了 2.OD打开,搜索字符串revokemsg(撤回消息,掌握一门外语是多么的重要啊!!!),在所 ...

  4. read、readline 和 readlines 的区别?

    假设a.txt的内容如下所示: 1 Hello 2 Welcome 3 What is the fuck... read:读取整个文件. read([size])方法从文件当前位置起读取size个字节 ...

  5. 打印Java main参数

    public class Main { public static void main(String args[]){ System.out.println("打印main方法中的输入参数, ...

  6. CSP2019

    $CSP\space S$ 格雷码 $solution:$ 直接模拟即可. 时间复杂度 $O(n)$ . #include<iostream> #include<cstring> ...

  7. HeidiSQL

    相关链接 https://www.heidisql.com/ - 官网 https://github.com/HeidiSQL/HeidiSQL - 源码 参考 ...

  8. 34. Find First and Last Position of Element in Sorted Array (JAVA)

    Given an array of integers nums sorted in ascending order, find the starting and ending position of ...

  9. flockfile, ftrylockfile, funlockfile - 为标准输入输出锁定文件 FILE

    SYNOPSIS 总览 #include <stdio.h> void flockfile(FILE *filehandle); int ftrylockfile(FILE *fileha ...

  10. Insomni'hack teaser 2019 - Misc - curlpipebash

    参考链接 https://ctftime.org/task/7454 题目 Welcome to Insomni'hack teaser 2019! Execute this Bash command ...