Skip to main content
Native iOS apps use the MentraBluetoothSDK Swift package.

Requirements

  • iOS deployment target 15.1 or newer.
  • Xcode 15 or newer.
  • Swift Package Manager.
  • A physical iPhone for Bluetooth, camera, microphone, direct phone photo, and direct phone WebRTC testing.

Install

The public SwiftPM repository is:
In Xcode, choose File > Add Package Dependencies, enter that URL, select version 0.1.20, and add the MentraBluetoothSDK product to your app target. For Package.swift consumers:
Then add the product to your target:
For local SDK development, add the package folder directly in Xcode:
The SwiftPM package currently builds the core Bluetooth SDK only. It does not build optional local STT or tar.bz2 extraction code paths.

Permissions

Add usage descriptions to Info.plist:

Background Operation

If your iOS app needs to keep the glasses BLE link alive while the phone is locked or the app is backgrounded, enable Core Bluetooth background mode:
If your app also keeps microphone capture or an audio session active in the background, add audio as well:
Configure your AVAudioSession before starting continuous microphone or playback work. Start continuous microphone capture while the app is foregrounded; iOS background mode lets an active session continue, but the SDK does not start the phone microphone from the background. For example:
bluetooth-central allows iOS to continue BLE central activity in the background, subject to iOS scheduling and power-management limits. audio is required only for apps that intentionally keep recording or audio playback active after backgrounding.
This SDK version does not enable terminated-app Core Bluetooth state restoration with CBCentralManagerOptionRestoreIdentifierKey. If iOS terminates the app, relaunch the app and reconnect from your normal startup flow.

Basic Flow

Local SDK Override

Use this when testing native Swift SDK source changes locally:
Add that folder as a local Swift package in Xcode. Keep local paths in your workspace settings or CI environment, not in committed project settings.