Looking for the latest iOS SDK version? Go to SDK download
0.1.12 — 2026-08-27
Logs now carry a level.Comparable, so you can filter with level >= .warn.
All 84 messages were classified — no zones on a floor is info, while calling things
out of order (missing session ID, no floor set) is error.
0.1.11 — 2026-08-27
Clearing zones now stops the judging engine too. Your app can set the SDK’s language.- An empty zone list reaches the engine. Empty lists were being filtered out internally, so clearing every zone in the console left the engine still holding the deleted ones. Removed rules kept firing where the zone no longer appeared on the map, and switching to a floor with no zones judged against the previous floor’s.
-
setLanguage(_:)— for apps that have their own language setting. - The “judging is off” warning now says which of the two it is. One line covered both “no zones injected” and “engine failed to start,” and they need completely different responses — the first means drawing a zone in the console, the second is a defect.
0.1.10 — 2026-08-27
Positioning resumes after being suspended. Once suspended, coordinates froze in place and never came back. NearbyInteraction does not resume on its own —sessionSuspensionEnded arriving is the signal to call run
again, and the SDK wasn’t doing it.
There was no error and the state still read “positioning,” so on screen only the dot
stopped moving. A suspension happens from something as small as the app going to the
background and back, which made it look intermittent.
0.1.9 — 2026-08-26
Devices that can’t position can still show floor plans and zones. The device gate sat in the first step ofinitialize, so on a phone without a UWB chip
no session was created at all. That closed buildings, floors, zones and locators,
leaving nothing to draw. Not being able to position and not being able to show a map
are different problems that had been tied together.
initialize as “this device can position,” ask
OneS1ght.deviceAvailability instead, or catch the throw from begin().
This release also fixed live change events never arriving. SSE frames end with a
blank line, and the API used for reading didn’t return those blank lines, so no frame was
ever completed. The resync sent right after connecting bypasses the parser, so the
connection looked fine and the first refresh worked — the only symptom was “I have to
hit refresh.”
Fetching the floor list also downloaded each floor’s full plan (888KB per floor); fixed.
0.1.8 — 2026-08-25
Live updates connect before positioning starts.onConfigChanged was wired only for the positioning session, so while you were just
looking at a floor plan, console changes never reached the app. It now connects as soon
as a floor is set, and stays connected when positioning stops.
0.1.7 — 2026-08-24
Fixed: picking a building showed no floors. The GeoSpace building tree sends floor IDs as numbers ("floorId": 14) while the
decoder declared them as strings, so the whole JSON decode failed. The caller swallowed
the error, so the only symptom was an empty floor list.
0.1.6 — 2026-08-21
No code changes. Fixed an integration sample that didn’t compile. The right side of?? is an autoclosure and can’t hold try/await.