bom.cat
Xcode의 Simulate Location (feat. pokemon go) 본문
iOS에서 위치 기반 서비스를 포함하는 앱을 개발할 때 가상의 위치를 넣어줄 수 있습니다. [Debug -> Simulate Location] 인데요.
기본적으로 지정할 수 있는 세계 곳곳을 포함해서 GPS경로를 저장하는 포맷인 gpx 파일을 읽어들여 경로대로 이동하게할 수 있습니다. 이것을 포켓몬go와 응용할 수 있겠죠? (이건 fake gps로써 밴 사유에 해당합니다. 판단은 알아서)
Xcode에서 gpx 파일 내용 중에서 보는 정보는 단 하나, 웨이포인트(wpt) 정보의 위도, 경도 입니다[1]. 이 외에 다른 정보 즉, 시간이나 고도 이런건 보지 않습니다.
xcode에서 simulate location을 할 떄 wpt정보를 갖고 약 0.5초 ~ 1초 정도 갭을 갖고 이동시켜 주는데 인터넷에서 구할 수 있는 gpx 로그 중 xcode에서 읽기가 가능하고, '자연스럽게' 이동하는 로그를 구하기가 힘듭니다. 보통 분단위로 기록하기 때문에 xcode에서 0.5초~1초 정도 갭을 두고 이동하는 특성 상 매우 빠른 속도로 이동하는 것처럼 보이기 때문에 밴 당할 염려가 있어 보입니다. (사실 어떻게 부정 행위를 적발하는지는 정확히 모릅니다. 어떤 분은 타임스퀘어 찍고 잠시 후에 속초 이동하니 밴 당했다고 하더군요)
그래서 주기가 짧은 로거를 키고 직접 가서 gpx를 만들어오거나.... 집에서 만들면 됩니다.
여러 곳을 찾아봤는데,
gpx 만드는건 http://www.gmap-pedometer.com/ 여기가 제일 좋았구요.
만든 루트를 좀 더 '자연스럽게' 만들어 주는건 직접 만들까 하다가 우연히 찾은 https://github.com/appscape/gips 이걸 이용했습니다.
그 결과는
|
<gpx> <wpt lat="38.19122" lon="128.60263"></wpt> <wpt lat="38.19121" lon="128.602622"></wpt> <wpt lat="38.1912" lon="128.602614"></wpt> <wpt lat="38.19119" lon="128.602606"></wpt> ...... |
이런식으로 나오게되고 시뮬레이팅하면
요렇게 돌게 됩니다. ㄱㅅ
---
[1] https://blackpixel.com/writing/2016/05/simulating-locations-with-xcode-revisited.html
'개발 > iOS' 카테고리의 다른 글
| iOS Private API 사용하기, Swift (0) | 2016.05.02 |
|---|