MDM setup

Deploy Kioskope to a fleet

Buy licenses once in Apple Business, let your MDM install the app and push its settings, and every device opens straight to your web app. No Apple Account on the device, no hands on the setup wizard.

Microsoft Intune

Automated Device Enrollment, an Apps and Books license, one app configuration policy, optional lockdown.

Intune guide →

Apple Business & Apple Configurator

Add devices, buy licenses, and link any MDM. Or supervise and lock down a few iPads by cable, no MDM at all.

Apple guide →

How it fits together

  1. Apple Business (formerly Apple Business Manager) holds your devices and your Kioskope licenses.
  2. Your MDM enrolls each iPad through Automated Device Enrollment, supervised and without a user, then installs Kioskope with a device license.
  3. An app configuration policy pushes Kioskope's settings as a managed configuration. Managed keys override anything set on the device. Kioskope reads them at launch and watches for changes while it runs.
  4. Optionally, lock the iPad to Kioskope with Single App Mode or Autonomous Single App Mode.

Identifiers

Bundle IDcom.kioskope.Kioskope
App Store ID6804490729
Managed configurationcom.apple.configuration.managed (standard AppConfig)
RequiresiOS or iPadOS 17 or later on an A12 chip or newer: iPhone XS, iPad (8th gen), iPad Air (3rd gen), iPad mini (5th gen), iPad Pro (2018), and later. Older devices cannot scan and do not see the app in the App Store.

Configuration keys

Every key is optional. An unset key falls back to whatever is set on the device, then to the default below. Keys are case-sensitive. Values pushed by MDM win: if someone edits a managed key in the app's settings, it snaps back.

MDMs that follow the AppConfig Community standard can build a settings form from the Kioskope AppConfig spec instead of typing keys. Intune uses its own designer and the XML below.

Kiosk

KeyTypeDefaultEffect
startURLstring—Page to load. Bare hosts get https://; IPs, localhost, and .local names get http://. Once set, the setup wizard never appears.
allowlistarray of string[] (allow all)Hosts the session may visit; *.example.com wildcards work. The start URL's host is always allowed.
showChromebooleantrueShow the back, forward, reload, and settings bar.
idleResetSecondsinteger0 (off)Seconds of inactivity before returning to the start URL.
clearSessionOnResetbooleanfalseAlso clear cookies and site data on idle reset.
preventSleepbooleantrueKeep the screen awake.
asambooleanfalseEnter Autonomous Single App Mode. Needs a supervised device with Kioskope allowlisted in a restrictions profile; see Lock the device.
trustSelfSignedbooleanfalseAccept self-signed TLS certificates, for allowlisted hosts only.

Scanning

KeyTypeDefaultEffect
symbologiesarray of stringqr pdf417 code128 code39 ean13 upceSymbologies to decode. Any of qr microqr pdf417 micropdf417 aztec datamatrix code128 code39 code93 ean13 ean8 upce itf14 codabar gs1databar.
liveTextbooleanfalseTap-to-capture printed text.
continuousScanbooleanfalseKeep the scanner open after each scan.
debounceSecondsreal2.0Ignore repeats of the same code within this window.
beepbooleantrueSound on each scan.
hapticbooleantrueVibrate on each scan.
torchbooleanfalseTorch on when the scanner opens.
roibooleanfalseDecode only in the center band of the viewfinder.

Output

KeyTypeDefaultEffect
scanPrefixstring""Text added before each result.
scanSuffixstring""Text added after each result.
terminatorstringnoneKey sent after the result: none, tab, or enter.
stripLeadinginteger0Characters removed from the start of each result.
stripTrailinginteger0Characters removed from the end of each result.
urlTemplatestring""Navigate here on each scan instead of typing; {code} is replaced. Example: https://x/lookup/{code}.

Security

KeyTypeDefaultEffect
adminPINstring"" (unlocked)PIN for the settings screen behind the gear.

Example configuration

A property-list dictionary, ready for Intune's Enter XML data field or any MDM that accepts a managed configuration dictionary.

<dict>
  <key>startURL</key>
  <string>https://inventory.example.com/scan</string>
  <key>allowlist</key>
  <array>
    <string>*.example.com</string>
    <string>sso.example.net</string>
  </array>
  <key>showChrome</key>
  <false/>
  <key>idleResetSeconds</key>
  <integer>120</integer>
  <key>clearSessionOnReset</key>
  <true/>
  <key>symbologies</key>
  <array>
    <string>pdf417</string>
    <string>code128</string>
    <string>qr</string>
  </array>
  <key>terminator</key>
  <string>enter</string>
  <key>adminPIN</key>
  <string>2468</string>
</dict>

Lock the device to Kioskope

Both options need a supervised device, which Automated Device Enrollment and Apple Configurator both provide.

Single App Mode

Your MDM (Intune calls it Kiosk) or Apple Configurator pins the device to Kioskope. It boots into the app and stays there until the MDM releases it. Nothing to set in Kioskope. Apps can't update while a device is pinned, so plan a window for updates.

Autonomous Single App Mode

Kioskope pins itself when asam is true and releases when it's false, so one key in the configuration policy locks or frees a device (restart the iPad if it doesn't release). The device needs a restrictions profile that lists com.kioskope.Kioskope under permitted apps for autonomous single app mode. For Apple Configurator, download that profile.

Good to know