아이폰에서 위치 조작(위치 스푸핑이, 가짜 GPS 위치 설정)은 보안 정책 때문에 안드로이드보다 훨씬 어렵습니다. 하지만 개발·테스트용이나 특정 목적(앱 시뮬레이션 등)을 위해 일시적으로 사용할 수 있는 몇 가지 방법이 있습니다. 아래에 대표적인 방법들을 정리해 리고, 제가 직접 개발한 프로그램과 주요 소스코드를 알려드리겠습니다.
테스트 기기 정보 : iPhone 14 Pro Max, iOS : 18.5 (2026.6.14 기준), Windows11
모바일앱 개발을 위한 여러 함수들을 모아놓은 pymobiledevice3라는 강력한 파이썬용 라이브러리가 있습니다. 이 pymobiledevice3를 활용하여 위치 조작을 할 수 있습니다.
pymobiledevice3 developer dvt simulate-location set [위도] [경도]
위 프로그램을 실행하여 아이폰의 위치조작을 하기 위해선 몇가지 사전 작업들이 필요합니다.
따라하기 어려우신 분들을 위해 빌드된 프로그램을 먼저 업로드해드리겠습니다.
다운로드 링크 :
https://drive.google.com/file/d/1-Xsf9R7mgtHSo0VMqE6WestbqlDyk5qU/view?usp=drive_link
출처와 개발자명을 무단으로 변경하지 않는 조건으로 배포를 허락합니다.
아래 코드도 공유해드렸으며, 제가 직접 빌드한거라 해킹 관련 코드는 없으므로 안심하고 받으셔도 됩니다.
아이폰은 안드로이드와 달리 엄격하게 위치 조작을 허용하지 않기 때문에, 개발자모드로 변경하여 일시적으로 만 사용이 가능합니다. 이 기능을 활용하여 위치기반 강의실 출석체크 시스템이라던지, 멀리있는 포켓몬을 잡아온다던지 할 때, 이 기능을 활용하여 바꿀 수 있습니다.
아이폰 위치정보를 윈도우 OS에서 조작하기 위해서는 아이폰에 바로 “위치정보 변경 요청”을 날리기 위해 바로 접근할 수 없고 중간에 “터널”이라는 관리자 서버같은걸 통해서만 접근할 수 있습니다.
즉 아래처럼 터널이란 서버같은걸 하나 띄어야 합니다.
파이썬에서는 아이폰과 송수신이 가능한 pymobiledevice3라는 강력한 라이브러리가 있습니다.
저는 이 라이브러리를 활용하여 터널을 구성하고 아이폰에 터널을 통해 위치정보 조작을 해보겠습니다.
터널은 파워쉘 또는 커멘트창을 반드시 “관리자 권한으로 실행”하여 띄어야 합니다.
프로그램 실행을 위해 설치 및 설정 등 최초 1회는 준비해야 할 작업이 있고,
최초 작업 이후에는 매번 프로그램 실행 시 마다 해야 할 작업이 있습니다.
우선 파이썬과 pymobiledevice3를 설치해야 하고, 기본적으로는 아이폰과 PC의 데이터 송수신을 위해 iTunes도 설치되어 있어야 합니다. (정확하게는 드라이버)
[최초 1회 준비]
1. Python 설치: python.org/downloads
2. 라이브러리 설치 (터미널 실행):
pip install pymobiledevice3
pip install ttkbootstrap
3. 디스크 이미지 마운트 (터미널 실행):
python -m pymobiledevice3 mounter auto-mount
저는 이미 마운트 되서 aready mounted 라고 떠있는 장면을 캡쳐했습니다.
[프로그램 실행 시 마다]
1. 관리자권한으로 파워셀 또는 커맨드창 실행
2. 터널 기동
python -m pymobiledevice3 remote tunneld
아이폰을 케이블에 연결하고 위치변경기 프로그램을 실행합니다.
“위치변경 실행”버튼을 클릭하면 순간적으로 아이폰의 위치가 변경됩니다.
테스트모드라 영구적으로 변경되는게 아니에요. 잠깐 변경됩니다.
위치조작에 성공하게 되면 지도앱을 켜놓고 실행해보면 위치가 변경되는것이 실시간으로 확인됩니다. PowerShell의 로그창에는 200 OK가 뜹니다.
간혹 윈도우 버그로 파워쉘이나 커멘드창에서 엔터키를 처야 수행되는 경우가 있습니다.
이때 변경된 후 원하는 프로그램으로 이동해서 조작을 하면 됩니다.
터널을 안띄우고 프로그램 하나에서 모든걸 다 수행하게 개발하기 위해선,
터널을 띄우기 위한 쓰래드를 하나 생성해서, 백그라운드에서 터널이 실행되게 해야 하고,
관리자모드로 수행되게 개발해야 합니다. 프로그램이 비정상적으로 중단되거나 종료하면 안정적으로 시스템이 종료되도록 하는 예외처리 등 기술들이 추가적으로 필요합니다. 터널이 백그라운드에서 뜬다면 해당 로그를 확인할 수 있는 로그창도 필요할 것입니다.
2025.6.18 업그레이드 버전:
위에 해당되는 기술들을 추가하여 프로그램을 추가적으로 개선했습니다. 사용 환경에따라 잘 동작하지 않는 경우 역시 수동으로 터널을 띄우고 프로그램을 실행하는것이 좋겠습니다.
프로그램은 라이브러리 모두 포함해서 빌드했더니 용량이 꽤 되서 제 구글드라이브에 따로 업로드 해두었습니다.
아래는 프로그램 다운로드 링크입니다. 폴더째로 압축을 풀으신 후 관리자모드로 실행하시면 됩니다.
출처와 개발자명을 무단으로 변경하지 않는 조건으로 배포를 허락합니다.
다운로드 링크 :
https://drive.google.com/file/d/1-Xsf9R7mgtHSo0VMqE6WestbqlDyk5qU/view?usp=drive_link
이 게시글의 링크 :
https://itstack.co.kr/iphonegps
직접 빌드해서 프로그램을 생성하시고 싶은 분은 아래 단계를 순서대로 따라오시면 언제든지 동일한 결과물을 다시 만드실 수 있습니다.
소스코드 파일 두개 링크
https://drive.google.com/file/d/1JSns2h4D7nknEFKMSZlUii_wxahJef3i/view?usp=drive_link
https://drive.google.com/file/d/1h2koMYPowuqVOHge6QfJ7XKjhmAOQGUD/view?usp=drive_link
Anaconda Prompt
를 찾아 실행합니다.conda activate locfake_env
(locfake_env)
라고 표시되는지 반드시 확인하세요.cd D:\Workspace\LocFake
D:\Workspace\LocFake
폴더 안에 아래 3개의 파일이 모두 있는지 확인하세요. allinone.py
(최종 수정본)allinone.spec
(최종 아이콘 추가 버전)app.ico
(아이콘 파일은 본인이 원하는 이미지로 삽입하세요. spec파일 내 app.ico부분을 지우면 아이콘을 제외하고 빌드할 수 있습니다.)rmdir /s /q build
rmdir /s /q dist
python -m PyInstaller allinone.spec
dist
폴더 안에 allinone
이라는 폴더가 생성됩니다.dist
폴더 안의 allinone
폴더로 들어가서, 그 안에 있는 allinone.exe
파일을 실행하면 됩니다..exe
파일이 아닙니다. 프로그램을 다른 곳으로 옮기거나 다른 사람에게 공유할 때는, 반드시 allinone
폴더 전체를 압축하거나 복사해야 합니다.빌드중 Warning이 뜨는 경우는 무시하셔도 됩니다.
예시)
WARNING: Hidden import "notebook.services.shutdown" not found!
이런 경고는 완전히 무시하셔도 괜찮습니다.
pymobiledevice3
또는 그 하위 라이브러리)가 ‘주피터 노트북(Jupyter Notebook)’과 연동되는 선택적 기능을 포함하고 있습니다.WARNING
(경고) 메시지를 보여주는 것입니다. ERROR
(오류)가 아니기 때문에 빌드는 정상적으로 계속 진행됩니다.가장 좋은 해결 방법은 아무것도 하지 않고 그냥 무시하는 것입니다. 프로그램의 실제 기능에는 전혀 영향을 주지 않기 때문입니다.
하지만 빌드 과정에서 저 노란색 경고 메시지를 꼭 없애서 로그를 깨끗하게 만들고 싶으시다면, .spec
파일에 “이 모듈은 신경 쓰지 마”라고 명시적으로 알려줄 수 있습니다.
만약 경고를 없애고 싶으시다면, allinone.spec
파일의 Analysis
부분을 아래와 같이 수정하시면 됩니다.
excludes=['notebook'] #Analysis의 괄호 안쪽에 한줄 추가
애플에서 공식적으로 제공하는 개발자 도구인 Xcode를 사용하면 시뮬레이션용 가짜 위치를 설정할 수 있습니다.
Debug > Location
선택Add GPX File
로 위치 경로 설정※ 이 방법은 Xcode로 앱 실행 중일 때만 위치가 조작됩니다.
iTools, Tenorshare iAnyGo, Dr.Fone 등의 유틸리티는 비공식적으로 위치를 변경할 수 있도록 도와주는 유료 도구입니다.
※ 일부 앱에서는 이 방법이 감지될 수 있고, iOS 업데이트에 따라 차단될 수 있습니다.
iOS를 탈옥하면 다양한 위치 조작 트윅(Tweak)을 설치할 수 있습니다.
주의:
방법 | 장점 | 단점 |
---|---|---|
Xcode | 공식적, 무료 | Mac 필요, 개발자 지식 필요 |
iTools 등 유틸 | 비교적 쉬움, 윈도우 지원 | 유료, 감지될 수 있음 |
탈옥 | 모든 앱에서 조작 가능 | 보안 위험, iOS 업데이트로 무력화 가능 |
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…
과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…
크롤링(crawling)과 스크래핑(scraping)은 웹 데이터를 수집할 때 자주 사용되는 기술이지만, 크롤링은 웹사이트 탐식 및 수집, 스크래핑은…