Category filter
Configuration profile to set up single app mode on iOS devices
User-friendly interface, extensive app ecosystem, and robust security features have bolstered the use of iOS/iPadOS devices in corporate environments. This document describes how IT administrators can use a configuration profile to set up single app mode on iOS/iPadOS devices.
Setting up a single app mode on iOS limits its functionality, permitting only a specified application on the device. It allows the device to be used for specific purposes, such as a kiosk or POS system and prevents users from accessing other apps or settings. Here’s how you can easily configure single app mode for iOS devices by creating a custom configuration profile. Then, you can deploy it using Hexnode’s Deploy Custom Configuration feature to lock your devices to the app of your choice.
Enable Single app mode on iOS
You can provide the bundle identifier of the application you want to launch in single app mode for the key Identifier within the given profile. For example, to lock the device to run only the Safari app, specify the bundle identifier of the Safari app.
Configuration profile to set up single app mode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PayloadContent</key> <array> <dict> <key>App</key> <dict> <key>Identifier</key> <string>com.apple.mobilesafari</string> </dict> <key>PayloadIdentifier</key> <string>com.apple.app.lock.DCFD11C2-0F6E-4A5B-9F95-CB3A145E1220</string> <key>PayloadType</key> <string>com.apple.app.lock</string> <key>PayloadUUID</key> <string>DCFD11C2-0F6E-4A5B-9F95-CB3A145E1220</string> <key>PayloadVersion</key> <integer>1</integer> </dict> </array> <key>PayloadDisplayName</key> <string>Single App Mode</string> <key>PayloadIdentifier</key> <string>iOS.F93DBB4A-CF2F-47D6-B43D-CB875ECBECEE</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadUUID</key> <string>82F6C8E3-2DBB-49E9-AF67-292EEB081A40</string> <key>PayloadVersion</key> <integer>1</integer> </dict> </plist> |
You can also customise the device behavior as well as the options available to the user when the device is locked in single app mode. The following options can be customized:
Key | Description |
---|---|
DisableTouch | If true, the touch screen is disabled.
Default: False |
DisableDeviceRotation | If true, device rotation sensing is disabled, and the screen will not rotate when the device is rotated.
Default: False |
DisableVolumeButtons | If true, the volume buttons are disabled.
Default: False |
DisableRingerSwitch | If true, the ringer switch is disabled. When disabled, the position the switch was in when it was first disabled decides the device behavior.
Default: False |
DisableSleepWakeButton | If true, the sleep/wake button is disabled.
Default: False |
DisableAutoLock | If true, the device doesn’t automatically go to sleep after an idle period.
Default: False |
EnableVoiceOver | If true, VoiceOver is enabled, and the device gives audible descriptions of what’s on the screen.
Default: False |
EnableZoom | If true, zoom is enabled.
Default: False |
EnableInvertColors | If true, the Invert Colors functionality is enabled.
Default: False |
EnableAssistiveTouch | If true, the Assistive Touch feature is enabled.
Default: False |
EnableSpeakSelection | If true, speak selection feature which will read out a selection portion of a text is enabled.
Default: False |
EnableMonoAudio | If true, Mono Audio functionality is enabled.
Default: False |
EnableVoiceControl | If true, users can speak commands to perform gestures, interact with screen elements, dictate and edit text, and more.
Default: False |
Key | Description |
---|---|
VoiceOver | If true, users can toggle VoiceOver.
Default: False |
Zoom | If true, users can toggle Zoom.
Default: False |
InvertColors | If true, users can toggle Invert Colors.
Default: False |
AssistiveTouch | If true, users can toggle Assistive Touch.
Default: False |
VoiceControl | If true, users can toggle Voice Control.
Default: False |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PayloadContent</key> <array> <dict> <key>App</key> <dict> <key>Identifier</key> <string>com.apple.mobilesafari</string> <key>Options</key> <dict> <key>DisableAutoLock</key> <true/> <key>DisableDeviceRotation</key> <true/> <key>DisableRingerSwitch</key> <true/> <key>DisableSleepWakeButton</key> <true/> <key>DisableTouch</key> <true/> <key>DisableVolumeButtons</key> <true/> <key>EnableAssistiveTouch</key> <true/> <key>EnableInvertColors</key> <true/> <key>EnableMonoAudio</key> <true/> <key>EnableSpeakSelection</key> <true/> <key>EnableVoiceOver</key> <true/> <key>EnableZoom</key> <true/> </dict> <key>UserEnabledOptions</key> <dict> <key>AssistiveTouch</key> <true/> <key>InvertColors</key> <true/> <key>VoiceOver</key> <true/> <key>Zoom</key> <true/> </dict> </dict> <key>PayloadDisplayName</key> <string>Single App Mode</string> <key>PayloadIdentifier</key> <string>com.apple.app.lock.8C11FA36-142E-4DA1-A3BF-473F7C41DBC2</string> <key>PayloadType</key> <string>com.apple.app.lock</string> <key>PayloadUUID</key> <string>8C11FA36-142E-4DA1-A3BF-473F7C41DBC2</string> <key>PayloadVersion</key> <integer>1</integer> </dict> </array> <key>PayloadDisplayName</key> <string>Single App Mode</string> <key>PayloadIdentifier</key> <string>iOS.CE041111-E170-4EA2-9A6E-F8296975C42A</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadUUID</key> <string>24769E63-A910-449C-B0E9-6132FC4621E3</string> <key>PayloadVersion</key> <integer>1</integer> </dict> </plist> |
What happens at the device end?
On deploying this configuration profile, the application is launched automatically on the device. The user cannot exit the application until you remove the policy for the configuration profile from the portal.