tracelet_ios 0.8.0 copy "tracelet_ios: ^0.8.0" to clipboard
tracelet_ios: ^0.8.0 copied to clipboard

PlatformiOS

iOS implementation of the Tracelet background geolocation plugin.

0.8.0 #

  • FEAT: OEM compatibility stubs — getSettingsHealth returns isAggressiveOem: false (iOS has no OEM power management issues), openOemSettings returns false.
  • DOCS: Update README with OEM compatibility note and documentation link.
  • CHORE: Bump tracelet_platform_interface to ^0.8.0.

0.7.1 #

  • DOCS: Add mock location detection feature to README with platform-specific detection details.
  • CHORE: Bump tracelet_platform_interface to ^0.7.1.

0.7.0 #

  • FEAT: Mock location detection — isLocationMock() uses CLLocationSourceInformation (iOS 15+) to detect simulated locations.
  • FEAT: Heuristic mock detection (level 2) — timestamp drift check (> 10s between location timestamp and system time = suspicious).
  • FEAT: buildLocationMap() includes mock flag and mockHeuristics metadata map (timestampDriftMs, platformFlagMock).
  • FEAT: Native-level mock rejection — when rejectMockLocations is enabled, drops mocked locations before sending to Dart and fires ProviderChangeEvent.mockLocationsDetected.
  • FEAT: ConfigManager.getMockDetectionLevel() and getRejectMockLocations() getters.
  • CHORE: Bump tracelet_platform_interface to ^0.7.0.

0.6.1 #

  • REFACTOR: Remove 6 dead ConfigManager methods for filtering migrated to Dart in 0.6.0 (getDisableElasticity, getElasticityMultiplier, getFilterPolicy, getMaxImpliedSpeed, getTrackingAccuracyThreshold, getUseKalmanFilter).
  • REFACTOR: Remove dead EventDispatcher.sendTrip() and "trip" channel registration — trip events now from Dart TripManager.
  • CHORE: Bump tracelet_platform_interface to ^0.6.1.

0.6.0 #

  • REFACTOR: Remove duplicate location filtering from LocationEngine.didUpdateLocations() — elasticity, distance filter, accuracy filter, and speed filter now handled by shared Dart LocationProcessor.
  • REFACTOR: Replace GeofenceManager.evaluateHighAccuracyProximity() with no-op stub — proximity evaluation moved to shared Dart GeofenceEvaluator.
  • CHORE: Bump tracelet_platform_interface to ^0.6.0.

0.5.5 #

  • FIX: onSchedule event now sends full state map (via stateManager.toMap()) instead of partial ["state": "on", "enabled": true] — fixes State.fromMap() crash on schedule events.

0.5.4 #

  • FIX: Heartbeat event now wraps location data in {"location": ...} to match HeartbeatEvent.fromMap() — fixes heartbeat always returning zero coordinates.
  • FIX: Heartbeat falls back to last known location (via buildLocationMap()) when getCurrentPosition returns null.

0.5.3 #

  • CHORE: Bump tracelet_platform_interface to ^0.5.3.

0.5.2 #

  • FEAT: Accelerometer-only motion detection mode — when disableMotionActivityUpdates is true, uses CMMotionManager raw accelerometer for permission-free stationary↔moving detection (no NSMotionUsageDescription required).
  • FEAT: getMotionAuthorizationStatus() / requestMotionPermission() return 3 (granted) immediately in accelerometer-only mode — no OS dialog shown.
  • PERF: Reuse shared CMMotionManager instance for sensor queries instead of creating throwaway instances.
  • FIX: Auto-fallback to accelerometer-only when CMMotionActivityManager.isActivityAvailable() returns false.

0.5.1 #

  • DOCS: Rewrite README with proper description, setup guide link, and related packages table.

0.5.0 #

  • CHORE: Bump tracelet_platform_interface to ^0.5.0.
  • CHORE: Bump version to 0.5.0.

0.4.0 #

  • FEAT: getMotionPermissionStatus() / requestMotionPermission() — CMMotionActivityManager authorization check.
  • FIX: Speed always zero in motionchange events — track lastEffectiveSpeed in LocationEngine.
  • FIX: "Upgrade to Always" dialog not appearing — fix handleStart isMoving initialization.
  • FIX: MotionDetector motion state bugs — proper accelerometer + activity recognition lifecycle.
  • CHORE: Bump tracelet_platform_interface to ^0.4.0.

0.3.0 #

  • FEAT: One-shot location via getCurrentPosition() with persist, samples, maximumAge, and extras parameters.
  • FEAT: Multi-sample collection with distanceFilter = kCLDistanceFilterNone and DispatchQueue timeout guard.
  • FEAT: getLastKnownLocation() — prefers own cached location, falls back to CLLocationManager.location.
  • FEAT: ForegroundServiceConfig.enabled support.
  • FIX: Add CLAuthorizationStatus guard in getCurrentPosition() — returns nil if not authorized instead of hanging.
  • FIX: Single-sample path now sets desiredAccuracy = kCLLocationAccuracyBest before requestLocation().
  • BREAKING: Requires tracelet_platform_interface: ^0.3.0.

0.2.4 #

  • Fix LICENSE file format for proper SPDX detection on pub.dev.

0.2.3 #

  • Fix ConfigManager.setConfig() — flatten nested section sub-maps (geo, app, http, etc.) sent by Dart before processing. Fixes all user config values being silently ignored in favor of defaults.

0.2.2 #

  • Fix duplicate keys in ConfigManager.defaultConfig() dictionary literal causing runtime crash.

0.2.1 #

  • Version bump for coordinated release.

0.2.0 #

  • Add Swift Package Manager support.
  • Fix podspec homepage URL.
  • Fix podspec source_files and resource_bundles paths for SPM layout.
  • Add SPDX license: Apache-2.0 identifier for pub.dev scoring.

0.1.0 #

  • Initial release.
  • CLLocationManager-based location tracking.
  • CoreMotion activity recognition.
  • SQLite3 persistence.
  • HTTP auto-sync with URLSession.
  • CLCircularRegion geofencing.
  • Headless FlutterEngine execution.
  • BGTaskScheduler integration.
  • Significant-change monitoring support.