0.2.4
- The positioning engine now runs only while the app is on screen — calling
begin()in the background starts the engine when the app comes to the foreground - The engine now stops when the app goes to the background or terminates, and the leftover floor-detection beacon region is cleared
- Fixed opening the app after a background start ending immediately with
E3007 - Fixed zones disappearing from the map on floors with a floor plan after the live connection reconnects
0.2.3
- No SDK code or behavior changes (docs and code snippets only)
- MCP code snippets now reflect the ‘Always’ location permission on iOS 27.2 and later
- MCP code snippets now install with
from: "0.2.2"
0.2.2
- Floor detection now uses multiple locators (switching to a new floor requires 3 or more)
- The first floor is now confirmed after observing for 1 second
- The engine now reopens the UWB session by itself when it drops
- Added the Always location permission section to the setup guide (required on iOS 27.2 and later)
0.2.1
- Added
SdkError.floorNotSet— exhaustiveswitchstatements need a new case - Calling
setFloorMap(floor)without a building now raisesfloorNotSet(E3001) - Positioning key problems are now reported as
E1007instead ofE1002 - Devices without Bluetooth are now reported as
E2002instead ofE2003 - Zone exit (EXIT) is now sent and
onZoneExitcalled when the app goes to the background - Fixed the same zone entry being sent twice after returning from the background
- Fixed duplicate entry events when the engine restarts because of a zone change
0.2.0
- Internal types (
ApiClient,Req…,Res…,SdkDefaults, etc.) are no longer public - Removed
MockPositioningProvider— adoptPositioningProviderdirectly permissions()→requestPermission()(shows the system prompt)putProfile(_:_:)→replaceProfile(_:attributes:)(missing attributes are deleted)getProfile(_:)→fetchProfile(_:)floor(_:_:)→floor(buildingId:floorId:)send()→uploadPendingPositions(),empty()→discardPendingPositions()- For the full list, see the CHANGELOG 0.2.0 (Korean; old names only warn)
- Added
FloorSession.onFloorDetected,onStoppedandStopReason - If the engine stops, it retries after 3, 10 and 30 seconds, then ends the session (
.engineFailed) - Pause now persists across a trip to the background
onDebugLogcode lines now have finer levels and are merged into one lineE3001(floor not set) is no longer reported to the console- Fixed a crash when
empty()was called during a coordinate upload - Fixed zone callbacks and pause being ignored with
begin(provider:) - Fixed runaway coordinate and log uploads while offline
- Fixed
begin()failing withE1004whenidentifywas called beforeinitialize - Fixed
baseURLnot being applied to building, floor and zone lookups
0.1.24
- Fixed positioning not coming back when started with Bluetooth off
- Added
E2004(Bluetooth off) — previously reported asE2003
0.1.23
- Fixed
begin()being silently ignored right afterend() - Added a warning log when
begin()is skipped because positioning is already running
0.1.22
- Fixed zone enter/exit notifications firing during
pause() - Fixed the session turning back off when started while the engine was stopping
0.1.21
- Fixed zones newly drawn in the console at runtime not being detected
- Coordinates pause for about 1.5 seconds while the engine restarts after a zone change
0.1.20
- Added
FloorSession.pause(),resume()andisPaused
0.1.19
- Log level for states that keep working, such as
E2001andE2002, changed to WARN - Reworded
E3001(starting without a floor is a normal path)
0.1.18
- Removed the
geoSdkKeyargument frominitialize - Removed the
geoPartnerKeyandgeoBaseUrlaccessors - The positioning key now comes only from the console —
E1007if missing E1005andE1006no longer occur
0.1.17
- Minimum iOS 15 → 18; Xcode 27 (iOS 27 SDK) required
- Positioning works only on iOS 27 and later —
osVersionTooLowbelow that NSBluetoothAlwaysUsageDescriptionmust be added toInfo.plistNSLocationTemporaryUsageDescriptionDictionary(keyPositioning) must be added- The engine now finds the floor even if the app does not set one
- Positioning and map keys now come from the console
- The SDK now requests location permission itself
- Added new codes such as
E1007,E3007,E3008,E3009andE4004 - Zone detection moved to the engine; console zone detection values (
inDist, etc.) are no longer used
0.1.16
- Floor plan and zones are now shown even if the locator lookup fails
- Added
E3006 locatorsFetchFailed
0.1.15
E3005 planMissingchanged toI3002 planMissing(INFO)
0.1.14
- Positioning now works on floors without a floor plan
- Added
Locator.isPlaced - Without a floor plan,
Floorsize and origin are 0 — checkhasPlan
0.1.13
- Fixed the debug log example in the
0.1.12tag not compiling
0.1.12
onDebugLogandonLogclosure arguments changed to{ level, line in }- Added
LogLevel(Comparable)
0.1.11
- Fixed detection continuing after all zones were deleted
- Added
setLanguage(_:)
0.1.10
- Fixed positioning not restarting after an interruption
0.1.9
initializeno longer fails on unsupported devices — checked inbegin()instead- Fixed live change events not arriving
- Fixed the floor list lookup downloading whole floor plans
0.1.8
- Live change events (
onConfigChanged) are now connected before positioning starts
0.1.7
- Fixed an empty floor list when floor IDs arrived as numbers
0.1.6
- Fixed the integration example not compiling (no code changes)
0.1.5
- Repository moved to
onecheck-inc/OneS1ght-iOS-SDK - The
package:identifier must also be changed toOneS1ght-iOS-SDK
0.1.4
- Initial releases up to 0.1.4 — see the CHANGELOG
0.1.3and below fail to initialize against the production server — use0.1.12or later