> For the complete documentation index, see [llms.txt](https://multiset.gitbook.io/multiset/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://multiset.gitbook.io/multiset/native-support/ios-swift-native.md).

# iOS Swift Native

## Overview

The MultiSet iOS SDK provides Visual Positioning System (VPS) localization capabilities for iOS applications. It enables precise indoor and outdoor localization using camera-based visual recognition against pre-mapped 3D environments.

**GitHub Repository:** <https://github.com/MultiSet-AI/multiset-ios-sdk.git>

## Table of Contents

### Sample Views

* [LandingView](/multiset/native-support/ios-swift-native/sample-views/landingview.md) - Authentication, SDK initialization, and navigation
* [ARLocalizationView](/multiset/native-support/ios-swift-native/sample-views/arlocalizationview.md) - AR localization (Single-frame and Multi-frame)
* [ARObjectTrackingView](/multiset/native-support/ios-swift-native/sample-views/arobjecttrackingview.md) - AR object tracking with outline mesh rendering

### API Reference

* [MultiSetConfig](/multiset/native-support/ios-swift-native/api-reference/multisetconfig.md) - Configuration parameters

## Quick Start

The sample project comes pre-configured with the SDK framework and all necessary dependencies. Follow these steps to get up and running:

### 1. Clone the Repository

```bash
git clone https://github.com/MultiSet-AI/multiset-ios-sdk.git
cd multiset-ios-sdk
```

### 2. Open the Project

Open the `.xcodeproj` file in Xcode.

### 3. Configure Credentials

Open `SDKConfig.swift` and replace the placeholder values with your credentials:

```swift
struct SDKConfig {
    // Authentication Credentials
    static let clientId = "YOUR_CLIENT_ID"
    static let clientSecret = "YOUR_CLIENT_SECRET"

    // Map Configuration (use either mapCode OR mapSetCode)
    static let mapCode = "YOUR_MAP_CODE"
    static let mapSetCode = ""
}
```

| Property       | Description            | Required                 |
| -------------- | ---------------------- | ------------------------ |
| `clientId`     | Your client identifier | Yes                      |
| `clientSecret` | Your secret key        | Yes                      |
| `mapCode`      | Single map identifier  | One of these is required |
| `mapSetCode`   | MapSet identifier      | One of these is required |

To obtain credentials, visit: <https://developer.multiset.ai/credentials>

### 4. Build and Run

1. Select your target iOS device (AR requires a physical device)
2. Press **Cmd + R** to build and run
3. The app opens on the [LandingView](/multiset/native-support/ios-swift-native/sample-views/landingview.md), where the SDK authenticates automatically
4. **Localization:** Select a mode (Single-Frame or Multi-Frame) and tap **Start Localization** to enter [ARLocalizationView](/multiset/native-support/ios-swift-native/sample-views/arlocalizationview.md)
5. **Object Tracking:** Tap **Start Object Tracking** to enter [ARObjectTrackingView](/multiset/native-support/ios-swift-native/sample-views/arobjecttrackingview.md)

## Requirements

* iOS 16.0+
* ARKit compatible device (iPhone 6s or later)
* Camera permission
* Internet connectivity

## Info.plist Configuration

Add the following keys to your `Info.plist`:

```xml
<key>NSCameraUsageDescription</key>
<string>Camera access is required for AR localization</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>Location access improves localization accuracy</string>
```

## License

Copyright (c) 2026 MultiSet AI. All rights reserved. Licensed under the MultiSet License. For license details, visit [www.multiset.ai](https://www.multiset.ai).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://multiset.gitbook.io/multiset/native-support/ios-swift-native.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
