Skip to main content
On macOS the desktop services ship as signed .pkg installers in the mbkyc-raw Nexus repository. Install only the services for the hardware you use. These are required for the Swift SDK (and the web SDK) to see card readers and fingerprint sensors.
macOS includes a class-compliant CCID driver, so any PC/SC-compliant smart card reader works with mbkyc-pcsc-service — no per-reader driver needed. For fingerprint, install the package that matches your sensor’s vendor.

Which packages do I need?

You need…Install
Read Emirates ID from a card readermbkyc-pcsc-service
Fingerprint with IDEMIA (Morpho) MSO 1350mbkyc-morpho-service
Fingerprint with Suprema BioMinimbkyc-suprema-service
Fingerprint with NEXUS / Zhiangmbkyc-zhiang-service
Browser (web SDK)mbkyc-web-host (plus the card/fingerprint services above)
Manual-entry verification (no card/fingerprint) needs no services.

Download & install

Download the .pkg for each service you need from Nexus (same credentials as your other repos — see Access & credentials), then install it with installer.
1

Download the package(s)

export NEXUS_USER="your-username"
export NEXUS_PASSWORD="your-password"

# Card reader service (mbkyc-pcsc-service, currently 0.4.0)
curl -fsSL -u "$NEXUS_USER:$NEXUS_PASSWORD" \
  https://repo.client.ae/repository/mbkyc-raw/mbkyc/mbkyc-pcsc-service/0.4.0/macos/pkg/MBKYCPcscService-0.4.0.pkg \
  -o MBKYCPcscService.pkg

# Fingerprint service — pick the one matching your sensor, e.g. Suprema (currently 0.1.0):
curl -fsSL -u "$NEXUS_USER:$NEXUS_PASSWORD" \
  https://repo.client.ae/repository/mbkyc-raw/mbkyc/mbkyc-suprema-service/0.1.0/macos/pkg/MBKYCSupremaService-0.1.0.pkg \
  -o MBKYCSupremaService.pkg
2

Install

sudo installer -pkg MBKYCPcscService.pkg     -target /
sudo installer -pkg MBKYCSupremaService.pkg  -target /
Each installer places the service binary under /usr/local/bin/, registers a LaunchDaemon in /Library/LaunchDaemons/, and starts it.
3

Verify it's running

pgrep -lf mbkyc-pcsc-service
pgrep -lf mbkyc-suprema-service
Each command should print a running process. The SDK can now discover the reader via listSmartcardReaders() / listFingerprintReaders().

Service management

The services run as LaunchDaemons (system-wide, restart on crash and at boot). Each has a label of the form ae.gov.icp.mbkyc.<transport>.<vendor>.<kind>:
ServiceLaunchDaemon label
mbkyc-pcsc-serviceae.gov.icp.mbkyc.pcsc.generic.smartcard
mbkyc-morpho-serviceae.gov.icp.mbkyc.usb.morpho.fingerprint
mbkyc-suprema-serviceae.gov.icp.mbkyc.usb.suprema.fingerprint
mbkyc-zhiang-serviceae.gov.icp.mbkyc.usb.zhiang.fingerprint
LABEL=ae.gov.icp.mbkyc.pcsc.generic.smartcard

# Status (state + pid)
sudo launchctl print system/$LABEL | grep -E "state|pid"

# Restart
sudo launchctl kickstart -k system/$LABEL

# Stop until next boot / start again
sudo launchctl bootout    system/$LABEL
sudo launchctl bootstrap  system /Library/LaunchDaemons/$LABEL.plist
App Sandbox. If your macOS app uses the App Sandbox, enable Outgoing Connections (Client) so the SDK can reach the Validation Gateway, and the USB capability so it can use readers — or disable the sandbox for an internal/kiosk build.

Uninstall

sudo launchctl bootout system/ae.gov.icp.mbkyc.usb.suprema.fingerprint
sudo rm -f /Library/LaunchDaemons/ae.gov.icp.mbkyc.usb.suprema.fingerprint.plist \
           /usr/local/bin/mbkyc-suprema-service
sudo pkgutil --forget ae.gov.icp.mbkyc.suprema

Now build your integration

Head to the Swift (macOS) SDK guide.