Andy矢倉

老板 来杯董小姐 去冰 少糖 多放点小姐

曾梦想 仗贱走天涯 看尽女人和繁华


iOS 模拟定位,随时随地钉钉打卡

本文只使用有Mac电脑,用iPhone的骚年们。
本章是水文,利用Xcode模拟定位打卡很早就有教程了,这里干货只有一行,离开Xcode任然保证模拟定位不变。

对象:钉钉等LBS应用

近两年很多企业和中小型公司都开始使用钉钉打卡签到。很多苦逼党因为坐公交晚了几分钟,被扣钱,晚了几分钟,全勤没了,所以这里我们可以缓解下代码狗的痛苦 —— 模拟定位(先打卡,再到公司)。已经会连Xcode模拟定位的可以忽略前面的部分内容,直接跳到最后。

公司设定打卡范围,100米,500米,1公里都可以,但是基于有模拟定位这个技术,钉钉在打卡选项里加了一项WiFi打卡,定位打卡和WiFi打开可以叠加存在以保证有人打卡作弊(后面讲解如何破解WiFi)。

开车

  • 一台Mac (安装了Xcode)
  • 一台iPhone(越狱不越狱无所谓)
  • 一根数据线。

坐标系统

这里普及一下坐标系统:
目前我们经常接触的无非就是原始坐标火星坐标二次加密坐标

  • 原始坐标:手机上获取到的是原始的GPS坐标 —— WGS-84
  • 火星坐标:我大天朝自己加了飘逸搞的一套加密坐标,中国国测局(和GFW一样的傻屌组织)—— GCJ-02谷歌高德
  • 百度加密坐标:在火星坐标的基础上再次飘逸后的加密坐标 —— BD-09百度

在遥远的东方,有一个天朝。
天朝有一个测绘局,发明了一种把美国卫星的GPS的地球坐标,进行偏移的算法,计算后,得出了一个火星坐标。
为了让火星坐标能正确的显示,又给每部导航软件加入了这个算法,可以在大家的地图上还原位置。并且给每部导航收费。美其名国家安全。而且这个算法看上去很牛B的样子,还不可逆。
所以,只有这个国家的人都在用错误的坐标。正宗的掩耳盗铃。
民用卫星精度都已经让你出身冷汗了,何况军用卫星。打仗估值也不会用中国的电子地图吧。
只可惜各种LBS应用,都是个麻烦事哦。

还好黄天不负有心人,终于经过大家的模拟,计算,基本还原了飘逸算法

选技师

坐标获取入口:

首先,根据各自的喜好,选好你想要模拟的位置,这里以高德地图为例:



可以看到右边有显示坐标 :

1
104.06521,30.589833

上钟

iPhone所需要的坐标是WGS-84,我们获取的是GCJ-02,这里我们利用最新飘逸还原算法来转换出你所需要的真实坐标。

我所在的定位四川省成都市ACC中航城市广场原始坐标为:

1
104.06263069384391,30.593234492328744

服务

这里我们需要新建一个gpx文件,包含坐标用于模拟定位。

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8" ?>
<gpx version="1.1"
    creator="GMapToGPX 6.4j - http://www.elsewhere.org/GMapToGPX/"
    xmlns="http://www.topografix.com/GPX/1/1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
    <wpt lat="30.593234492328744" lon="104.06263069384391">
    </wpt>
</gpx>

根据不同位置不同把转换得到的原始坐标对应到latlon里面即可。

记得先把手机定位打开。

真机运行一个新建的空的iOS项目,把上面我们新建的gpx文件拖到工程里,配置一下Scheme,然后真机运行即可。






这个时候千万别点Stop,直接Home键后台,再打开带定位的应用看看你当前的位置,484超开心。
还原定位的方法,直接Stop即可。

下钟

大保健做完了,可能有的会所还会送你一点小礼品,你要逗得技师开心结束的时候还会送你点小惊喜。

辣么,惊喜来了:

  • 破解钉钉WiFi打卡:把家里的WiFi名称改得和公司打卡的WiFi即可。据我测试,我们公司只配置校验了SSID,没有校验DHCP地址。
  • 随时随地打卡:按照上面的步骤模拟定位完成之后,不要Stop,直接拔掉数据线(猜测是Xcode开发者模式开了个进程来模拟定位,如果Xcode上没有Stop,那这个进程就不会Kill掉)。
  • WiFi破解弊端:公司如果启动了DHCP校验,那就只能靠社工的方法搞到地址,也只能在家里打卡了。
  • 随地打卡弊端:恢复方法只能重启手机才能还原定位,经测试,微信里地图无法使用,一片空白,所以这里阔以用不用的旧的测试机来专注打卡,我就只能帮你到这里了。

中午测试了下摩拜的红包车,如果我的手机定位没有改变,无论骑行多远,骑行距离都是0米,红包也只有一块(一中午四辆红包车均是如此)。看到这里应该不用我告诉你怎么撸红包了吧,撸红包的成本还是相对较高,必须随时背着电脑,如果公司没有开启WiFi打开,你又恰巧背了电脑,那就真的能随时随地打卡了。

Demo:https://github.com/rockerhx/SimulateLocation

最近的文章

Github仓库迁移,替换Commit数据信息

最近迁移了Github上旧的脑残账号,把仓库迁移到新账号的时候无意中发现Github提供了替换Commit的方法,由于仓库里都是自己提交的代码,索性通过Github提供的脚本把旧账号的信息全部替换到新账号,这样新账号还能装上经常Contribution的逼,保证不侧漏。 官方提供了入口:http …

于  Github, Location, git 继续阅读
更早的文章

iOS手把手搭建·无限循环滚动视图

在大多数常规App开发当中,我们都会有产品运营栏的需求,也就是列表页或者产品顶部,又或者整个页面需要展示几个滚动的运营活动、产品、广告什么的,当然,也可能是一个自己实现的一个图片浏览器。在早些年,这类需求大多都是从First逐个滚动到Last,然后再自动滚到First,技术上无非都是通过UIScrollView + Timer的方案,iOS开发往往都喜欢专注于用(xuan)户(ji)体(zhuang)验(bi)的,所以后来出现了无限循环滚动的体验。 …

于  Infinite, ScrollView, UICollectionView, iOS 继续阅读