{"id":13468146,"url":"https://github.com/Schlaubischlump/LocationSimulator","last_synced_at":"2025-03-26T05:30:56.847Z","repository":{"id":38056785,"uuid":"205137861","full_name":"Schlaubischlump/LocationSimulator","owner":"Schlaubischlump","description":"MacOS application to spoof / fake / mock your iOS / iPadOS or iPhoneSimulator device location.  WatchOS and TvOS are partially supported.","archived":false,"fork":false,"pushed_at":"2024-10-30T11:18:21.000Z","size":13439,"stargazers_count":2609,"open_issues_count":25,"forks_count":201,"subscribers_count":33,"default_branch":"master","last_synced_at":"2025-03-19T21:15:00.787Z","etag":null,"topics":["appkit","development-tools","fake","fake-locations","ios-simulator","iphonesimulator","ispoofer","libimobiledevice","location","location-spoof","location-spoofing","macos","mock-location","mock-locations","navigation","simulation","spoof","swift"],"latest_commit_sha":null,"homepage":"https://schlaubischlump.github.io/LocationSimulator/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Schlaubischlump.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://www.paypal.com/donate/?hosted_button_id=9NR3CLRUG22SJ"]}},"created_at":"2019-08-29T10:24:05.000Z","updated_at":"2025-03-18T16:45:00.000Z","dependencies_parsed_at":"2023-02-13T05:16:01.911Z","dependency_job_id":"0c777968-19fb-4bc7-944d-510820c0aaa8","html_url":"https://github.com/Schlaubischlump/LocationSimulator","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Schlaubischlump%2FLocationSimulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Schlaubischlump%2FLocationSimulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Schlaubischlump%2FLocationSimulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Schlaubischlump%2FLocationSimulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Schlaubischlump","download_url":"https://codeload.github.com/Schlaubischlump/LocationSimulator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245597195,"owners_count":20641859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appkit","development-tools","fake","fake-locations","ios-simulator","iphonesimulator","ispoofer","libimobiledevice","location","location-spoof","location-spoofing","macos","mock-location","mock-locations","navigation","simulation","spoof","swift"],"created_at":"2024-07-31T15:01:06.212Z","updated_at":"2025-03-26T05:30:55.734Z","avatar_url":"https://github.com/Schlaubischlump.png","language":"Swift","readme":"\n\u003e **Warning**:    \n\u003e It is not clear if I will be able to support iOS 17. For more details click [here](https://github.com/Schlaubischlump/LocationSimulator/issues/171).   \n\u003e I do not support beta versions of iOS.\n\n\u003e **Note**:   \n\u003e If you use iOS 16 or greater you need to enable Developer Mode first. The Developer Mode option should show up in settings the first time you try to use your device with LocationSimulator, after you received the warning, that you must enable Developer Mode. You can read the following [issue](https://github.com/Schlaubischlump/LocationSimulator/issues/128) for more informations.\n\n[![License: GNU General Public License version 3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://opensource.org/licenses/gpl-3.0) \n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate/?hosted_button_id=9NR3CLRUG22SJ)\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"LocationSimulator/Assets.xcassets/AppIcon.appiconset/AppIcon_256.png\" width=\"128px\"\u003e\n  \u003ch2 align=\"center\"\u003eLocationSimulator\u003c/h2\u003e\n\u003c/div\u003e\n\nLocationSimulator is a macOS app (10.15.x and later) which allows spoofing the location of an iOS or iPhoneSimulator device. The target audience of this project are developers who want to test their location service based application. I do not encourage the use of this application to cheat in iOS games and I do not provide support for these games. If you use this application outside of the intended purposes, you are on your own.\n\n![LocationSimulator screenshot](Preview/screenshot.png)\n\n- [Background](#background)\n- [Features](#features)\n- [Install](#install)\n- [Build](#build)\n    - [Requirements](#requirements)\n    - [Build the app](#build-the-app)\n- [Usage](#usage)\n    - [Start spoofing](#start-spoofing)\n    - [Moving](#moving)\n    - [Stop spoofing](#stop-spoofing)\n- [License](#license)\n- [Contribute](#contribute)\n- [Donate](#donate)\n- [Enhancement ideas](#enhancement-ideas)\n\n## Background\n\nWhile I originally planed to build upon the fantastic work of [Watanabe Toshinori](https://github.com/watanabetoshinori) [LocationSimulator](https://github.com/watanabetoshinori/LocationSimulator/issues) I decided to recreate and change the whole project because of the projects (back then 18.08.19) missing [license](https://github.com/watanabetoshinori/LocationSimulator/issues/5). I created all necessary images and source code files and removed all dependencies except for [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice). Even [Xcode](https://apps.apple.com/us/app/xcode/id497799835?mt=12) is not required anymore. You just need the `DeveloperDiskImage.dmg` and `DeveloperDiskImage.dmg.signature` files for your iOS Version.\n\n## Features\n\n- [x] Spoof the iOS device location without a jailbreak or installing an app on the device.\n- [x] Spoof the iPhoneSimulator device location.\n- [x] Automatically try to download the DeveloperDiskImage files for your iOS Version.\n- [x] Set the device location with a long click on the map.\n- [x] Support custom and predefined (Walk/Cycle/Drive) movement speeds.\n- [x] Control the movement using the arrow keys.\n- [x] Navigate from the current location to a new location.\n- [x] Support network devices.\n- [x] Search for locations.\n- [x] Support dark mode.\n\n\u003e **Note**:    \n\u003e LocationSimulator will try to download the corresponding `DeveloperDiskImage.dmg` and `DeveloperDiskImage.dmg.signature` for your iOS Version from github, since 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:    \n\u003e \n\u003e```\n\u003e~/Library/Application Support/LocationSimulator/{YOUR_PLATFORM}/{MAJOR_YOUR_IOS_VERSION}.{MINOR_YOUR_IOS_VERSION}/\n\u003e```    \n\u003e `YOUR_PLATFORM` might be `iPhone OS` (iPhone and iPad), `Watch OS` (Apple Watch) or `Tv OS` (Apple TV). `MAJOR_YOUR_IOS_VERSION` might `14` and `MINOR_YOUR_IOS_VERSION` might be `3` for a device running iOS 14.3.\n\u003e\n\u003e As of v0.1.8 this folder moved to: \n\u003e```\n\u003e~/Library/Containers/com.schlaubi.LocationSimulator/Data/Library/Application Support/LocationSimulator/\n\u003e```\n\u003e As of v0.1.9 you can manage these files using the `DeveloperDisk` preferences tab.\n\n## Install\n\nDownload the latest [release](https://github.com/Schlaubischlump/LocationSimulator/releases) build from github to get the latest changes or\n\n1. Install [homebrew](https://brew.sh) by entering the following command in your terminal: \n\n\t```shell\n\t/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)\"\n\t```\n2. Install LocationSimulator with [homebrew](https://brew.sh) using:\n\n\t```shell\n\tbrew install locationsimulator\n\t```\n\n## Build\n\nSince this project has gotten quite big over time, I exported some of the code to other packages. The list below contains all additional projects I created to make this project possible. They should all be downloaded automatically by swift:   \n \n- [LocationSimulator-Localization](https://github.com/Schlaubischlump/LocationSimulator-Localization): The LocationSimulator localization files.    \n- [LocationSimulator-Help](https://github.com/Schlaubischlump/LocationSimulator-Help): The LocationSimulator helpbook you see when you click on `Help` -\u003e `LocationSimulator Help`.    \n- [LocationSpoofer](https://github.com/Schlaubischlump/LocationSpoofer): The backend code used to spoof the location of iOS or iPhoneSimulator devices.     \n- [XCF](https://github.com/Schlaubischlump/XCF): The low level frameworks used by LocationSpoofer.    \n- [CLogger](https://github.com/Schlaubischlump/CLogger): A C / Objective-C / Swift logging library used by LocationSpoofer and LocationSimulator.    \n- [SuggestionPopup](https://github.com/Schlaubischlump/SuggestionPopup): A simple Apple maps like popup list UI written for AppKit to search for locations.    \n- [Downloader](https://github.com/Schlaubischlump/Downloader): A simple swift library to download files from the internet more easily.    \n- [GPXParser](https://github.com/Schlaubischlump/GPXParser): A simple swift library to parse GPX files.\n\n### Requirements\n\n- macOS 10.15+\n- macOS 11.x+ SDK\n- swift 5.0+\n- swift-tools-version 5.2+\n- [jekyll](https://jekyllrb.com) (and a symlink of jekyll to `/usr/local/bin/jekyll`)\n\n### Build the app\n\n1. Install the latest [Xcode developer tools](https://developer.apple.com/xcode/downloads/) from Apple. (Using the AppStore is the easiest way)\n\n2. Clone this repository:    \n\n\t```shell\n\tgit clone --recurse-submodules https://github.com/Schlaubischlump/LocationSimulator\n\t```\n3. Open `LocationSimulator.xcodeproj` in Xcode.\n4. Let Xcode resolve all dependencies.\n5. Tap `Run` to build and execute the app.\n\n## Usage\n\n### Allow network devices (optional):\n\n\u003cdetails\u003e\n\t\u003csummary\u003e1. Make sure you can sync your device over Wi-Fi and access it inside the Finder.\u003c/summary\u003e    \n\n\u003e **Sync your content using Wi-Fi**\n\u003e\n\u003eAfter you set up syncing with the Finder using USB, you can set up the Finder to sync to your device with Wi-Fi instead of USB.\n\u003e\n\u003e1. Connect your device to your computer with a USB cable, then open a Finder window and select your device. \n\u003e\n\u003e2. Select “Show this [device] when on Wi-Fi.\" \n\u003e\n\u003e3. Click Apply.\n\u003e\n\u003eWhen the computer and the device are on the same Wi-Fi network, the device appears in the Finder. The device syncs automatically whenever it's plugged in to power.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\t\u003csummary\u003e2. Make sure that \"LocationSimulator\" -\u003e \"Preferences...\" -\u003e \"Network\" -\u003e \"Allow network devices\" is enabled\u003c/summary\u003e   \n\t\u003cimg src=\"Preview/network_settings.png\" width=\"200\"\u003e\n\u003c/details\u003e\n\n### Start spoofing:\n  1. Connect the iOS device to your computer via USB or Wi-Fi.\n  2. Select the device in the sidebar.\n  3. Long click the point you want to set as the current location on the map.\n\n### Moving:\n  - Click the walk button at bottom left corner of the map. Drag the blue triangle to change the direction of movement.    \n  \t\u003cimg src=\"Preview/walk.png\" height=\"60\"\u003e\n  - Long click the walk button to enabled auto move. Click again to disable auto move.    \n  \t\u003cimg src=\"Preview/automove.png\" height=\"60\"\u003e\n  - Long click on a new point on the map while you are spoofing the location to show the navigation prompt or select the menu item to set the coordinates manually.    \n    \u003cimg src=\"Preview/navprompt.png\" width=\"200\"\u003e\n  - 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.\n\n### Stop spoofing:\n  - Click the reset button.    \n    \u003cimg src=\"Preview/reset.png\" height=\"60px\"\u003e\n\n## License\n\nThe whole project is licensed under the [GNU General Public License version 3](LICENSE) unless specified otherwise in the specific subdirectories.\n\n## Contribute\nSince I maintain this project in my freetime, I always appreciate any help I get. Even if you are not a programmer and do not know anything about coding you can still help out. It would be great if more languages were available. If you know any other language and you are willing to invest some time to help with the translation let me know [here](https://github.com/Schlaubischlump/LocationSimulator/issues/65)! You can find the existing localization files [here](https://github.com/Schlaubischlump/LocationSimulator-Localization). I want this software to be as stable as possible, if you find any bug please report it by opening a new issue. If you are a programmer, feel free to contribute bug fixes or new features. It would be great if you run swift-lint on your code before submitting pull requests.\n\nWhile you are here, consider leaving a Github star. It keeps me motivated. \n\n## Donate\nDonations are always welcome! I will use the money to further develop the software in my free time and to fund the Apple Developer Membership to notarize the app. You can donate from inside the application or from the github page using the sponsor button. Choose `Help -\u003e Donate...` or `LocationSimualtor -\u003e Preferences -\u003e Info -\u003e Donate` to donate from inside the app. I'll add more donation options over time. Currently you can use PayPal or Ethereum. \n\n\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003e1. Target: Apple Developer License (recurring)\u003c/b\u003e\n\u003c/summary\u003e\u003c/br\u003e\n\tEach year every Apple Developer needs to pay a fee to Apple in order to sign his applications and to gain access to certain developer resoures. If your application is not signed, the user will see a lot of warnings about the program being malicious and the user might need to grant special permissions to start the app.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003e2. Target: Parallels Desktop 18\u003c/b\u003e\n\u003c/summary\u003e\u003c/br\u003e\n\tIn order to verify that LocationSimulator is working on older MacOS versions, I need to be able to run all of them. Since I only have a single MacBook, I use Parallels Desktop to run multiple older versions of MacOS simultaneously on a single Mac.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003e3. Target: Hopper Disassembler (\u003ci\u003eCurrent\u003c/i\u003e)\u003c/b\u003e\n\u003c/summary\u003e\u003c/br\u003e\n\tHopper is a disassembler for macOS and linux. You need to disassemble a program if the source code for the program is not open source, but you still want to figure out how the program is working. I often need a disassembler to reverse engineer Apples source code, e.g. if they change the API to interact with the iOS Simulator. Currently I'm using the free version of Hopper. That is, every 30 minutes I need to restart Hopper and have to reload everything. The commercial version does not have this limitation.\n\u003c/details\u003e\n\n## Enhancement ideas\nLook at the [`Projects`](https://github.com/Schlaubischlump/LocationSimulator/projects?type=classic) tab to see a list of planned features for the next releases. \n\n## Acknowledgement\nSpecial thanks to [@bailaowai](https://github.com/bailaowai) and his son for the Spanish and Chinese translation. [@Rithari](https://github.com/rithari) for the Italian translation, [@devmaximilian](https://github.com/devmaximilian) for his continuous contributions to the Swedish translation, [@Black-Dragon-Spirit](https://github.com/Black-Dragon-Spirit) for the dutch translation and [@Chuck3CZ](https://github.com/Chuck3CZ) for the czech translation. Special thanks goes to [@bslatyer](https://github.com/bslatyer) as well for his debugging support and his quick responses, when new issues arise !\n","funding_links":["https://www.paypal.com/donate/?hosted_button_id=9NR3CLRUG22SJ"],"categories":["Swift","🖥️ System \u0026 Windows (系统优化与工具)"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSchlaubischlump%2FLocationSimulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSchlaubischlump%2FLocationSimulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSchlaubischlump%2FLocationSimulator/lists"}