前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS移动应用模拟定位的非侵入式测试方案

iOS移动应用模拟定位的非侵入式测试方案

作者头像
岛哥的质量效能笔记
发布2021-08-18 15:03:07
9020
发布2021-08-18 15:03:07
举报
文章被收录于专栏:岛哥的质量效能笔记

阅读本文大约需要2.1分钟。

背景

像饿了么、口碑这样的LBS应用,在平时业务测试过程中经常会遇到需要修改定位信息的时候,有的时候可能修改一下应用内的地址定位即可满足,但有的时候需要mock手机本身的GPS信息,今天来分享一下如何在iOS真机上模拟GPS定位信息。

方案

由于iOS系统获取定位的方式依赖于系统统一接口,所以模拟的位置会在整个手机生效,不过有些应用具有定位矫正功能比如会根据当前网络IP或者其他手段来做校验,这类应用就需要通过内部集成相应的模拟工具来实现了。

Xcode模拟

苹果的Xcode本身就提供了定位的模拟方案,如下先创建一个空的App项目

然后在根目录下新建一个gpx文件,文件名可以命名为要模拟的地址

在谷歌或者百度地图上找到你想要模拟位置的经纬度信息

将经纬度信息填到gpx文件中即可

这时候连接真机运行工程,选择对应想要模拟的地址即可

此时手机上的定位信息以及被修改,随便打开一个地图应用可以看到修改后的位置

idevicelocation模拟

idevicelocation是一个命令行工具,可以通过USB或者WIFI连接设备然后直接修改定位信息,而且可以很方便的用于自动化。

GitHub地址:https://github.com/JonGabilondoAngulo/idevicelocation

依赖软件

代码语言:javascript
复制
libimobiledevice
libusbmuxd
libplist
openssl
代码语言:javascript
复制
usbmuxd
make
autoheader
automake
autoconf
libtool
pkg-config
gcc

安装

先把GitHub仓库clone下来,然后执行下面的命令:

代码语言:javascript
复制
./autogen.sh
make
sudo make install

这个过程中可能会遇到找不到openssl库的问题以及libimobiledevice的编译错误,可以执行下面的命令来解决:

代码语言:javascript
复制
If the compiler cant find the openssl libs try this:

	export PATH=/usr/local/opt/openssl/bin:$PATH
	export LD_LIBRARY_PATH=/usr/local/opt/openssl/lib:$LD_LIBRARY_PATH
	export CPATH=/usr/local/opt/openssl/include:$CPATH
	export LIBRARY_PATH=/usr/local/opt/openssl/lib:$LIBRARY_PATH
	export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig

brew update

brew uninstall --ignore-dependencies libimobiledevice

brew uninstall --ignore-dependencies usbmuxd

brew install --HEAD usbmuxd

brew unlink usbmuxd

brew link usbmuxd

brew install --HEAD libimobiledevice

完成后既可以在命令行中输入经纬度信息执行:

代码语言:javascript
复制
$ idevicelocation 48.856614 2.3522219000000177

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 岛哥的质量效能笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档