iOS 虛擬定位模擬器, 在 Windows 上控制 iPhone 的 GPS 定位,支援直接跳點、導航、路線循環、多點停留、隨機漫步、搖桿操作等模擬模式,可經由 USB 或 WiFi 連線。
有問題或想聯絡作者, 歡迎加 LINE。
想支持開發者, 可以用下方 USDT 地址直接斗內。
錢包地址
TB1i7pEcifAeh8oDLLZFqiRVrpUaZmmDAn
僅支援 TRC-20 (TRON 鏈)
LocWarp 為個人獨立維護之開源專案,非商業產品,亦無專職團隊。開發者將盡力於合理時間內新增功能、回應 Issue、修復 Bug 並隨 iOS / pymobiledevice3 版本演進持續更新,然:
- 本專案僅保證於開發者本人測試環境(目前為 iPhone 16 Pro Max / iOS 26.4.1 + Windows 11 專業版)下運作正常;
- 不保證於其他裝置、iOS 修補版本、網路環境、系統配置下皆能穩定使用;
- 若遇到問題,歡迎至 Issues 提交完整環境資訊與日誌,以協助定位與改善;
- 本專案不保證永續維護,亦不承擔因使用本工具所生之任何責任。
LocWarp 自 v0.1.49 起僅支援 iOS / iPadOS 17 以上的裝置。
iOS 17+ 為主要支援版本(開發者日常測試);iOS 16.x 自 v0.2.5 起由 @bitifyChen (#9) 社群維護,走 LegacyLocationService 路徑,最低門檻為 iOS 16.0。iOS 15 以下不受支援。
主版本 已驗證版本 狀態 iOS 26.x 26.4.1(開發者實測) · 26.4.1 iPadOS · 26.4 · 26.3.1 · 26.2 · 26.2.1 iPadOS (M1 iPad) ![]()
iOS 18.x 18.7.7 · 18.7.1 · 18.6.2 · 18.5 iPadOS · 18.1.1 iOS 17.x 17.6.1 iOS 16.x(社群維護) 16.7.15 · 16.7.12(#9,@bitifyChen) ![]()
iOS 15.x 及以下 n/a 說明:上表僅彙整開發者實測與少數社群回饋的結果,並不保證於所有相同版本的裝置、網路環境或系統組合下皆能正常運作。iOS 虛擬定位的穩定性高度依賴 iOS 修補版本、pymobiledevice3 對該版本的支援程度、Developer Disk Image 是否成功掛載,以及 Windows 端的驅動、VPN、防火牆、AV 配置。因此「回報可用」僅代表至少一位使用者在其特定環境下成功運作,不等同於通用相容性聲明。
未列於上表的 iOS 16+ 版本並非確定不相容,僅表示尚未收到回報。使用前請自行評估風險,若遇到問題、發現 Bug 或確認某版本可用,歡迎至 Issues 提出以協助累積相容性資料。
| 模式 | 說明 |
|---|---|
| Teleport | 瞬間跳到指定座標 |
| Navigate | 從目前位置沿 OSRM 路線步行/跑步/開車到目的地 |
| Route Loop | 無限循環指定路線,每站隨機 5~20 秒停頓(可自訂) |
| Multi-stop | 依序經過多個停靠點,每站隨機 5~20 秒停頓(可自訂) |
| Random Walk | 在指定半徑內隨機漫遊,每段停頓時間可調 |
| Joystick | 以方向 + 力度即時操控,支援 WASD / 方向鍵 鍵盤操作 |
路線巡迴 / 多點導航中可勾「點對點跳躍」,改成逐點瞬移、每點停留設定的秒數 (預設 12,可手動調整),不再走 OSRM 路徑。適合不想真的走過去、只要 iPhone 依序停留在每個點上的場景。設定會記在 localStorage。
可同時連接 最多三台 iPhone,所有操作 (瞬移、導航、巡迴、多點導航、隨機漫步、搖桿、暫停、繼續、停止、套用速度、全部還原) 會同步發送到所有連線的裝置(桌面 UI 跟手機操控都支援)。
- 側邊欄頂端裝置 chip 顯示連線狀態與目前模式;右鍵選單可單獨還原 / 開發者模式 / 中斷該台
- 底部狀態列多 pill 並陳每台座標、速度、模式;「全部還原」一鍵清除全部虛擬定位
- 自動同步起點:啟動任何群組動作前先把所有裝置瞬移到同座標,確保路徑一致
- 隨機漫步共用亂數種子:所有裝置目的地序列完全相同,跑幾小時也不會脫鉤
- 冷卻 toggle 自動鎖定為關閉:避免裝置同步動作互相阻擋
- 自動連線:USB 偵測到新裝置 1 秒內自動配對,直到 3 台上限,第四台插上完全不理
- 地圖維持單一視覺 (所有裝置已永遠重疊,多 marker 反而是雜訊),裝置狀態靠 chip 與 StatusBar pill 呈現
模式區塊「使用直線路徑」下方多一顆「路徑來源」按鈕,點開彈窗可在四家免費路徑生成服務之間切換(全部免 API key、免註冊、免綁卡):
| 引擎 | Endpoint | 說明 |
|---|---|---|
| OSRM 公用 demo(預設) | router.project-osrm.org |
全球涵蓋,無需金鑰,有時整個服務會掛 |
| OSRM FOSSGIS | routing.openstreetmap.de |
同樣是 OSRM 引擎,改由 FOSSGIS 託管的鏡像 |
| Valhalla | valhalla1.openstreetmap.de |
完全不同的路徑引擎,當 OSRM 兩個節點都掛時最有用 |
| BRouter | brouter.de |
第四個獨立引擎(個人營運多年穩定),OSM 資料 + 自家路徑引擎,涵蓋全球,單車 / 健行 / 開車 profile 齊全 |
選擇記在 localStorage,下次自動套用。任何引擎失敗(502 / timeout / NoRoute)時這一段自動退回密化直線,下一段繼續打引擎,不會卡死。勾「使用直線路徑」時整個選擇器會 disable,因為連引擎都不打。
- 預設三檔:走路 5 / 跑步 10 / 開車 40 km/h
- 自訂固定速度:輸入任意 km/h 覆蓋模式預設
- 隨機範圍:輸入 min ~ max(例如 40 ~ 80 km/h),後端每段路重抽,模擬真實路況
- 路線中即時套用新速度:導航 / 巡迴 / 多點 / 隨機漫步 / 搖桿模式進行中可修改速度後按「套用新速度」,後端從當前位置以新速度重算剩餘路段並接續執行,不需停下重來
- 狀態列顯示後端實際生效的速度(輸入新值未套用前不會誤顯示)
- 到點/到圈暫停時,地圖上方顯示橘色倒數橫幅
不在電腦旁也能用手機操控 LocWarp。底部狀態列「手機操控」按鈕跳出 modal 顯示 LAN 內網址跟 6 位數 PIN,把網址打到手機瀏覽器、輸入 PIN,手機就拿到一張行動裝置版的地圖加七顆功能鈕:
使用前提:手機必須先連上跟電腦同一個 WiFi 網路(只用行動數據抓不到電腦的內網 IP),電腦防火牆若擋 8777 port 也要先放行。電腦端對 iPhone 的連線方式 (USB 或 WiFi Tunnel) 不限,有任何一種能控到 iPhone 即可。
| 功能 | 行為 |
|---|---|
| 瞬移 | 點地圖任一點瞬移過去 |
| 導航到這裡 | 從目前虛擬位置走過去,可選走路 / 腳踏車 / 開車或自訂 km/h |
| 搜尋地址 | 輸入地名查 Nominatim,點結果直接瞬移 |
| 座標飛 | 一行輸入框自動掃出有效座標 (跟桌面版同一個 parser) |
| 停止 / 還原 | 跟桌面版同邏輯 |
- 手機端地圖即時顯示桌面同一條藍色路徑線 (HTTP polling)
- Token 隨機 32-hex,只在桌面 modal 取得;PIN 6 位數,輸錯 401 拒絕
- 「重新產生」可立刻換一組 PIN + token,讓之前配對過的手機失效
- USB 有線:插上即自動連線,鎖屏不影響
- WiFi Tunnel(USB 拔除模式):
- 按「自動偵測」→ 先 mDNS 廣播 → 失敗自動退回 /24 TCP 掃描 port 49152
- 成功連線的 IP / Port 記到 localStorage,下次自動預填
- 停止 Tunnel 後若 USB 仍插著,自動切回 USB 模式
- 「重新配對」按鈕:RemotePairing 記錄損毀時可一鍵透過 USB 重建
~/.pymobiledevice3/(iPhone 會跳信任提示)
- USB 即時熱插拔偵測:
- 拔除 USB 約 4 秒內偵測,清除 engine + 廣播紅色橫幅 + 右鍵選單顯示「USB 已斷開」
- 重新插上自動偵測 + 重新連線 + 重建 engine,不必重新整理
- 連線時版本檢查:iOS <16 直接拒絕並顯示具體版本與升級提示
- iOS 17+ 需要 Personalized DDI 掛在 iPhone 上才能走 DVT(instruments → dtservicehub)
- v0.2.58 起 LocWarp 不自動下載、不自動掛載 DDI(iOS 26.4.1 的 RSD tunnel 撐不住 20MB 上傳導致不穩);改為只檢查 iPhone 上是否已有 DDI,沒有就跳提示請先在 iPhone 上掛過一次 DDI 後再回來使用(掛載工具參考下方疑難排解章節)
- 地圖定位按鈕(左上角):一鍵置中目前虛擬位置
- 圖層切換(右上角):OSM / CartoDB Voyager / ESRI 衛星 / OpenFreeMap Liberty(類 Google Maps 風格向量圖) / NLSC 台灣電子地圖 / GSI 日本地理院地圖
- 當地天氣:狀態列顯示虛擬位置的當前天氣 + 溫度(Open-Meteo,動態 SVG 圖示:太陽呼吸、雨滴下落、雪花旋轉、雷電閃爍)
- 國旗與時區:瞬移後自動顯示當地國旗,跨時區時 toast 提醒時差
- 地圖釘 / 使用者頭像(狀態列):
- 預設「小藍人」+ 6 組內建角色 PNG(兔兔 / 小狗 / 小貓 / 狐狸 / 男孩 / 女孩)+ 自訂 PNG 上傳
- 上傳 PNG 自動透明邊界偵測與去除,長邊縮成 88px,地圖顯示 44px,裸 PNG 透過不加底色
- 上傳的自訂圖與目前使用的頭像分兩個 localStorage 格子存,切換預設圖不會把使用者上傳的圖洗掉
- 點選任一張變 pending(藍框高亮),按儲存才套用;取消 / ESC / 按外面都不生效
- 切換後當場換地圖釘,不用瞬移才生效
- 一鍵還原:狀態列,清除 iPhone 虛擬定位並顯示「正在清除 / 已清除請等待生效」提示
- 停止 ≠ 還原:停止只結束移動,虛擬定位保留;清除請按「一鍵還原」
- 座標收藏 / 分類:
- 自訂座標(一格輸入
lat, lng)、JSON 全量匯出 / 匯入(合併,不覆蓋) - 新增時自動抓取地名(短名稱)與國旗(reverse geocode)
- 多選刪除、分類顏色自訂(10 色預設 + HEX 任意色)、搜尋、排序(名稱 / 日期 / 最後使用)
- 勾選「在地圖上顯示所有收藏」:地圖上會顯示所有收藏的精緻 pin(霓虹玻璃膠囊 + 國旗 + 聚合 Polaroid 卡片)
- 「點擊也要飛 GPS」勾選控制:打勾時點座標會把 iPhone 瞬移過去(預設);取消打勾則只把畫面飛過去看看,iPhone 定位不變
- 編輯座標時座標改變會自動刷新國旗
- 自訂座標(一格輸入
- 儲存路線 + GPX 匯入 / 匯出
- 路徑點 + 路徑線:地鐵站點風格的 S/1/2/3 標 + 動態箭頭流動線,看得出方向感
- 地址搜尋:預設 Nominatim(免費),可在搜尋框旁的設定切換為 Google Geocoding API(輸入個人 API Key,完全保存在本機)以取得更精準的中文地名與店家結果
- Cooldown 防偵測:依跳點距離動態延遲,避免異常偵測
- 座標格式切換:DD / DMS / DM
- 右鍵選單自動防出界:選單會用
useLayoutEffect測量實際尺寸,超出視窗右 / 底邊緣時自動往內推,不會被切
- 啟動時 backend race condition 自動重試(最多 ~20 秒緩衝),無需手動重開
- WebSocket 即時推播位置、進度、ETA、剩餘距離、裝置連線狀態
- 模擬進行中切換模式 tab 不再清空地圖上的終點 / 路徑 / 路徑點(v0.2.90+),閒置時切換才會重置
- 斷線自動重連 + banner 自動清除
- 更新檢查:啟動時從 GitHub Releases 比對版本,有新版時在底部狀態列版本號旁顯示彩色
NEW膠囊提示(不再彈出對話框打斷操作),點擊版本號即跳轉到下載頁 - Log 資料夾按鈕(狀態列):一鍵開啟
~/.locwarp/logs/資料夾,方便將 backend.log 附到 Issue - 右下角顯示目前 App 版本(有新版本時旁邊出現流動漸層
NEW膠囊) - 介面語言:繁體中文 / English 即時切換
- 官方 LINE 按鈕(側邊欄底部):有問題或建議直接聯絡作者
- 所有狀態(座標收藏、設定、tunnel 資訊)寫在
~/.locwarp/
┌─────────────────┐ IPC / HTTP + WS ┌──────────────────┐
│ Electron + React│ ─────────────────────────► │ FastAPI backend │
│ (port 5173 dev)│ ◄───────────────────────── │ (port 8777) │
└─────────────────┘ └────────┬─────────┘
│ pymobiledevice3
▼
┌──────────────────┐
│ iPhone (USB/WiFi)│
└──────────────────┘
| 技術 | 版本 | 用途 |
|---|---|---|
| Electron | 30 | Desktop shell,負責視窗管理、spawn backend、注入 tile referer |
| React | 18.3 | UI framework |
| TypeScript | 5.5 | Type-safe JS |
| Vite | 5.4 | Dev server + 生產環境打包(base: './' 供 file:// 載入) |
| Leaflet | 1.9 | 互動地圖(底圖切換 + 自訂 divIcon 書籤/路徑點標記 + 動畫 polyline) |
| Inline SVG | n/a | 天氣圖示、書籤 pin、路徑點標、控制按鈕,完全無第三方 icon 套件 |
| PNG 靜態資產 | n/a | 6 個地圖釘預設頭像(src/assets/avatars/),Vite 自動 hash 打包 |
| CSS | n/a | 手寫,單一 styles.css,包含所有 keyframe 動畫 |
| 技術 | 版本 | 用途 |
|---|---|---|
| Python | 3.13 | 主 runtime(v0.2.4 起從 3.12 升級) |
| FastAPI | 0.110+ | REST API + WebSocket |
| uvicorn | 0.29+ | ASGI server(:8777) |
| websockets | 12+ | 即時位置/狀態推播給前端 |
| pymobiledevice3 | 9.9+ | iOS 裝置協議(DVT / RemoteServices / lockdown / LegacyLocationService) |
| pydantic | 2+ | 資料驗證(schemas) |
| httpx | 0.27+ | OSRM / OSRM FOSSGIS / Valhalla / BRouter / Nominatim / TimezoneDB HTTP 呼叫 |
| gpxpy | 1.6+ | GPX 路線解析 |
| 技術 | 用途 |
|---|---|
pymobiledevice3 start_tcp_tunnel() |
建立 RSD tunnel(in-process asyncio task) |
| pytun-pmd3 | Windows TUN 介面(wintun.dll,已捆入 backend exe) |
| 服務 | 呼叫端 | 用途 | 需要 API Key |
|---|---|---|---|
| OSRM 公用 demo | backend | 路線規劃 + /table 多點優化(walking / driving profile),預設來源 |
否 |
| OSRM FOSSGIS 鏡像 | backend | 同 OSRM 引擎,可在「路徑來源」切換為備援 | 否 |
| Valhalla(FOSSGIS) | backend | 不同的路徑引擎,「路徑來源」第三個選項,OSRM 全掛時可用 | 否 |
| BRouter | backend | 第四個獨立引擎,OSM 資料 + 自家路徑引擎,涵蓋全球,單車 / 健行 / 開車 profile 齊全 | 否 |
| Nominatim | backend | 正向 / 反向地理編碼、地名查詢(含 POI 智慧 short_name 選擇,預設地址搜尋來源) | 否 |
| Google Geocoding API | backend | 地址搜尋備援來源(可選,免費 10K req/月);使用者於設定輸入自己的 API Key | 是(使用者自備) |
| Open-Meteo | frontend(直連) | 虛擬位置當地天氣(氣溫 + WMO weather_code);每個用戶自己 IP 各自 10000 req/day | 否 |
| TimezoneDB | backend | 座標 → 時區 + GMT 偏移,跨時區 toast 提醒 | 是(內建 Key) |
| flagcdn.com | frontend | 國旗 PNG(w20/{cc}.png、w40/{cc}.png) |
否 |
| CartoDB Voyager | frontend tile | 地圖底圖(OSM 資料,免費授權) | 否 |
| ESRI World Imagery | frontend tile | 衛星圖層(圖層切換) | 否 |
| OpenFreeMap Liberty | frontend tile | 向量圖層(類 Google Maps 風格,經 MapLibre GL 渲染) | 否 |
| NLSC 國土測繪中心 | frontend tile | 台灣電子地圖(政府公開資料) | 否 |
| GSI 国土地理院 | frontend tile | 日本地理院地圖 | 否 |
| OpenStreetMap raster | frontend tile | 標準 OSM 圖層(主要) | 否 |
| GitHub Releases | frontend | 啟動時檢查新版本(純 HTTP,無遙測) | 否 |
| 工具 | 用途 |
|---|---|
| PyInstaller | Python → 單檔 exe(backend,含內建 tunnel) |
| electron-builder | Electron 打包成 NSIS 安裝檔 |
| NSIS | Windows 安裝器 |
| 模組 | 職責 |
|---|---|
simulation_engine.py |
中央控制器,管理狀態轉換、任務生命週期、_move_along_route() 核心移動迴圈、EtaTracker |
device_manager.py |
裝置探索、USB / WiFi Tunnel 連線管理 |
navigator.py |
單一目的地 OSRM 導航 |
route_loop.py |
封閉路線無限循環 |
multi_stop.py |
多點依序經過,可停留 |
random_walk.py |
在半徑內隨機漫遊 |
joystick.py |
即時方向/力度控制 |
teleport.py / restore.py |
瞬移 / 恢復 |
- WebSocket 位置推播:backend 每 tick(
update_interval由速度 profile 決定)發position_update事件,前端即時更新地圖游標 + ETA bar - 速度解析:
config.resolve_speed_profile(mode, speed_kmh, speed_min_kmh, speed_max_kmh)統一處理「模式預設 / 固定自訂 / 隨機範圍」三種輸入,優先序range > 固定 > 預設 - In-process WiFi tunnel:backend 自 v0.2.3 起直接在主 event loop 內執行
start_tcp_tunnel(),不再 spawn 獨立 helper exe - Runtime 狀態目錄:一律寫入
~/.locwarp/(bookmarks / settings / tunnel info),避免 PyInstaller 的_MEIPASS臨時目錄問題 - Tile referer / OSM 替換:OSM 的 tile 服務封鎖散佈型應用,已改用 CartoDB(OSM 資料源、CARTO 代管 CDN、免 referer)
- 多裝置群組模式(v0.2.0+, 三裝置上限):同步瞬移 / 同步移動,primary 不被後插裝置搶走,後插的裝置自動同步到 primary 的位置並接續 primary 正在執行的任務(fanout)
- Idle-gated 地理查詢:reverse geocode + timezone + 天氣僅在 idle / teleport / disconnect 狀態且位置變動 ≥ 100m 才觸發,避免跑動態模式時 HTTP 對 DVT 頻道產生 contention
- 前端天氣直連:
lookupWeather()直接從 renderer 打 Open-Meteo,每個用戶自己 IP 各自計算配額,不透過 backend proxy 避免全體用戶共享一個來源 IP 爆量 - 座標國旗自動補全:新增 / 編輯座標時 reverse geocode 帶出 country_code 並渲染為國旗,座標變動時自動刷新
- Windows 10 / 11
- Python 3.13(backend + WiFi tunnel 共用)
- Node.js 18+
- iPhone 已透過 iTunes / Apple Devices 配對過這台電腦
- iOS 16+ 需開啟「開發人員模式」
# 1. 後端依賴(含 WiFi tunnel)
py -3.13 -m pip install -r backend/requirements.txt
# 2. 前端依賴
cd frontend
npm install雙擊 LocWarp.bat, 會自動提權並呼叫 start.py,同時啟動:
- backend(
:8777) - Vite dev server(
:5173) - Electron(載入 dev server)
或手動:
# 終端 1, backend
cd backend && py -3.13 main.py
# 終端 2, 前端 + Electron
cd frontend && npm run startpy -3.13 -m pip install pyinstaller
cd frontend && npm install -D electron-builderbuild-installer.bat依序執行:
- PyInstaller(3.13) 編譯 backend(含 WiFi tunnel)→
dist-py/locwarp-backend/ - Vite 建置前端 →
frontend/dist/ - electron-builder 產出 NSIS 安裝檔 →
frontend/release/LocWarp Setup X.Y.Z.exe(~110 MB)
產物為單一 exe,使用者無需安裝 Python / Node / 任何套件。
使用安裝檔的使用者需要以下四項前置:
Windows 需要 Apple 的 USB driver 才能與 iPhone 溝通。下列兩種方式擇一即可:
- 傳統桌面版 iTunes: iTunes for Windows (64-bit)
- Microsoft Store 的 iTunes: 商店頁面
- Microsoft Store 的「Apple Devices」(iTunes 兩個版本都不行時的備案): 商店頁面
補充: 三種擇一即可,裝一個就好。多數用戶裝桌面版 iTunes 就能用;若 iTunes(桌面版或 Microsoft Store 版)都抓不到 iPhone,社群回報改裝 Apple Devices 可以成功。
首次使用前,用 USB 線接上 iPhone,iPhone 會跳「要信任這部電腦嗎?」,點 信任 並輸入密碼。這會產生 pair record,後續 LocWarp 才能與裝置通訊。
iPhone 上:設定 → 隱私權與安全性 → 開發者模式 → 開啟
開啟後裝置會要求重啟。重啟後會再次確認「啟用開發者模式?」,點啟用。
若要拔掉 USB 改走無線連線:
- iPhone 與電腦必須在同一個 WiFi 網段
- 第一次仍需要先用 USB 配對過(步驟 2)
- LocWarp 內按 Start WiFi Tunnel 會建立 RSD tunnel,之後 USB 可拔除
| 連線方式 | 鎖屏影響 | 建議設定 |
|---|---|---|
| USB 有線 | n/a | |
| WiFi Tunnel | 建議關閉自動鎖定以維持連線 |
注意: WiFi Tunnel 模式下 iPhone 螢幕熄滅會造成網路介面進入休眠狀態,導致 RSD Tunnel 中斷連線。
建議執行以下任一設定以避免連線中斷:
- 關閉自動鎖定:設定 → 顯示與亮度 → 自動鎖定 → 永不
- 保持 LocWarp 相關畫面於前景執行(避免系統進入低功耗模式)
- 連接充電線並維持螢幕常亮
若僅透過 USB 連線使用,則無此限制,iPhone 可正常鎖屏不影響定位模擬。
安裝後桌面/開始選單出現 LocWarp 捷徑。開啟時會要求管理員權限(WiFi tunnel 建 TUN 介面必需)。
locwarp/
├── backend/ # FastAPI + pymobiledevice3
│ ├── api/ # HTTP endpoints
│ ├── core/ # Simulation engine + handlers
│ │ ├── simulation_engine.py
│ │ ├── navigator.py
│ │ ├── route_loop.py
│ │ ├── multi_stop.py
│ │ ├── random_walk.py
│ │ ├── joystick.py
│ │ └── device_manager.py
│ ├── services/ # Location service, interpolator, bookmarks
│ ├── models/schemas.py # Pydantic models
│ ├── config.py # Speed profiles, cooldown table
│ ├── main.py # Entrypoint
│ └── locwarp-backend.spec # PyInstaller spec
│
├── frontend/ # Electron + React
│ ├── electron/main.js # Electron entry, spawns backend in packaged mode
│ ├── src/
│ │ ├── App.tsx
│ │ ├── components/ # MapView, ControlPanel, EtaBar, etc.
│ │ ├── hooks/ # useSimulation, useDevice, useBookmarks
│ │ └── services/api.ts
│ ├── build/icon.ico # App icon
│ └── package.json # electron-builder config
│
├── start.py # Dev launcher (used by LocWarp.bat)
├── stop.py
├── LocWarp.bat # Dev entry (auto-elevates)
└── build-installer.bat # Build installer (one-shot)
| 症狀 | 可能原因 / 解法 |
|---|---|
| Tunnel 啟動後 backend 連不上 | 確認以系統管理員身份啟動 |
No such service: com.apple.instruments.dtservicehub (iOS 17+/26) / LocWarp 跳「iPhone 上未偵測到 DDI」 |
v0.2.58 起 LocWarp 不再自動掛 DDI,請用下列任一工具幫 iPhone 掛一次 DDI 後再回來使用:Xcode、愛思助手、3uTools、pymobiledevice3 CLI。也可先「設定 → 隱私權與安全性 → 開發者模式 關閉,重開機,再次開啟」,然後用上述工具重新掛一次。 |
| 開發者模式未顯示(iOS 16+) | v0.2.61 起,LocWarp 連線後在狀態列會出現「顯示開發者模式選項」按鈕,點下去 iPhone 設定裡就會出現開發者模式(不用側載 IPA)。若按鈕失敗或想手動處理,可參考下方 附錄:iPhone 開啟開發者模式(Windows 流程) 的側載方式作為備援。 |
iOS 16+ 的「設定 → 隱私權與安全性 → 開發者模式」預設不顯示。Apple 要求裝置必須被開發者簽署之 App 部署過(或直接對 AMFI 服務下 reveal 指令),該選項才會出現。
LocWarp 連上裝置後,狀態列會出現「顯示開發者模式選項」按鈕(僅在偵測到 iPhone 的 Developer Mode 未啟用時顯示)。點一下,後端呼叫 AMFI 服務幫 iPhone 寫下顯示 marker,然後:
- iPhone 上完全關掉「設定」App(從底部往上滑移除)
- 重新打開「設定」
- 「隱私權與安全性」往下拉,應該會看到「開發者模式」
- 點進去自行開啟(iPhone 會要求先關閉螢幕密碼 + 重啟一次)
完成後 LocWarp 狀態列的按鈕會自動消失。
如果 LocWarp 的按鈕不能用(例如裝置沒透過 USB 連線,純 WiFi 模式下 AMFI 服務 advertising 不到),可改用傳統側載 IPA 方式:
- 安裝 Sideloadly
- 於 Decrypt IPA Store 或 ARM Converter Decrypted App Store 等解密 IPA 網站取得任意 IPA 檔案。建議挑選體積較小的檔案管理類 App 以縮短側載時間
- 將 IPA 拖入 Sideloadly 視窗
- USB 連接 iPhone,於 Sideloadly 輸入個人 Apple ID
- 按下 Start 執行側載,等待完成
- iPhone 上 設定 → 隱私權與安全性 → 滑至底部 → 會出現「開發者模式」,開啟該開關
- 系統提示重新啟動,重啟後再次確認開發者模式為開啟狀態
完成後即可回到 LocWarp 建立連線。iOS 17+ 還需額外用 Xcode / 愛思助手 / 3uTools / pymobiledevice3 CLI 幫 iPhone 掛過一次 Developer Disk Image,LocWarp 本身不會自動掛(v0.2.58 起)。
本專案採用 MIT License 授權釋出, 詳見 LICENSE。
允許自由使用、修改、再散佈與商業利用,惟須保留原始著作權與授權聲明。
本專案開發初衷僅供地理資訊系統(GIS)研究、行動應用程式開發測試、位置服務原型驗證及相關技術探討使用。請勿將本工具用於任何非法用途,或違反第三方服務條款、平台政策之行為。
本專案透過 pymobiledevice3 介接 Apple DVT / RemoteServices 協議,以模擬 GPS 訊號達成虛擬定位。若將本工具用於基於地理位置的遊戲(例如 Pokémon GO、Ingress、Monster Hunter Now 等)或社交、打卡、物流類應用,可能違反該平台的服務條款,進而導致帳號遭警告、限制、封鎖或永久停權。開發者對因使用本工具所造成之任何帳號損失、虛擬財產損害或衍生糾紛,概不負責。
本專案於 WiFi Tunnel 模式下需以系統管理員權限執行,以建立 TUN 虛擬網路介面並與 iOS 裝置協商 RSD(Remote Service Discovery)通道。雖然程式碼已經內部測試,但開發者不保證於所有 Windows 版本、硬體組合、網路環境下皆能穩定運行。常見的潛在狀況包括:
- 與 VPN 軟體、第三方防火牆或網路虛擬化工具發生衝突,導致 Tunnel 建立失敗或系統網路暫時異常
- 程式非正常結束時殘留的 TUN 介面需重新啟動系統始能清除
- 連線中斷時需手動重試或重啟應用程式
使用者應自行評估上述風險並承擔因此所產生之任何後果。本專案僅操作本身所建立之臨時網路介面與自身設定檔(位於 ~/.locwarp/),不會修改 iOS 裝置內任何使用者資料,亦不會變更作業系統核心檔案或既有裝置配對記錄。
本專案前端採用 Leaflet,底圖由 OpenStreetMap 之衍生供應商(CartoDB)提供,路線規劃與地理編碼則使用 OSRM 與 Nominatim 公共 API。地圖顯示之座標、路徑、地址資訊僅供參考,開發者不保證其完整性、即時性、正確性或與實際地理位置完全一致。使用者在依照地址搜尋、路線導航、隨機漫步等結果進行定位模擬前,應自行比對地圖顯示是否符合預期。
使用者應自行遵守所在地之法律法規,包括但不限於《個人資料保護法》《電腦處理個人資料保護法》《著作權法》及相關國際條約。任何因濫用、誤用或違法使用本工具所引發之法律糾紛、民事賠償或刑事責任,均由使用者個人獨自承擔,與本專案之開發者及貢獻者無涉。
下載、安裝或執行本軟體,即視為您已完整閱讀並同意上述全部免責條款。
若不同意,請立即停止使用並移除本軟體。

