A hands-on package guide to try before your production integration — from key issuance to building the demo app and experiencing indoor positioning and coupons.
This guide walks you through the entire flow before a production integration.
Starting from nothing, you’ll go step by step: issue keys → confirm infrastructure →
build the app → try it out. (Build takes about 5 minutes.)
The OneS1ght SDK key (ock_) and the GeoSpace SDK key (gsk_) are different keys.
Both consoles have an “SDK Key” menu, so use the prefix to tell them apart.
After issuing the partner key (gpk_), register it in OneS1ght console → Settings → Positioning connection
to connect real floor plan and zone data.
Positioning requires spaces (building, floor, plan) and locators (UWB anchors) to be set up.
This is already done at the demo site, so you can skip this step. If you’d like to see the full process:
Build spaces
Create buildings and floors, upload floor plans
Locator setup
Register hardware → install and measure on site → place on the plan
Demo site configuration
Korea: Geumjeong Station skv1 · Room 607 (for verifying positioning)
Japan: Akasaka 35 Kowa Building · 304 — a conference room measuring approx. 5.6 × 11.3 m, with 4 anchors placed at the corners
To register a new location, first take interior measurements of the target space, then set up
the floor plan through Build spaces (building, floor, plan upload) →
Locator setup (anchor installation, measurement, placement).
OneS1ght console → Natural language query → Action agents
Register the suggestion card shown with the query answer via “Add to action management” → when you run (activate) that item, it is automatically mapped into Space management
Choose the target floor from the list of buildings and floors registered in GeoSpace Intelligence.
2
Draw the zone
Press [Draw zone] and click on the plan —
click: add vertex · double-click: close · ESC: cancel (4 points minimum).
Name the zone and press [Save] to add it to the zone list.
3
Select and delete
Use [Select] to enter selection mode, pick an existing zone, and remove it with [Delete].
4
Save
Pressing [Save] stores your changes to GeoSpace Intelligence.
Space management — drawing a zone: ① select building and floor ② draw zone ③ select ④ delete ⑤ save ⑥ draw on the plan
On floors with no zones, the demo app polls for zone registration once per second — whichever method
you use, the zone appears on the app’s map within a few seconds. Try creating one live during the demo.
If you received a secrets.sqlite file, simply copy it to the following location:
oneS1ghtSdk/App/Resources/secrets.sqlite
If you received only the key values, run the command below from the repository folder,
replacing each <…> with your key. (Uses sqlite3, built into macOS — no installation needed.)
sqlite3 oneS1ghtSdk/App/Resources/secrets.sqlite \ "CREATE TABLE config (key TEXT PRIMARY KEY, value TEXT); \ INSERT INTO config VALUES ('sdk_key','<SDK key>'); \ INSERT INTO config VALUES ('geospace_key','<GeoSpace key>'); \ INSERT INTO config VALUES ('partner_key','<Partner key>');"
Never commit the keys you received to a repository or post them in a public channel.
If you have iOS development experience, you can skip 4-4 and 4-5 — they cover the usual signing and
device setup. (In short: sign with a Personal Team, and enable Developer Mode on the device.)
Add your Apple ID to Xcode — no paid developer membership required; your everyday Apple ID works.
1
Add your account
Xcode → Settings… (Cmd+,) → Accounts tab → + at the bottom left →
sign in with your Apple ID (a two-factor code will arrive on your iPhone)
2
Assign signing to the project
Click the blue project icon (oneS1ghtSdk) at the top of the file list → TARGETS → oneS1ghtSdk →
Signing & Capabilities tab → select your account under Team (Your Name (Personal Team))
3
If the bundle ID conflicts
If you see “Bundle identifier is not available”, append any characters to the Bundle Identifier
(for example …demo → …demo2). The error disappears once it’s unique.
Connect your iPhone by cable → tap Trust on the “Trust This Computer?” prompt and enter your passcode
2
Enable Developer Mode
On your iPhone: Settings → Privacy & Security → Developer Mode → turn on → restartNote: the “Developer Mode” entry appears only after connecting the iPhone to a Mac once.
Without Developer Mode enabled, Xcode shows the device as unavailable and cannot run the app.
Launch the app → allow all permission requests (location, nearby interaction)
Select a building / floor at the top → the plan loads. This list shows buildings and floors
registered through positioning infrastructure (GeoSpace). The entries below are
examples currently registered in the demo environment.
(Default selection follows the system language: Korean → Geumjeong Station skv1 · Room 607 / Japanese → Akasaka 35 Kowa Building · 304)
Once the status reads Ready, tap [Find my location]
The red dot on the plan is your real-time location
Walk into a blue area (zone) — it turns red, and if an event is queued on the server a coupon popup appears
Coupon events are queued on the server by your contact during the demo. While you are inside a zone,
the app checks the server once per second and shows the event as a popup immediately (one coupon per session).
If no coupon appears after entering a zone, ask your contact whether the event was queued.
① Ready — plan loaded with the event zone (blue area) shown, start button enabled (Geumjeong Station skv1 · Room 607)
② Locating — the red dot is your real-time position; ↻ refresh at the top right (Akasaka 35 Kowa Building · 304)
The app UI follows your system language — the screenshots above are from a device set to Japanese.
On floors without anchors, you can view the plan but the start button is disabled (“Positioning isn’t available on this floor”) — this is expected.
Korea: Geumjeong Station skv1 / Japan: Akasaka 35 Kowa Building — both sites have anchors installed and support positioning
Floor
= a space — one building can contain several spaces (each with its own plan, anchors, and areas)
Red dot
Your real-time position — appears when you start, follows you as you move, and disappears when you stop
Area (zone)
A zone created in the console — shown as a blue polygon, turning red when you enter
↻ Refresh
Reflects zone changes and deletions on the map. Zone polling stops once the first zone appears, so use this button for any changes after that (including zones added by running an action)
Start / Stop button
Start (Find my location) · Stop (Stop locating) — disabled on floors where positioning is unavailable
Switching buildings or floors reloads the plan and settings — this can take a few seconds depending on
server response, so please wait while the loading indicator is shown.
The app follows your system language: English · 한국어 · 日本語 (other languages fall back to Korean)
To demo in another language — change it in Settings → General → Language & Region → iPhone Language
on your iPhone, then relaunch the app. Setting Japanese also makes the Japan site (Akasaka) the default building.
The iPhone language applies to the entire device — remember to switch it back after the demo.