在iPhone模拟器中设置位置

问题描述:

如何在iPhone模拟器中设置位置(因为它是在CoreLocation服务中拾取的)?在iPhone模拟器中设置位置

+0

我添加了一个方法,用于的Xcode 6. http://*.com/questions/19694205/customize-ios-simulator-preset-locations-to-fake-as-current-location/27299841#27299841 – Ohmy 2014-12-04 17:13:37

+0

有没有人设法让它在React native模拟器中工作? – Nikos 2015-11-05 18:44:11

在我的委托回调中,我检查是否在模拟器中运行(#if TARGET_ IPHONE_SIMULATOR),如果有,我提供自己的预先查找的Lat/Long。据我所知,没有别的办法。

+3

从Xcode 4.2开始,现在有一种方法在模拟器上的`Debug`菜单下使用`Location`条目进行设置,该条目允许设置自定义位置或从某些预定义的游乐设施和位置进行选择。 – progrmr 2011-11-30 14:54:15

优于从不迟到:)

我只是碰到这种iSimulate,让您发送伪造的位置的应用程序来。 解决方案不是免费的。

> Q: How does iSimulate work? 

> A: When added to your project, the iSimulate 
> SDK library creates a listening server 
> on your iPhone Simulator that waits 
> for a connection from an iPhone/iPod 
> running the iSimulate client. When 
> such connection is established, the 
> iSimulate client running on your 
> iPhone/iPod captures all data from the 
> accelerometer sensor, the touch 
> events, the location and device ID and 
> streams them to the server. The 
> iSimulate SDK library then recreates 
> all input events synthetically. This 
> is entirely transparent to your 
> application and does not interfere 
> with your application's functionality. 

无论如何,我打算到这一点。将尽快更新!

+0

我刚刚联系了开发人员:“在iSimulate的选项中,可从”选择要连接的计算机“屏幕右上角的按钮访问,您可以选择其他四个位置之一使用。”所以,真的没什么帮助。 – 2009-09-01 21:44:14

+0

https://bitbucket.org/gnucoop/xamarin-ios-simulator-enhancements这有助于免费模拟位置 – Pierre 2017-01-30 06:54:21

你想在哪里设置你的位置?你可以使用mapkit api来显示你的位置。有关如何使用mapkit的更多详细信息,请参阅icodeblog.com。你也可以存储你想要的坐标,只需创建一个对象CLLocation2D * location; location.longitude =你想要的经度值; location.latitude =你想要的纬度值;

+0

从我重新使用SDK时起,这是一个老问题。我现在意识到不支持在模拟器中自动化CoreLocation,这是一个耻辱。 – Cliff 2009-11-08 00:42:16

FutureTap的友好的人已经使得FTLocationSimulator免费提供在GitHub。它允许您使用Google Earth等准备测试路线,然后让模拟器将这些坐标提供给您的应用程序。

我写了一个blog post关于如何使用FTLocationSimulator在测试位置特征期间轻松地在多个路由之间切换。

可以GPX文件添加到您的项目并使用它:
编辑方案>选项>允许位置模拟>挑选例如包括:文件名:

<?xml version="1.0"?> 
<gpx version="1.1" creator="Xcode"> 
    <wpt lat="41.92296" lon="-87.63892"></wpt> 
</gpx> 

可选只是硬编码纬度/经度位置管理器返回的值。尽管这是旧式的。

所以你不会把它添加到模拟器中,而是添加到你的Xcode项目中。

+2

我如何使用预定义的位置。你能详细解释吗?我想知道它。 – 2011-08-23 07:20:14

从iOS 5开始,模拟器有一个可配置的位置。

在Debug菜单下,最后一项是“Location”;这给你一个子菜单用:

  • 自定义位置
  • 苹果专卖店
  • 苹果
  • 市骑自行车
  • 市润
  • 高速公路驱动

自定义位置让y输入纬度/长度值。骑自行车,城市运行和高速公路驾驶是模拟移动位置(当然在库比蒂诺)。

当然,这对于iOS 4(或更早版本)的调试没有帮助;但这是一个明显的进步!

前的iOS 5,你能做到这一点的代码:

我只是,我需要我的假标题和位置数据之类的@implementation前使用此片段。

#if (TARGET_IPHONE_SIMULATOR) 
@interface MyHeading : CLHeading 
    -(CLLocationDirection) magneticHeading; 
    -(CLLocationDirection) trueHeading; 
@end 

@implementation MyHeading 
    -(CLLocationDirection) magneticHeading { return 90; } 
    -(CLLocationDirection) trueHeading { return 91; } 
@end 

@implementation CLLocationManager (TemporaryLocationFix) 
- (void)locationFix { 
    CLLocation *location = [[CLLocation alloc] initWithLatitude:55.932 longitude:12.321]; 
    [[self delegate] locationManager:self didUpdateToLocation:location fromLocation:nil]; 

    id heading = [[MyHeading alloc] init]; 
    [[self delegate] locationManager:self didUpdateHeading: heading]; 
} 

-(void)startUpdatingHeading { 
    [self performSelector:@selector(locationFix) withObject:nil afterDelay:0.1]; 
} 

- (void)startUpdatingLocation { 
    [self performSelector:@selector(locationFix) withObject:nil afterDelay:0.1]; 
} 
@end 
#endif 

的iOS 5后,只需在项目中包含这样的GPX文件有更新,不断Hillerød.gpx位置:

<?xml version="1.0"?> 
<gpx version="1.1" creator="Xcode"> 
    <wpt lat="55.93619760" lon="12.29131930"></wpt> 
    <wpt lat="55.93625770" lon="12.29108330"></wpt> 
    <wpt lat="55.93631780" lon="12.29078290"></wpt> 
    <wpt lat="55.93642600" lon="12.29041810"></wpt> 
    <wpt lat="55.93653420" lon="12.28998890"></wpt> 
    <wpt lat="55.93660630" lon="12.28966710"></wpt> 
    <wpt lat="55.93670240" lon="12.28936670"></wpt> 
    <wpt lat="55.93677450" lon="12.28921650"></wpt> 
    <wpt lat="55.93709900" lon="12.28945250"></wpt> 
    <wpt lat="55.93747160" lon="12.28949540"></wpt> 
    <wpt lat="55.93770000" lon="12.28966710"></wpt> 
    <wpt lat="55.93785620" lon="12.28977440"></wpt> 
    <wpt lat="55.93809660" lon="12.28988170"></wpt> 
    <wpt lat="55.93832490" lon="12.28994600"></wpt> 
    <wpt lat="55.93845710" lon="12.28996750"></wpt> 
    <wpt lat="55.93856530" lon="12.29007480"></wpt> 
    <wpt lat="55.93872150" lon="12.29013910"></wpt> 
    <wpt lat="55.93886570" lon="12.28975290"></wpt> 
    <wpt lat="55.93898590" lon="12.28955980"></wpt> 
    <wpt lat="55.93910610" lon="12.28919500"></wpt> 
    <wpt lat="55.93861330" lon="12.28883020"></wpt> 
    <wpt lat="55.93845710" lon="12.28868000"></wpt> 
    <wpt lat="55.93827680" lon="12.28850840"></wpt> 
    <wpt lat="55.93809660" lon="12.28842250"></wpt> 
    <wpt lat="55.93796440" lon="12.28831520"></wpt> 
    <wpt lat="55.93780810" lon="12.28810070"></wpt> 
    <wpt lat="55.93755570" lon="12.28790760"></wpt> 
    <wpt lat="55.93739950" lon="12.28775730"></wpt> 
    <wpt lat="55.93726730" lon="12.28767150"></wpt> 
    <wpt lat="55.93707500" lon="12.28760710"></wpt> 
    <wpt lat="55.93690670" lon="12.28734970"></wpt> 
    <wpt lat="55.93675050" lon="12.28726380"></wpt> 
    <wpt lat="55.93649810" lon="12.28713510"></wpt> 
    <wpt lat="55.93625770" lon="12.28687760"></wpt> 
    <wpt lat="55.93596930" lon="12.28679180"></wpt> 
    <wpt lat="55.93587310" lon="12.28719940"></wpt> 
    <wpt lat="55.93575290" lon="12.28752130"></wpt> 
    <wpt lat="55.93564480" lon="12.28797190"></wpt> 
    <wpt lat="55.93554860" lon="12.28833670"></wpt> 
    <wpt lat="55.93550050" lon="12.28868000"></wpt> 
    <wpt lat="55.93535630" lon="12.28900190"></wpt> 
    <wpt lat="55.93515200" lon="12.28936670"></wpt> 
    <wpt lat="55.93505580" lon="12.28958120"></wpt> 
    <wpt lat="55.93481550" lon="12.29001040"></wpt> 
    <wpt lat="55.93468320" lon="12.29033230"></wpt> 
    <wpt lat="55.93452700" lon="12.29063270"></wpt> 
    <wpt lat="55.93438280" lon="12.29095450"></wpt> 
    <wpt lat="55.93425050" lon="12.29121200"></wpt> 
    <wpt lat="55.93413040" lon="12.29140520"></wpt> 
    <wpt lat="55.93401020" lon="12.29168410"></wpt> 
    <wpt lat="55.93389000" lon="12.29189870"></wpt> 
    <wpt lat="55.93372170" lon="12.29239220"></wpt> 
    <wpt lat="55.93385390" lon="12.29258530"></wpt> 
    <wpt lat="55.93409430" lon="12.29295010"></wpt> 
    <wpt lat="55.93421450" lon="12.29320760"></wpt> 
    <wpt lat="55.93433470" lon="12.29333630"></wpt> 
    <wpt lat="55.93445490" lon="12.29350800"></wpt> 
    <wpt lat="55.93463520" lon="12.29374400"></wpt> 
    <wpt lat="55.93479140" lon="12.29410880"></wpt> 
    <wpt lat="55.93491160" lon="12.29419460"></wpt> 
    <wpt lat="55.93515200" lon="12.29458090"></wpt> 
    <wpt lat="55.93545250" lon="12.29494570"></wpt> 
    <wpt lat="55.93571690" lon="12.29505300"></wpt> 
    <wpt lat="55.93593320" lon="12.29513880"></wpt> 
    <wpt lat="55.93617360" lon="12.29522460"></wpt> 
    <wpt lat="55.93622170" lon="12.29537480"></wpt> 
    <wpt lat="55.93713510" lon="12.29505300"></wpt> 
    <wpt lat="55.93776000" lon="12.29378700"></wpt> 
    <wpt lat="55.93904600" lon="12.29531040"></wpt> 
    <wpt lat="55.94004350" lon="12.29552500"></wpt> 
    <wpt lat="55.94023570" lon="12.29561090"></wpt> 
    <wpt lat="55.94019970" lon="12.29591130"></wpt> 
    <wpt lat="55.94017560" lon="12.29629750"></wpt> 
    <wpt lat="55.94017560" lon="12.29670520"></wpt> 
    <wpt lat="55.94017560" lon="12.29713430"></wpt> 
    <wpt lat="55.94019970" lon="12.29754200"></wpt> 
    <wpt lat="55.94024780" lon="12.29816430"></wpt> 
    <wpt lat="55.94051210" lon="12.29842180"></wpt> 
    <wpt lat="55.94084860" lon="12.29820720"></wpt> 
    <wpt lat="55.94105290" lon="12.29799270"></wpt> 
    <wpt lat="55.94123320" lon="12.29777810"></wpt> 
    <wpt lat="55.94140140" lon="12.29749910"></wpt> 
    <wpt lat="55.94142550" lon="12.29726310"></wpt> 
    <wpt lat="55.94147350" lon="12.29687690"></wpt> 
    <wpt lat="55.94155760" lon="12.29619020"></wpt> 
    <wpt lat="55.94161770" lon="12.29576110"></wpt> 
    <wpt lat="55.94148550" lon="12.29531040"></wpt> 
    <wpt lat="55.94093270" lon="12.29522460"></wpt> 
    <wpt lat="55.94041600" lon="12.29518170"></wpt> 
    <wpt lat="55.94056020" lon="12.29398010"></wpt> 
    <wpt lat="55.94024780" lon="12.29352950"></wpt> 
    <wpt lat="55.94001940" lon="12.29335780"></wpt> 
    <wpt lat="55.93992330" lon="12.29325050"></wpt> 
    <wpt lat="55.93969490" lon="12.29299300"></wpt> 
    <wpt lat="55.93952670" lon="12.29277840"></wpt> 
    <wpt lat="55.93928630" lon="12.29260680"></wpt> 
    <wpt lat="55.93915410" lon="12.29232780"></wpt> 
    <wpt lat="55.93928630" lon="12.29202740"></wpt> 
    <wpt lat="55.93933440" lon="12.29174850"></wpt> 
    <wpt lat="55.93947860" lon="12.29116910"></wpt> 
    <wpt lat="55.93965890" lon="12.29095450"></wpt> 
    <wpt lat="55.94001940" lon="12.29061120"></wpt> 
    <wpt lat="55.94041600" lon="12.29084730"></wpt> 
    <wpt lat="55.94076450" lon="12.29101890"></wpt> 
    <wpt lat="55.94080060" lon="12.29065410"></wpt> 
    <wpt lat="55.94086060" lon="12.29031080"></wpt> 
    <wpt lat="55.94092070" lon="12.28990310"></wpt> 
    <wpt lat="55.94099280" lon="12.28975290"></wpt> 
    <wpt lat="55.94119710" lon="12.28986020"></wpt> 
    <wpt lat="55.94134130" lon="12.28998890"></wpt> 
    <wpt lat="55.94147350" lon="12.29007480"></wpt> 
    <wpt lat="55.94166580" lon="12.29003190"></wpt> 
    <wpt lat="55.94176190" lon="12.28938810"></wpt> 
    <wpt lat="55.94183400" lon="12.28893750"></wpt> 
    <wpt lat="55.94194220" lon="12.28850840"></wpt> 
    <wpt lat="55.94199030" lon="12.28835820"></wpt> 
    <wpt lat="55.94215850" lon="12.28859420"></wpt> 
    <wpt lat="55.94250700" lon="12.28883020"></wpt> 
    <wpt lat="55.94267520" lon="12.28893750"></wpt> 
    <wpt lat="55.94284350" lon="12.28902330"></wpt> 
    <wpt lat="55.94304770" lon="12.28915210"></wpt> 
    <wpt lat="55.94325200" lon="12.28925940"></wpt> 
    <wpt lat="55.94348030" lon="12.28953830"></wpt> 
    <wpt lat="55.94366060" lon="12.28966710"></wpt> 
    <wpt lat="55.94388890" lon="12.28975290"></wpt> 
    <wpt lat="55.94399700" lon="12.28994600"></wpt> 
    <wpt lat="55.94379280" lon="12.29065410"></wpt> 
    <wpt lat="55.94364860" lon="12.29095450"></wpt> 
    <wpt lat="55.94350440" lon="12.29127640"></wpt> 
    <wpt lat="55.94340820" lon="12.29155540"></wpt> 
    <wpt lat="55.94331210" lon="12.29198450"></wpt> 
    <wpt lat="55.94315590" lon="12.29269260"></wpt> 
    <wpt lat="55.94310780" lon="12.29318610"></wpt> 
    <wpt lat="55.94301170" lon="12.29361530"></wpt> 
    <wpt lat="55.94292760" lon="12.29408740"></wpt> 
    <wpt lat="55.94290350" lon="12.29436630"></wpt> 
    <wpt lat="55.94287950" lon="12.29453800"></wpt> 
    <wpt lat="55.94283140" lon="12.29533190"></wpt> 
    <wpt lat="55.94274730" lon="12.29606150"></wpt> 
    <wpt lat="55.94278340" lon="12.29621170"></wpt> 
    <wpt lat="55.94280740" lon="12.29649060"></wpt> 
    <wpt lat="55.94284350" lon="12.29679100"></wpt> 
    <wpt lat="55.94284350" lon="12.29734890"></wpt> 
    <wpt lat="55.94308380" lon="12.29837890"></wpt> 
    <wpt lat="55.94315590" lon="12.29852910"></wpt> 
    <wpt lat="55.94263920" lon="12.29906550"></wpt> 
    <wpt lat="55.94237480" lon="12.29910850"></wpt> 
    <wpt lat="55.94220660" lon="12.29915140"></wpt> 
    <wpt lat="55.94208640" lon="12.29902260"></wpt> 
    <wpt lat="55.94196620" lon="12.29887240"></wpt> 
    <wpt lat="55.94176190" lon="12.29794970"></wpt> 
    <wpt lat="55.94156970" lon="12.29760640"></wpt> 
</gpx> 

我用GPSies.com以创建GPX数据的基本文件。虽然需要一些清理。

激活运行模拟器,然后选择您的文件

http://castleandersen.dk/keepers/location.png

  1. 运行项目在iPhone模拟器
  2. 创建以下文件文本编辑文件,称它为MyOffice例如。请扩展为.GPX enter image description here

    <?xml version="1.0"?> <gpx version="1.0" creator="MyName"> <wpt lat="53.936166" lon="27.565370"> <name>MyOffice</name> </wpt> </gpx>

  3. 选择在Xcode在模拟区从创建菜单文件Add GPX File to Project...enter image description here

  4. 添加到项目。
  5. 现在你可以在模拟区看到您的位置:enter image description here
从调试菜单

打开iPhone模拟器应用程序 - >位置 - >

  1. 自定义位置
  2. 苹果专卖店 ...

in iOS Simulator m enu,进入调试 - >位置 - >自定义位置。在那里你可以设置纬度和经度,并相应地测试应用程序。这适用于mapkit,也适用于CLLocationManager。