1. 程式人生 > >iOS端Mock GPS定位 —— 測試、開發、玩遊戲、發朋友圈等等,你都用得上

iOS端Mock GPS定位 —— 測試、開發、玩遊戲、發朋友圈等等,你都用得上

前言

2017年,淘寶、天貓線下活動會場日益增多,個性化的地理圍欄圈人投放成了運營司空見慣的方式,那麼每次測試就變得非常蛋疼。安卓能找到一大波能虛擬定位的工具,那ios如何測試。我們Awareness的開發測試也遇到了這個問題。一開始我設定了園區1號樓和6號樓2個點,但是iphone的後臺LBSPush位置偏移比較嚴重,好難進入圍欄,每天都能有1萬多步捐獻。呵呵,好傻的測試方式。那就想辦法吧。越獄無疑是一個手段,可惜越獄手機比較少,ios10也沒出完美越獄的方法。所以今天我要介紹的是一個不用越獄就能mock測試的方式,利用GPX檔案來虛擬定位。這個是Xcode自帶的一個功能,知道如何使用的直接忽略此Blog。

準備

  • Mac電腦一臺
  • 裝上Xcode

開始

這個方法原本蘋果的用意是mock所開發APP內的位置,但是其實,使用這個方法,能將本機所有的app的定位都mock掉,有木有很激動?什麼?你不知道激動啥?Pokemon Go 儂曉得伐,哪裡出了快龍看著安卓小夥伴一個虛擬定位就飛過去的時候,你還在原地傻站著?朋友圈髮狀態 儂又曉得伐,看著別人滿世界跑,咋們也要裝個B~ 點到為止!看完本期教程,你想怎麼用就怎麼用!

Step 1

首先我們開啟Xcode,新建一個工程:

就選第一個Single View App:

然後隨便輸入個工程名,這麼快怎麼來,不要在意這些細節。

Step 2

新增一個New File,找到“GPX File”,選中,next,新增到指定Targets。至此,你的任務已經完成了一半了。這時候我們就要去找想要Mock的目的地的經緯度了。這裡提供一個查詢的網站:

http://www.gpsspg.com/maps.htm

由於每一家公司的定位標準不同,經緯度就會存在偏差,這時候就要看你所使用的APP使用哪家的地圖了。系統後臺地理圍欄推送你需要用谷歌地圖會更精準一些。而百度地圖APP多次測試後發現用的卻是谷歌地球的經緯度標準好滑稽~微信竟然也是用的谷歌地球的經緯度標準。這個反正比較一下就能發現。
決定你需要用哪個經緯度之後,我們開啟剛剛生成的GPX檔案,填寫好經緯度和對應的Name,如圖:

由於我手機上裝了百度地圖,所以我這裡的經緯度就用谷歌地球吧。好了這個GPX檔案就編輯好了

Step 3

接下來我們就要讓程式在手機裡執行起來了,在此之前我們要讓程式的Target執行的時候讀取該GPX檔案:
點選:Target-> Edit scheme -> Options -> Default Location 選中你剛剛自己建立的GPX檔案

驗證

好了,一切就緒,選好你的手機裝置,選好你免費建立的debug證書(網上有很多教程),直接run起來~~
啟動後你會發現程式空白一片,不用怕!其實這時候你手機的定位已經變了!不信?我們開啟百度地圖和微信看看~

哈哈,位置都是我修改過的位置!到此教程結束!大家快去玩吧~愛怎麼玩就這麼玩!