Known limitations
01 Sept 2026 · Field Track 360
- getCurrentLocation({ feedIngestor: true }) is iOS-only and rejects on Android.
- getCurrentLocation failures all report fixTimeout on iOS. Timeout, missing authorization and a concurrent call share one code; only message distinguishes them. Do not treat it as "retry later".
- Geofence dwell is iOS-only. geofenceAdded and geofenceRemoved are Android-only. Setting dwellAfterMs or notifyOnEntry/Exit false on Android is refused with invalidConfig.
- Geofence crossings delivered to a relaunched process never reach a live JS subscriber - read them from TrackIt.geofences.getEvents().
- A JS-implemented road-snap provider is not supported. OSRM is configurable via setOsrmSnapProvider.
- The two sync network gates are not unified: iOS requiresNetworkConnectivity and Android requiresUnmeteredNetwork are different policies.
- Android needs a Google Maps API key and JitPack credentials in the host settings.gradle.
- Android release builds need a licence token that does not exist yet.
Expo
An Expo prebuild host cannot do the manual steps above, because android/ and ios/ are generated and overwritten. A config plugin is the only path that survives a prebuild, and it ships in a later release. Until then use the bare CLI path, or an Expo development build once the plugin is published.