簡體   English   中英

在iPhone模擬器上模擬位置更新

[英]Simulating location updates on the iPhone Simulator

我想允許用戶通過GUI在iPhone模擬器上設置GPS信息。

但我不知道如何實現這一點 - 似乎這個名為iSimulate的工具通過安裝自己的SDK以某種方式做到了這一點。 但我無法弄清楚他們是如何“覆蓋”/“破解”模擬器的。

謝謝!

添加了第二個答案,因為Xcode中現在有集成功能(≥4.2)。 有兩種方法可以模擬位置更新:

  • 在iOS模擬器中,在“調試/位置”下,您可以指定恆定的緯度/經度或選擇幾個預定義的配置文件,如“城市運行”或“高速公路驅動器”。
  • 在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> 

iOS模擬器內置了完整的位置模擬。從“調試”菜單中,您可以瀏覽各種位置選項。


在NDA下發布的原始答案。

查看此頁面右下角的條目。 我在NDA之下所以我不能說什么,除了它為我節省了大量的汽油錢。 :)

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

據我所知,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

您可以在http://github.com/futuretap/FTLocationSimulator上查看我的FTLocationSimulator

它會讀取Google地球生成的KML文件,以提供連續的位置更新。 它還使用模擬的位置更新更新MKMapView中的藍色userLocation點。

在Xcode 4.2中我們可以模擬。 調試區域上有一個位置符號(當您運行應用程序時)。 有一些預定義的位置。 我們還可以添加新的GPX文件

Hy stephanos,

GPS的信息無法更改。 它受到保護,我不相信iSimulate可以改變它。

據我所知,iSimulate是一個從設備向iPhone模擬器發送命令的工具,如加速度計,觸摸,方向等,包括當前的GPS位置。

iSimulate的SDK可與該應用程序配合使用。 您必須在設備中安裝該應用程序並將sdk添加到您的項目中,這樣您就不需要在正常運行的情況下將應用程序延伸並運行到設備。

干杯,
VFN

只是為了擴展@Ortwin Gentz答案:

如果您需要進一步配置gpx文件中的每個gps點。 看看這個頁面:

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

它告訴您如何提供更多細節,如特定點的速度和高度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM