🔥 Hot Topics

iOS 免越狱改定位,真稳吗?

不想越狱又想改 iPhone GPS?mekos2772/ios-location-spoofer 拿下 1065 star,但 Shadowrocket 模块加载、自签证书 7 天失效、Apple 封号风险让无数人踩坑。一文讲清原理、签名、避坑。

📅 July 3, 2026 📊 Level: intermediate 📦 GitHub: mekos2772/ios-location-spoofer

Sponsored

iOS 免越狱改定位,真稳吗?

mekos2772/ios-location-spoofer 是一个不需要越狱就能改 iPhone GPS 定位的开源项目,过去 24 小时在 GitHub Trending 拿下了 1065 颗 star。它把 Shadowrocket 模块、开发者模式 API、p12 自签打包成一条”小白也能跑”的链路,正好踩中”不想为改个定位就丢保修”的痛点。相比爱思助手、iTools 这类付费工具,它的卖点是透明:所有脚本、模块源码都摆在你面前,被 Apple 风控波及的概率也能自己评估。

本文整理了 HN、Reddit r/jailbreak、GitHub Issues 里最高频的 5 个问题,并给出可直接复制的代码片段。

Q1:它到底是怎么”骗过” iOS 的?

现象:很多人装完发现 Apple Maps 真的能”瞬移”到东京、纽约,但微信、抖音定位却没有同步——以为是脚本坏了。

根因:iOS 16 起 Apple 开放了 com.apple.developer.location.push 模拟定位权限。底层原理是给 App 注入带签名地理数据的 XPC 消息,再让 CoreLocation 把它当作真实 GPS 返回。ios-location-spoofer 用 Shadowrocket 在 MITM 阶段拦截 CLLocationManager 的回调,并替换为伪造坐标。由于模拟器走的是另一条 API,所以这个项目只对真机有效。

解法:iPhone → 设置 → 隐私与安全 → 开发者模式 → 开启 → 等待重启 → 用 Safari 打开项目里的 devmode.html(含 ?devmode=true URL Scheme)触发系统信任弹窗。这一步不做,CLLocation 会直接丢弃所有伪造包。这也是为什么很多 Issue 里报”装了没用”。

Q2:Shadowrocket 用哪个版本?怎么加载模块?

现象:GitHub Issues 里 60% 提问是”装完没生效”。

根因:Shadowrocket 自 2.2.18 起才支持外部 .module 加载,老版本会静默忽略请求;同时模块必须放进 Shadowrocket 沙盒里的 Modules/ 目录,而不是 Documents/。还有一种常见错误是把模块当成 Quantumult X 的 .qx 重写——协议完全不同。

解法:把下面这段保存为 LocationSpoof.module,然后用 Shadowrocket 首页右上角”+”→“从 URL 安装”导入:

# LocationSpoof.module
name=LocationSpoof
desc=Inject fake GPS into CLLocationManager
author=mekos2772
icon=https://example.com/icon.png
version=1.0.0

[Script]
type=location
pattern=^https?://(.*?)/geo/v3/.*
script-path=https://raw.githubusercontent.com/mekos2772/ios-location-spoofer/main/spoof.js

[MITM]
hostname=*.apple.com,*.icloud.com,*.amap.com
skip-proxy=127.0.0.1,192.168.0.0/16

导入后回到 Shadowrocket → 设置 → 代理 → HTTPS 解密 → 启用 MITM → 安装 CA 描述文件 → 在 设置→通用→VPN与设备管理 里信任。重启 Shadowrocket,”🚀“图标亮起即生效。

Q3:自签证书 7 天就过期,怎么办?

现象:每次侧载完不到一周,App 就打不开,提示”无法验证开发者”。

根因:Apple 免费开发者证书(Personal Team)有效期只有 7 天,且每台设备最多注册 3 个 App ID,超过就会被回收。商业工具 AltStore 之所以能续期,是因为它在 macOS/Windows 上常驻一个守护进程,每隔几天自动重新签名 ipa 并回推回设备。

解法:用 fastlane sigh 配合 zsign 做半自动续签脚本:

#!/usr/bin/env bash
set -euo pipefail

UDID=$(idevice_id -l | head -1)
APP_ID="com.spoofer.loc"

fastlane sigh download --app_identifier "$APP_ID" --filename embedded.mobileprovision --device_id "$UDID"

zsign -k ./certs/cert.p12 -p "$P12_PASSWORD" -m embedded.mobileprovision -o build/signed.ipa build/unsigned.ipa

ideviceinstaller -i build/signed.ipa -u "$UDID"

echo "Re-signed at $(date) on $UDID" >> ~/spoofer-resign.log

把以上脚本丢进 ~/Library/LaunchAgents/com.spoofer.resign.plist(macOS)或 Windows Task Scheduler,每周日凌晨自动跑,就免去手动打开 Xcode 的痛苦。

Q4:Apple 会不会检测到并封 Apple ID?

现象:r/jailbreak 上有用户反映”改完定位第二天 Apple ID 被锁,需要 24 小时才能解锁”。

根因:Apple 的风控维度是多模态的——不仅看 GPS 是否跳变,还会同时比对 Wi-Fi BSSID 列表、基站 MCC/MNC、气压计读数、加速度传感器。一旦某一维度与其他维度不一致,就会触发 Step-up Auth。

解法

  1. 专用小号:永远不要用主力 Apple ID 登录 Spoofer,单独申请一个无绑卡、无通讯录、无 iCloud 数据的免费 ID。
  2. 降级伪造粒度:把 spoof.js 里的 setInterval(loop, 1000) 改成 60–120 秒,再加 var speed = random(1.2, 1.6) 模拟真实步速。
  3. 关闭 Find My:登录过的设备会写入 Apple ID 信任列表,触发二次验证甚至账号冻结。
  4. 避开金融 App:微信支付、支付宝、银行类 App 会读取设备指纹,发现 Wi-Fi ≠ 基站 ≠ GPS 三件套不一致会直接风控转账功能。

Q5:有没有”无感知”的替代方案?

现象:开发者不想装 Shadowrocket、不想搞证书,嫌麻烦只想跑 CI 测试。

根因ios-location-spoofer 的设计本身就是”用户向”,它依赖 Shadowrocket 的 MITM 能力绕不开证书信任步骤。如果只是开发调试,根本不需要这条路。

解法:在 macOS 上可以用 xcrun simctl 给模拟器喂坐标:

xcrun simctl location booted set 31.2304,121.4737
xcrun simctl location booted start ./shanghai-walk.gpx

真机要”无感”,目前只有两类方案:

对个人玩家来说,老老实实跟着本文 Q1–Q3 走才是成本最低的路线。


Sources

📦 开源项目

本教程基于开源项目 mekos2772/ios-location-spoofer 整理。

⭐ View on GitHub →

📚 Sources

Sponsored

🛠️ Related Tools & Resources

Mechanical Keyboards →
For coding & writing tutorials
USB-C Hubs →
Multi-monitor dev setup
Noise-Cancelling Headphones →
Focus while learning
Laptop Stands →
Ergonomics for long tutorials