Privacy Policy

GeoCourier

Last updated: 2026-10-23

Overview

GeoCourier is a tool that sends your device's location to servers you set up yourself. The app requires no account, and the developer does not actively collect your location: location data goes only to the servers you set up. Apart from website pages you open from About, the only connection the app makes to the developer's website is the update check at launch (see Update check below). It also uses third-party services such as Google; see Maps, Usage statistics, and Third-party services below.

Location

After you tap "Start Tracking", the app continuously obtains your device's location in the foreground and background, and selects the points to send based on the capture rules you set (every few seconds, or after moving a certain number of meters). After you tap "Stop Tracking", it stops obtaining your location.

What is sent

For each captured point, the app sends the location: latitude and longitude, accuracy, altitude, speed, direction of movement, time of the fix, and whether the location is simulated. Android also sends the number of satellites used and in view; iPhone also sends whether the location comes from an external GPS.

Device status sent along with it: a random identifier generated when the app is installed (not a hardware serial number or an advertising identifier), OS and app version, time zone, locale, phone manufacturer and model, whether it is a simulator or emulator, location permission settings, battery level and charging state, power saving mode, device thermal state, network type (Wi-Fi or cellular, cellular generation, and whether it is metered), and the current capture rules. Android also sends whether battery optimization is turned off, the power source, and battery temperature and voltage; iPhone also sends whether Low Data Mode is on.

Never collected or sent: IMEI, serial number, advertising identifier, Wi-Fi network name, carrier, or contacts. A photo is read only when you pick one to scan a QR code, and it is never sent (see "Camera" below).

"Send Test" on the server settings screen also sends one payload in the same format, using the device's last known location.

Where your data goes

Data is sent only to the servers you set up and enable in the app, together with the headers you configure for them and the standard device information the system adds automatically (the User-Agent; see "Update check" below). How those servers store and use the data is the responsibility of their operators. Please check their privacy policies.

When no server is enabled, your location is not sent and stays on your device.

Data stored on your device

Route records: the points captured during each tracking session are saved as a record. Records are stored only on this phone. They are not uploaded and are not included in iCloud or Google backups. You can delete any record in Records. Deleting the app deletes all records.

Export: a record is handed to another app as GPX, CSV, or JSONL (raw data) only when you tap Export and choose where to share it.

Server settings: URLs, headers (which may contain tokens), and notes are stored on your device without encryption.

Backups: server settings (including any tokens in headers) and capture settings are included in iCloud or Google backups, so you don't need to set them up again after restoring to a new phone. The device identifier generated at install and the point sequence number are not backed up and are generated again after a restore.

Maps

"View on Map" and route maps use the system map service: Apple Maps on iPhone and Google Maps on Android. When a map is shown, the app downloads map data for the area you are viewing from these services, and Apple's or Google's privacy policy applies. Thumbnails in the record list only draw the route's shape and do not load a map.

Lock Screen and notifications

While tracking, iPhone (iOS 16.2 or later) shows "Tracking", elapsed time, point count, distance, and send results on the Dynamic Island and Lock Screen. Android shows the same information in an ongoing notification. This information is shown only on your device, and you can turn off Live Activities for iPhone under Capture Mode in the app or in Settings.

Update check

Each time the app starts from a fully closed state (not when returning to the foreground), it reads a version check file from the developer's website (tracker.iwi.tw) to see whether the current version needs an update. This request contains no location, identifier, or settings, but its URL includes the platform (iOS or Android) and the app's major and minor version (for example, 1_0), and the system automatically adds standard device information (the User-Agent): on iPhone, the app name, build number, and OS version; on Android, the OS version, phone model, and system build ID. As with visiting any website, the website and the CDNs it uses (Amazon CloudFront and Cloudflare) also receive your IP address. If there is no network or the check fails, the app works as usual.

Usage statistics

The app uses Google Analytics for Firebase to collect usage statistics, such as how often it is installed and opened, how long it is used, the phone model, system and app versions, and language. We use them only to understand how the app is used and to improve it. The statistics do not include your location data (coordinates or route records), your server settings, or headers.

Google Analytics creates a random identifier when the app is installed. It is different from the device ID sent to your servers, and the app does not collect advertising identifiers. As with any online service, Google receives your IP address and uses it to estimate your general region. For how Google handles this data, see Google's privacy policy.

Statistics linked to that identifier are kept for 14 months and then deleted automatically (aggregated figures contain no identifier). The app has no switch to turn statistics off: deleting the app stops them, and reinstalling creates a new identifier that is not linked to the old data. The statistics are not linked to your identity, so the developer cannot find your data by name or email. To request deletion or ask any questions, email us (see Contact below).

Camera

The camera is used only to scan QR codes for setting up servers. It does not take photos and does not store or upload images. QR codes are recognized on the phone, and images never leave it. You can also choose a picture of a QR code from your photos. The app reads only the one you pick and does not need access to your photo library.

Third-party services

The app does not use any advertising or crash reporting services; for usage statistics, see above. The Android version gets location directly from the phone's GPS, so tracking does not go through Google Play services.

The Android version scans QR codes with Google ML Kit. Recognition happens on the phone, and images are not sent anywhere. According to Google, ML Kit collects device information (manufacturer, model, OS version), the app's package name and version, recognition performance metrics, and a per-installation identifier that is not intended to identify you. This is sent to Google over HTTPS for diagnostics and usage analytics and is not shared with other third parties. The items Google lists do not include your location, server settings, or the contents of QR codes. The iPhone version uses the system's built-in camera features and sends nothing of this kind.

Your choices

At any time, you can stop tracking, disable or delete servers, or delete records in the app, or turn off location access in system settings.

Children

GeoCourier is not designed for children, and we do not knowingly collect data from children.

Changes to this policy

When this policy is updated, we will revise this page and the date shown above.

Contact

For questions or feedback, email [email protected]