因为某些原因,偶尔需要修改手机定位,之前都是用爱思助手来实现,升级到iOS 17后发现不能使用了,于是花了点时间研究了一下,顺利仅通过Xcode达到了同样的目的。

其实原理很简单,Xcode在debug时提供了模拟定位(Simulate Location)的功能,只需要跑个程序在你的设备上就可以修改定位了。以下是具体步骤(以Xcode 15为例):

0 前置条件

  1. 一台装有Xcode的Mac电脑,如果要修改定位的设备系统较新,Xcode也需要安装对应支持的版本,一般用最新版就好。

  2. 苹果开发者账号,因为需要在iOS设备上运行程序,开发者账号是必须的。现在个人的非付费AppleID 也能在真机调试了。

1 新建iOS工程

其实新建也不是必须的,任意iOS可以跑在手机上的项目都可以。

打开Xcode,新建项目:File - New - Project

然后选择App,填入相应的信息即可,大部分默认就好,需要提一点是Team就是你的开发者账号。不用关心自动生成的模版代码,只要能运行到手机即可。 ios-new-project

不出意外的话,现在你已经可以把新建的项目跑在手机上了,新版Xcode可以通过Wi-Fi连接手机,还是挺方便的。

run-project

2 修改位置信息

新版Xcode只支持导入GPX文件,其实就是GPS轨迹文件,包含了经纬度等信息的一系列点,因为我修改的是具体位置,只需要一个点就行了,以下是一个GPX文件内容示例:

1
2
3
4
5
6
7
<?xml version="1.0"?>
<gpx version="1.1" creator="gpxgenerator.com">
    <wpt lat="22.66" lon="114.99">
    <ele>13.77</ele>
    <time>2024-08-03T14:35:11Z</time>
</wpt>
</gpx>

可以直接修改上面的经纬度信息得到你的GPX文件,或去 腾讯位置服务 这个网站获取经纬度。

有了GPX文件 将文件拖拽入项目中了,然后配置模拟位置。

edit config

最后一步运行项目。

至此,你的设备位置就修改成功了,与爱思助手恢复正常定位需要重启手机不同,这种方式只需要停止运行这个项目即可,相当方便!后续如要再修改位置只需重复上一步,一劳永逸。

3 前置准备工作(必须)

  • 要求1: 需要使用xcode,iphone设备开启调试模式。

  • 要求2:需要先安装iOS开发环境,才会出现「真机」目标设备。 xcode-ios-dev 您必须在显示“iOS 17.5 未安装”的图像上按下 GET 键,iOS 设备才会显示。

  • 要求3:AppleID 和签名,需要使用手机的appleID账号,来登录xcode。 xcode-appleid

  • 要求4:切换手机 【可选】
    换手机:需要登录对应手机的AppleID,同时修改一下 Bundle Identifier。 这个 Bundle Identifier 谨慎修改,如果没有给苹果交保护费,那在一周内可使用的不同的 Bundle Identifier 只有10个,如果超过了会提示 Your maximum App ID limit has been reached. You may create up to 10 App IDs every 7 days.

参考文章