2010-01-13 122 views

回答

11

据我所知,iSimulate不使用任何黑客。它是在模拟器上的应用程序中运行的代码,通过网络与设备进行通信。当它从设备接收消息(触摸,GPS,加速)时,它会通过调用您的应用代码来模拟这些事件,就好像系统已经触发了它们一样。

例如,要接收GPS位置更新,您必须创建一个CLLocationManager实例,然后将其中一个类配置为其委托。那么,在iPhone模拟器上,您可以启动将假消息发送给代理的代码。如果你只需要调用一个委托的方法是这样的:

[delegate locationManager:nil didUpdateToLocation:newLocation fromLocation:oldLocation]; 

您的代码将无法知道该位置更新是假的。如果你想获得幻想,你可以创建一个新的类来实现所有CLLocationManager的公共方法,但是它会发送伪造的消息。 (由于Objective-C是动态类型的,只要它响应所有发送的消息,它就不需要是子类。)

作为一个附注,您可以使用这些编译器宏来保留代码模拟器只:

#if TARGET_IPHONE_SIMULATOR 
    locationManager = (id)[[MyFakeLocationManager alloc] init]; 
#else 
    locationManager = [[CLLocationManager alloc] init]; 
#endif 
0

Hy stephanos,

GPS的信息不能改变。它受到保护,我不相信iSimulate可以改变它。

据我所知,iSimulate是一个从设备发送命令到iPhone模拟器的工具,如加速度计,触摸,方向等,包括当前的GPS位置。

iSimulate的SDK可以与应用程序一起使用。您必须在设备中安装应用程序,并将sdk添加到您的项目中,这样您就不需要在应用程序正常运行时始终保持运行应用程序。

干杯,
VFN

7

你可能会想看看我在FTLocationSimulator http://github.com/futuretap/FTLocationSimulator

它读取由谷歌地球生成提供持续的位置更新KML文件。它还使用模拟位置更新更新MKMapView中的蓝色userLocation点。

+0

我提供了第二个答案描述在Xcode≥4.2现已整合式位置仿真功能:http://stackoverflow.com/a/9359093/235297 – 2012-02-20 09:53:30

12

的iPhone模拟器已经完全模拟位置建。从“调试”菜单,你可以浏览你的各种位置选项。


原始答案在NDA下发布。

查看this page的右下角条目。我在NDA之下,所以除了它为我节省了大笔的天然气之外,我什么都不能说。 :)

1:http://developer.apple.com/technologies/ios5/

+0

这是一个更好的解决方案 – honcheng 2011-08-26 02:49:48

+0

两条链路404ed – 2016-06-01 18:55:39

+0

我最初回答了这个而iOS 5则处于NDA之下。这些页面刚刚列出即将推出的主要功能。 – wjl 2016-06-02 08:06:19

4

在Xcode的4.2,我们可以模拟。调试区域有一个位置符号(当您运行应用程序时)。有一些预定义的位置。我们也可以add新的GPX文件

46

由于现在Xcode中的集成功能(≥4.2),添加了第二个答案。有两种方法来模拟位置更新:

  • 在iPhone模拟器,“调试/位置”下,你可以指定一个恒定的经/纬度或选择几个预定义的配置文件,如“城市运行”或“高速公路驾驶”。
  • 在Xcode中,调试器中有一个新的位置图标,就在Step Out按钮旁边。它可让您选择全球多个硬编码城市,并将自定义GPX文件添加到您的项目中。 Xcode中位置模拟的好处在于它也可以在设备上运行(不要忘记关闭它,否则你的自动时区将会出错!)。自定义GPX文件也很好,但如果GPX文件无法识别,它有时会使Xcode崩溃。请确保您只使用<wpt>标签:
<?xml version="1.0"?> 
<gpx version="1.1" creator="Xcode"> 
    <wpt lat="47.52789018096815" lon="7.385249894876031"></wpt> 
    <wpt lat="47.52720984945248" lon="7.382647784661411"></wpt> 
    ... 
</gpx> 
+5

该解决方案是正确的答案。 – deepwinter 2013-01-15 21:05:59

0

只是为了延长@Ortwin根茨答案:

如果您需要进一步配置的每一个GPS在GPX文件指向。看看这个页面:

http://www.topografix.com/gpx_manual.asp

它会告诉你到底如何可以提供般的速度和特定点的高度进一步的细节。