> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ones1ght.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Release Note - iOS

> Release Note - OneS1ght for iOS

<Info>
  iOS SDK 최신 버전을 찾으신다면 [SDK 다운로드](https://github.com/onecheck-inc/OneS1ght-iOS-SDK)를 눌러주세요<br />
</Info>

## 0.1.12 — 2026-08-27

**로그에 등급이 생겼습니다.**

<Warning>
  **깨는 변경** — `onDebugLog` 와 `onLog` 의 클로저 인자가 둘로 늘었습니다.
  [마이그레이션 가이드](/sdk/integration/ios/migration-guide)를 참고하세요.
</Warning>

```swift theme={null}
OneS1ght.onDebugLog = { level, line in ... }   // 전: { line in ... }
```

예전에는 글자만 전달돼서, 받는 쪽이 **맨 앞 이모지를 보고 등급을 짐작**해야 했습니다.
문구가 바뀌면 조용히 오분류됐고, 실제로 "이 층에 구역이 없다"는 정상 상태가 오류로
표시되고 있었습니다.

```swift theme={null}
public enum LogLevel { case log, info, warn, error }   // log < info < warn < error
```

`Comparable` 이라 `level >= .warn` 처럼 걸러낼 수 있습니다.
84개 문구의 등급을 전수로 정했습니다 — 구역이 없는 층은 `info`, 호출 순서를 틀린 것
(세션 ID 미주입·층 미지정)은 `error` 입니다.

<hr />

## 0.1.11 — 2026-08-27

**구역을 지우면 판정도 함께 멈춥니다.** SDK 문구의 언어를 앱이 지정할 수 있습니다.

* **빈 구역 목록이 판정 엔진까지 전달됩니다.** 내부에서 빈 목록을 걸러내는 바람에,
  콘솔에서 구역을 전부 지워도 엔진이 지운 구역을 계속 물고 있었습니다. 지도에서
  사라진 자리에서 없어진 시책이 계속 발화했고, 층을 갈아탔을 때 새 층에 구역이 없으면
  옛 층 구역으로 판정했습니다.

* **`setLanguage(_:)`** — 앱이 자체 언어 설정을 가지고 있을 때 씁니다.

  ```swift theme={null}
  OneS1ght.setLanguage("en")   // SDK 로그·안내도 영어로
  OneS1ght.setLanguage(nil)    // 기기 언어를 따름 (기본값)
  ```

  안 부르면 예전 그대로 기기 언어를 씁니다.

* 판정 미가동 경고가 원인을 말합니다. "존 미주입 또는 start 실패" 한 줄이라 어느 쪽인지
  알 수 없었는데, 둘은 할 일이 완전히 다릅니다 — 앞은 콘솔에서 구역을 그리면 되고,
  뒤는 엔진 문제입니다.

<hr />

## 0.1.10 — 2026-08-27

**중단됐다 돌아온 측위가 다시 시작됩니다.**

한 번 중단되면 좌표가 그 자리에서 멈춘 채 돌아오지 않았습니다. NearbyInteraction 은
중단이 풀렸다고 알아서 다시 재지 않습니다 — `sessionSuspensionEnded` 가 오는 것 자체가
"이제 다시 `run` 해도 된다"는 신호이고, 재실행은 SDK 몫인데 그것을 빠뜨렸습니다.

오류도 없고 상태는 "측위 중" 이라, 화면상으로는 **점만 안 움직였습니다.**
중단은 앱이 잠깐 백그라운드로 갔다 오는 것만으로도 일어나므로, 증상이 간헐적으로
보였습니다.

<hr />

## 0.1.9 — 2026-08-26

**측위 불가 기기에서도 도면과 존을 볼 수 있습니다.**

<Warning>
  **깨는 변경** — `initialize` 가 더 이상 기기 미지원으로 실패하지 않습니다.
</Warning>

기기 게이트가 `initialize` 첫 단계에 있어서, UWB 칩이 없으면 세션이 아예 만들어지지
않았습니다. 그러면 `buildings`·`floors`·`zones`·`locators` 가 전부 막혀 **화면에 그릴 것이
하나도 남지 않았습니다.** 측위 불가와 지도 표시 불가는 다른 문제인데 하나로 묶여
있었습니다.

```
initialize  →  키 검증 + 테넌트 설정 수신      (기기 안 봄)
begin()     →  측위 시작                      ← 여기서 deviceNotSupported
```

`initialize` 의 성공을 "이 기기에서 측위 가능" 으로 읽고 있었다면
`OneS1ght.deviceAvailability` 로 묻거나 `begin()` 의 throw 를 받으세요.

또한 **실시간 변경 이벤트가 하나도 도착하지 않던 것**을 고쳤습니다. SSE 는 빈 줄로
프레임이 끝나는데 읽기에 쓰던 API 가 그 빈 줄을 돌려주지 않아, 프레임이 하나도 완성되지
않았습니다. 연결 직후의 재동기화는 파서를 거치지 않아 **연결도 되고 첫 갱신도 정상으로
보였고**, 증상은 "새로고침을 눌러야 갱신된다" 뿐이었습니다.

층 목록을 부를 때 층마다 도면을 통째로 받던 것(한 층당 888KB)도 함께 고쳤습니다.

<hr />

## 0.1.8 — 2026-08-25

**실시간 수신이 측위를 시작하기 전에도 붙습니다.**

`onConfigChanged` 가 측위 세션 구간에만 연결돼 있어서, 층을 골라 도면만 보는 동안에는
콘솔에서 무엇을 바꿔도 앱이 알지 못했습니다. 이제 **층을 지정하면 그 시점부터** 연결되고,
측위를 껐다고 끊지 않습니다.

<hr />

## 0.1.7 — 2026-08-24

**빌딩을 골라도 층이 뜨지 않던 것을 고쳤습니다.**

GeoSpace 건물 트리는 층 ID 를 **숫자**로 보내는데(`"floorId": 14`) 디코더가 문자열로
선언돼 있어 JSON 디코딩이 통째로 실패했습니다. 호출부가 오류를 삼켜 증상은 "층 목록이
비어 있다" 뿐이었습니다. 이제 숫자로 오든 문자열로 오든 받습니다.

<hr />

## 0.1.6 — 2026-08-21

코드 변경 없음. **연동 예제가 컴파일되지 않던 것을 고쳤습니다.**

`??` 오른쪽은 autoclosure 라 `try`/`await` 를 담을 수 없습니다.

```swift theme={null}
let profileId: String
if let saved = savedProfileId {
    profileId = saved
} else {
    profileId = try await OneS1ght.createProfile(["gender": "F", "ageBand": "20s"])
}
OneS1ght.identify(profileId: profileId)
```

<hr />

## 0.1.5 — 2026-08-21

코드 변경 없음. **저장소 주소가 바뀌었습니다.**

```
onecheck-inc/onesight-mobile-swift  →  onecheck-inc/OneS1ght-iOS-SDK
```

```swift theme={null}
.package(url: "https://github.com/onecheck-inc/OneS1ght-iOS-SDK", from: "0.1.0"),
.product(name: "OneS1ght", package: "OneS1ght-iOS-SDK"),
```

<Warning>
  **`package:` 식별자도 함께 바꿔야 합니다.** SPM 은 패키지 식별자를 저장소 이름에서
  뽑으므로, URL 만 고치면 `unknown package 'onesight-mobile-swift'` 로 빌드가 깨집니다.
  Xcode 프로젝트라면 패키지 의존성을 지웠다가 새 주소로 다시 추가하세요.
</Warning>

<hr />

## 0.1.4 이하 — 2026-08-20 \~ 08-21

초기 배포와 그 직후의 수정입니다. 전체 내역은
[CHANGELOG](https://github.com/onecheck-inc/OneS1ght-iOS-SDK/blob/main/CHANGELOG.md)를
참고하세요.

<Warning>
  `0.1.3` 이하는 현재 운영 서버와 초기화가 실패합니다. `0.1.12` 이상을 쓰세요.
</Warning>
