Skip to main content
このドキュメントは v0.1.13 基準です。稼働中のバージョンは OneS1ght.sdkVersion で確認できます。
OneS1ght はアプリ全体で 1 つだけの静的エントリーポイントです — インスタンスは作らず、すべての API を型から 直接呼び出します。すべての API は メインアクター(@MainActor) で呼び出します。

ライフサイクル

initialize のパラメーター: デフォルトの baseURLhttps://console.ones1ght.com/api/sdk/v1 です。
initialize は建物・フロアを取得しません。 空間の設定は setFloorMap の役割です — 省略すると測位パイプラインは動きますが座標が出ません(E3001)。

測位セッション — FloorSession

コールバック

セッションのコールバックは FloorSession インスタンスに、デバッグログは OneS1ght 型に設定します。
0.1.12 から onDebugLogレベルと文字列の両方を渡します(以前は (String) -> Void)。 移行ガイド をご確認ください。

LogLevel

Comparable なので level >= .warn のように絞り込めます。
「この階に登録されたエリアがありません」は、コンソールでまだエリアを作っていない 正常な状態です。不具合ではないため .info です。
サーバー応答は onTriggers だけです — ネットワークが切れると進入判定は届きますが、トリガーは届きません。

空間の取得

エンドポイントごとに 1 メソッドで、一覧と単件が対になっています。

フロアの指定

プロフィール

お客様の会員 ID はサーバーには届きません — マッピングはお客様側でのみ保持します。
savedProfileId ?? (try await OneS1ght.createProfile(…))コンパイルできません。 ?? の右辺は autoclosure のため try await を置けません — if let で書いてください。

データ送信

座標は 300 件または 60 秒 のいずれか早い方で送信されます。 バックグラウンドへの遷移時と end() 時にも残りを送信します。

状態の取得

エラー — SdkError

SdkError は SDK 自身が投げる 5 種類です。通信の失敗は ApiError で届きます。 どちらの型も .code から エラーコード を取り出せます。
測位ランタイム(E4001E4003)と空間設定(E3001E3004)は throw されず、ログにのみ 残ります — onDebugLog またはコンソールのログ分析でご確認ください。全一覧

モデル

Coordinates — リアルタイム座標

Building · Floor — 建物・フロア

Locator · FloorLocators — ロケーター

Zone — ゾーン

これらの判定パラメーターはサーバーのゾーンメタデータから配信され、コンソールの 空間管理 → ゾーンを選択 → SDK エリア判定 でゾーンごとに設定します(設定方法)。 zone.contains(Position(x:y:)) で任意の座標がゾーンに含まれるかを直接判定することもできます。
inCount0 の場合、進入が永久に確定せずゾーンイベントが発生しません。 コンソールで登録した新規ゾーンのデフォルトは 1 です。値が 0 の古いゾーンがある場合はコンソールで確認してください。

Trigger — パーソナライズアクション

MockPositioningProvider — テスト用

session.begin(provider:) で注入し、UWB なしで SDK のパイプラインを確認します。 ZoneEventStatus.enter · .dwell · .exit です。

スレッド

  • OneS1ght のすべての API は @MainActor です。SwiftUI のビューや .task からはそのまま呼び出せます。 バックグラウンドのコンテキストからは await MainActor.run { … } で包んでください。
  • コールバック(onPosition など)もメインアクターで呼び出されます — UI をそのまま更新しても安全です。

既知の制約

iOS の UWB は フォアグラウンド専用 です。アプリがバックグラウンドに入ると測位が停止してバッファを送信し、 復帰すると再開します。プラットフォームの制約のため SDK では回避できません。
座標バッファはメモリ上にあります。アプリが強制終了されると、未送信の座標は失われます(E5006)。
LICENSE ファイルはまだありません。利用条件は別途の契約に従います。