Aller au contenu principal

iOS Integration

The SDK includes an iOS Protection adapter and participates in the same Dart public contract. However, background BLE ownership on iOS is not as mature as Android — integrate with that expectation in mind.

Host app expectations

  • Provide notification UX
  • Declare Bluetooth usage descriptions in Info.plist
  • Prepare UIBackgroundModes only when your product genuinely needs background execution
  • Treat Protection Mode on iOS as capability-aware, not as equivalent to Android
  • Configure optional WidgetKit/App Group/deep-link setup when shipping an OS-level SOS widget

Integration

Use the same public bootstrap path as Android. The snippet assumes notificationTexts is a non-empty EixamNotificationTexts value from your localization layer:

final sdk = await EixamConnectSdk.bootstrap(
EixamBootstrapConfig(
appId: 'partner-app',
environment: EixamEnvironment.production,
notificationTexts: notificationTexts,
),
);

Then request permissions and inspect readiness before arming Protection Mode.

For required Info.plist keys, see the Permissions Checklist.

Optional OS SOS widget

An iOS SOS widget is a host-app WidgetKit surface that opens the app into a guarded SDK SOS flow. Treat it as display and app-open first, not as a long-running emergency runtime.

At a safe setup level, the host app provides:

  • A WidgetKit extension.
  • An App Group entitlement for lightweight display-only snapshot sharing.
  • URL scheme or deep-link handling.
  • AppDelegate and SceneDelegate forwarding for matching widget links.
  • Snapshot writes from the app to the widget extension.

WidgetKit refresh timing is controlled by iOS and may be delayed or throttled. The widget snapshot is not the source of truth; SDK/backend state remains authoritative after the app opens.

The widget must not own backend routing, BLE/device logic, cancellation, resolution, or emergency-service routing. See OS SOS Widget for the full integration model.

Troubleshooting

astuce

If iOS reports partial coverage or degraded readiness, inspect diagnostics first before assuming parity with the Android runtime.

Partial coverage on iOS can be expected depending on current iOS runtime ownership support.