蘋果爲開發者提供的在調試模式下,可模擬定位的功能,方便開發者進行地圖定位類APP的功能調試。咱們可藉助此功能實現虛擬定位,具體步驟以下:html
<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode">
<!--
Provide one or more waypoints containing a latitude/longitude pair. If you provide one
waypoint, Xcode will simulate that specific location. If you provide multiple waypoints,
Xcode will simulate a route visiting each waypoint.
-->
<wpt lat="37.331705" lon="-122.030237">
<name>Cupertino</name>
<!--
Optionally provide a time element for each waypoint. Xcode will interpolate movement
at a rate of speed based on the time elapsed between each waypoint. If you do not provide
a time element, then Xcode will use a fixed rate of speed.
Waypoints must be sorted by time in ascending order.
-->
<time>2014-09-24T14:55:37Z</time>
</wpt>
</gpx>
複製代碼
<wpt lat="37.331705" lon="-122.030237">
這行即經緯度數據,這裏能夠直接修改爲你想要模擬定位的經緯度,網上有不少網站能夠獲取某個地點的經緯度,這裏你們本身去查找就好了,而後在Simulate Location中選擇咱們gpx的文件名,我這裏的名稱是Location
,點擊後便可模擬定位到所在地址。node
斷開手機鏈接線,本次的模擬定位仍然生效。關閉咱們建立的工程運行的APP進程,便可恢復真實定位。想要再次模擬定位,須要從新鏈接手機,使用Xcode運行工程,進行Simulate Locationgit
github.com/kahopoon/Po…github
使用node.js、腳本實現可視化實時修改gpx文件並生效c#
一個跨平臺的「溝通」iOS設備的庫。地址:github.com/libimobiled… 安裝此命令行工具後,可以使用命令行獲取設備信息、查看日誌、安裝ipa、關機、重啓等操做。不少iOS助手例如PP助手、iTools、愛思助手等都基於此庫實現的。bash
推薦兩個Mac端的iOS設備管理工具微信
這兩個工具實現虛擬定位的原理:app
前面咱們使用的Simulate Location功能,原理是調用iOS設備中的com.apple.dt.simulatelocation
服務,咱們能夠經過libimobiledevice
的service模塊開啓com.apple.dt.simulatelocation
服務來實現脫離經過Xcode來模擬定位。這裏找到網上一篇專門分析此方法的文章,www.secpulse.com/archives/76… 他裏面講到大體實現的代碼以下 ide
這裏還有個第三方庫基於libimobiledevice
對模擬定位服務的封裝,使用更簡單。 github.com/JonGabilond…工具
此庫中基於libimobiledevice
開啓iOS設備模擬定位的關鍵代碼
if ((lockdownd_start_service(client, "com.apple.dt.simulatelocation", &service) != LOCKDOWN_E_SUCCESS) || !service) {
複製代碼