Thank you for helping improve GeoShift. Bug reports, documentation fixes, compatibility results, translations, and focused code contributions are welcome.
- Read the troubleshooting guide.
- Search existing issues.
- Reproduce with the latest
mainbranch when practical. - Redact device UDIDs, IP addresses, usernames, local paths, and pairing data.
Use GitHub Security Advisories, not a public issue, for security or privacy bugs.
brew install uv
uv tool install --python 3.13 'pymobiledevice3==9.31.0'
swift test
PYTHONDONTWRITEBYTECODE=1 uv run --with 'pymobiledevice3==9.31.0' \
python -m unittest discover -s Tests/Python -vSee Installation for the complete setup.
- Keep changes focused and explain the user-visible behavior.
- Add or update tests for safety-critical worker and state transitions.
- Keep English and Russian UI resources synchronized.
- Do not commit generated
.appbundles,.build, logs, runtime JSON, pairing records, credentials, or device identifiers. - Run
swift test, the Python test suite, andgit diff --checkbefore opening a pull request.
GeoShift controls a persistent device-side location simulation. Changes to start, stop, reconnect, process termination, or target-device selection must fail safe toward a durable Restore GPS request.