Giter Site home page Giter Site logo

simvirtuallocation's Introduction

SimVirtualLocation

Easy to use MacOS 11+ application for easy mocking iOS device and simulator location in realtime. Built on top of set-simulator-location for iOS Simulators and pymobiledevice3. Android support is realized with SimVirtualLocation android app which is fork from android-mock-location-for-development.

Posibilities:

  • supports both iOS and Android
  • set location to current Mac's location
  • set location to point on map
  • make route between two points and simulate moving with desired speed

You can dowload compiled and signed app here.

App Screen Shot

FAQ


How to run

If you see an alert with warning that app is corrupted and Apple can not check the developer: try to press and hold ctrl, then click on SimVirtualLocation.app and select "Open", release ctrl. Now alert should have the "Open" button. Don't forget to copy app from dmg image to any place on your Mac.

For iOS devices

python3 and pymobiledevice3 are should be installed

brew install python3 && python3 -m pip install -U pymobiledevice3

For iOS Device - select device from dropdown and then click on Mound Developer Image. If you see an error that there is no appropriate image - download one from https://github.com/mspvirajpatel/Xcode_Developer_Disk_Images/releases if your iOS for example 16.5.1 and there is only 16.5 - it's ok, just copy and rename it to 16.5.1 and put it inside Xcode at .../Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/

For iOS 17+ select ckeckbox iOS 17+ and provide RSD Address and RSD Port from command:

sudo python3 -m pymobiledevice3 remote start-tunnel

It needs sudo, because it will instantiate low level connection between Mac and iPhone. Keep this command running while mocking location for iOS 17+.

If iOS device is unlisted

Try to refresh list and if it does not help - go to Settings / Developer on iPhone and click Clear trusted computers. Replug cable and press refresh. If it still not in list - go to Xcode / Devices and simulators and check your device, there are should not be any yellow messages. If it has - make all that it requires.


For Android

  1. Check if debugging over USB is enabled
  2. Specify ADB path (for example /User/dev/android/tools/adb)
  3. Specify your device id (type adb devices in the terminal to see id)
  4. Setup helper app by clicking Install Helper App and open it on the phone
  5. Grant permission to mock location - go to Developer settings and find Application for mocking locations or something similar and choose SimVirtualLocation
  6. Keep SimVirtualLocation running in background while mocking

Contributors

styresdc
nexron171
Sergey Shirnin
sk-chanch
Skipp
styresdc
styresdc

simvirtuallocation's People

Contributors

nexron171 avatar sk-chanch avatar styresdc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

simvirtuallocation's Issues

Short distance mocking only

Hey! First of all, thank you for this amazing tool! It works well with my iOS 17.2. But, simulation works only for shorter distances. If I set a distance longer than 6-7 blocks it stops mocking on the phone while the app on the mac still looks like it is proceeding. Also, after a couple of attempts I receive an error as shown in the screenshot that I'm attaching. Thank you again!
Screenshot 2023-12-24 at 3 43 19 PM

Add the İOS device

Hi. i downloaded the app and opened it on my mac what do i need to write in rsd address&port section? And how do I connect my ios device? And gives an error as I posted in the attachment.
Uploading Ekran Resmi 2024-03-27 18.07.18.png…

Error: No such command 'developer'.

Hello. i tried python3 -m venv .venv && source .venv/bin/activate && sudo python3 -m pymobiledevice3 remote start-tunnel for this reason to connect my iOS 17.4.1 device.
Then i put RSD address/port. But error exists after i clicked 'Set A'(set location)
rds

The file “pymobiledevice3” doesn’t exist.

Hi!
I'll be appreciated if you help find out a decision.
When I run the app I see error "The file “pymobiledevice3” doesn’t exist.". But if run "python -m pymobiledevice3 -h" I see

Usage: python -m pymobiledevice3 [OPTIONS] COMMAND [ARGS]...

Options:
  -h, --help  Show this message and exit.

Commands:
  activation       activation options
  afc              FileSystem utils
  amfi             amfi options
  apps             application options
  backup2          backup utils
  bonjour          bonjour options
  companion        companion options
  crash            crash report options
  developer        developer options.
  diagnostics      diagnostics options
  lockdown         lockdown options
  mounter          mounter options
  notification     notification options
  pcap             sniff device traffic
  power-assertion  Create a power assertion (wraps...
  processes        processes cli
  profile          profile options
  provision        privision options
  remote           remote options
  restore          restore options
  springboard      springboard options
  syslog           syslog options
  usbmux           usbmuxd options
  webinspector     webinspector options

I put alias of pymobiledevice3 to:

/opt/homebrew/bin/pymobiledevice3
/usr/local/bin/pymobiledevice3

FATAL EXCEPTION: main

It's not working on android 13.

E/AndroidRuntime(21263): FATAL EXCEPTION: main
E/AndroidRuntime(21263): Process: com.devnex.simvirtuallocation, PID: 21263
E/AndroidRuntime(21263): java.lang.RuntimeException: Error receiving broadcast Intent { act=send.mock flg=0x400010 (has extras) } in com.devnex.simvirtuallocation.AdbBroadcastReceiver@369fe1
E/AndroidRuntime(21263): 	at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$android-app-LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1928)
E/AndroidRuntime(21263): 	at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(Unknown Source:2)
E/AndroidRuntime(21263): 	at android.os.Handler.handleCallback(Handler.java:942)
E/AndroidRuntime(21263): 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(21263): 	at android.os.Looper.loopOnce(Looper.java:226)
E/AndroidRuntime(21263): 	at android.os.Looper.loop(Looper.java:313)
E/AndroidRuntime(21263): 	at android.app.ActivityThread.main(ActivityThread.java:8757)
E/AndroidRuntime(21263): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(21263): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
E/AndroidRuntime(21263): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
E/AndroidRuntime(21263): Caused by: java.lang.IllegalArgumentException: gps provider is not a test provider
E/AndroidRuntime(21263): 	at android.os.Parcel.createExceptionOrNull(Parcel.java:3027)
E/AndroidRuntime(21263): 	at android.os.Parcel.createException(Parcel.java:3007)
E/AndroidRuntime(21263): 	at android.os.Parcel.readException(Parcel.java:2990)
E/AndroidRuntime(21263): 	at android.os.Parcel.readException(Parcel.java:2932)
E/AndroidRuntime(21263): 	at android.location.ILocationManager$Stub$Proxy.setTestProviderLocation(ILocationManager.java:2239)
E/AndroidRuntime(21263): 	at android.location.LocationManager.setTestProviderLocation(LocationManager.java:2144)
E/AndroidRuntime(21263): 	at com.devnex.simvirtuallocation.MockLocationProvider.pushLocation(MockLocationProvider.java:45)
E/AndroidRuntime(21263): 	at com.devnex.simvirtuallocation.AdbBroadcastReceiver.onReceive(AdbBroadcastReceiver.java:49)
E/AndroidRuntime(21263): 	at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$android-app-LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1918)
E/AndroidRuntime(21263): 	... 9 more
E/AndroidRuntime(21263): Caused by: android.os.RemoteException: Remote stack trace:
E/AndroidRuntime(21263): 	at com.android.server.location.provider.LocationProviderManager.setMockProviderLocation(LocationProviderManager.java:1724)
E/AndroidRuntime(21263): 	at com.android.server.location.LocationManagerService.setTestProviderLocation(LocationManagerService.java:1858)
E/AndroidRuntime(21263): 	at android.location.ILocationManager$Stub.onTransact(ILocationManager.java:1181)
E/AndroidRuntime(21263): 	at android.os.Binder.execTransactInternal(Binder.java:1316)
E/AndroidRuntime(21263): 	at android.os.Binder.execTransact(Binder.java:1280)

The file 'pymobiledevice3' doesnt exist

Hi! I have downloaded pymobiledevice 3 and successfully installed the module but in the app I see the error that the file does not exist. What am I missing? And what are the steps to use the location changer (: thanks!

Screenshot 2024-01-10 at 10 30 25 AM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.