Use this checklist before shipping an app with the Glassly Bluetooth SDK.

Analytics

  • Glassly Bluetooth SDK usage analytics are currently turned off: this SDK version sends no usage events.
  • If your app disables SDK analytics, do it before SDK startup with the Expo config plugin, Android manifest metadata, iOS Info.plist, or native SDK configuration. The setting keeps applying when analytics return.
  • When analytics return, bluetooth_sdk_glasses_identified will carry the glasses manufacturing serial as glasses_device_id; account for it in your privacy copy or keep analytics disabled.

App Setup

  • Android, iOS, and/or React Native native builds are configured for the app stack you ship.
  • iOS deployment target is 15.1 or newer.
  • Android min SDK is 28 or newer.
  • Android builds use Java 17.
  • Android native packaging includes any pickFirst rules required by the app’s own native dependencies.
  • Bluetooth permission copy is user-friendly and specific.
  • Microphone, camera, local network, notification, and location permissions are requested only when needed.
  • The app integrates through the documented Android, iOS, or React Native SDK APIs.

SDK Integration

  • App subscribes to typed glasses and Bluetooth status callbacks.
  • App handles disconnect, reconnect, scan stopped, and pair failure states.
  • App derives controls from Mentra Live status, permissions, and firmware behavior.
  • App cleans up SDK listeners/delegates and calls close() / invalidate() when sessions end.
  • React Native apps remove every SDK event subscription when screens/session owners unmount.
  • App uses typed settings APIs for gallery mode, camera, LED, Wi-Fi, streaming, and microphone settings.
  • Advanced controls are gated behind SDK capability/status checks.

Privacy And Compliance

  • Audio capture behavior is clearly disclosed.
  • Camera capture behavior is clearly disclosed.
  • Bluetooth and location permission copy explains device discovery.
  • Cloud upload behavior is documented in the app privacy policy.
  • Logs avoid sensitive user data.

Release Validation

  • Fresh bare Android app install using the published Maven artifact.
  • Fresh bare iOS app install using the published Swift package.
  • Fresh React Native development or production build using the published JavaScript package, if shipping React Native.
  • Android sample app in the Starter Kit builds.
  • iOS sample app in the Starter Kit resolves SwiftPM dependencies and builds.
  • React Native sample app in the Starter Kit runs bun install, bunx expo prebuild, and at least one native platform build.
  • Fresh install test on iOS.
  • Fresh install test on Android.
  • Pairing test with Mentra Live.
  • Reconnect test after app restart.
  • Reconnect test after Bluetooth toggle.
  • Camera/gallery/streaming test with Mentra Live.
  • Speaker playback test with Mentra Live.
  • Hardware settings test for save-in-gallery mode, camera options, LED color/pattern, Wi-Fi, and hotspot behavior.
  • Button/touch event test.
  • Microphone audio/transcription test if enabled.

Restricted-Network Deployments

  • The app pins one exact completed Glassly release identity rather than a moving package tag.
  • The self-hosted OTA bundle is the exact bundle selected by the completed release record for the pinned SDK release.
  • Glassly SDK analytics are disabled before native SDK startup.
  • The imported OTA ZIP matches the SHA-256 recorded in the completed release record.
  • The final version.json and every artifact are reachable from both the phone and Mentra Live.
  • The complete update and SDK feature set are tested with public internet access blocked.
  • Older inventory is factory- or legacy-bootstrapped to ASG build 39 or newer.
See Air-Gapped Bluetooth SDK Deployment for the complete procedure.