2010-01-13 160 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

它會告訴你到底如何可以提供般的速度和特定點的高度進一步的細節。