/LocationSimulator

Mac application to spoof your iOS device location.

Primary LanguageSwiftMIT LicenseMIT

LocationSimulator

LocationSimulator screenshot

Description

LocationSimulator is a macOS app which allows spoofing the location of an iOS device. The main target audience of this project are developers who want to test their location service based application. Of course you might as well use this app to spoof your location inside PokemonGo, but don't blame me if you get banned. The method used to spoof your location is basically the same used by PokemonGo Webspoof (except that Xcode is not required) or iSpoofer.

Background

While I originally planed to build upon the fantastic work of Watanabe Toshinoris LocationSimulator I decided to recreate and change the whole project because of the projects missing license. I created all necessary images and source code files and removed all dependencies except for libimobiledevice. Even Xcode is not required anymore. You just need the DeveloperDiskImage.dmg and DeveloperDiskImage.dmg.signature files for your iOS Version.

Features

  • ✅ Spoof the iOS device location without a jailbreak or installing an app on the device.
  • ✅ Automatically try to download the DeveloperDiskImage files for your iOS Version.
  • ✅ Set the device location with a long click on the map.
  • ✅ Support 3 movement speeds (Walk/Cycle/Drive).
  • ✅ Control the movement using the arrow keys.
  • ✅ Navigate from the current location to a new location.
  • ✅ Support network devices.
  • ✅ Search for locations.
  • ✅ Support dark mode.

Build

Requirements

Note:
LocationSimulator will try to download the corresponding DeveloperDiskImage.dmg and DeveloperDiskImage.dmg.signature for your iOS Version from github, because I can not legally distribute these files. If the download should not work, get the files by installing Xcode and copy or link them to:
~/Library/Application Support/LocationSimulator/{MAJOR_YOUR_IOS_VERSION}.{MINOR_YOUR_IOS_VERSION}/

Build the app

  1. Install the latest Xcode developer tools from Apple.

  2. Install latest version of libimobiledevice (and thereby all it's dependencies as well) with homebrew:

    brew install libimobiledevice --HEAD

You might need a new version of libusbmuxd for libimobiledevice to install. Use brew install usbmuxd --HEAD to install the latest version. (versions >= 2.0.1 are sufficient)

  1. Clone this repository:

    git clone --recurse-submodules https://github.com/Schlaubischlump/LocationSimulator
  2. Open LocationSimulator.xcodeproj in Xcode.

  3. Adjust the header search paths, library search paths and the embedded and linked libraries if required.

If you checked out a different head for libimobiledeive or libusbmuxd than used in this project, you will need to change all of the above entries.

  1. Tap Run to build and execute the app.

Note:
If you want to build a standalone application which can be copied to another Mac without installing the dependencies choose the LocationSimulator scheme and switch the configuration to Release before running. If you do not want to bundle the dependencies, but want to create a release build choose the Homebrew scheme. When a new release of libimobiledevice is available, I will try to create a homebrew cask for this application.

Usage

Start spoofing:

  1. Connect the iOS device to your computer via USB or Wi-Fi.
  2. Long click the point you want to set as the current location on the map.

Moving:

  • Click the walk button at bottom left corner of the map. Drag the blue triangle to change the direction of movement.
  • Long click the walk button to enabled auto move. Click again to disable auto move.
  • Long click on a new point on the map while you are spoofing the location to show the navigation prompt.
  • Use the left and right arrow keys to change the direction of movement. Use up and down to move. Press space to stop the navigation.

Stop spoofing:

  • Click the reset button.

License

The whole project is licensed under the MIT License unless specified otherwise in the specific subdirectories.

Contribute

Help is always appreciated, wether it are bug fixes or features! E.g accessibility support is still to be implemented, especially for the popup menu.

Enhancement ideas

  • Allow following a predefined route from a gpx file