Access WiFi settings without leaving Single App Mode?

We have a an app that we want to send to users pre-installed on an iPad, and in "Single App Mode." I've used "Apple Configurator" to setup an iPad in "Single App Mode" and that is working well. The problem is, we need our users to be able to connect the iPad to their local WiFi network when they receive the iPad in order to use it.


Is it possible to Access WiFi settings without leaving Single App Mode?


Any advice on ways we could setup our application would be greatly appreciated. I've been using this support article to understand our options, but none of them seem ideal. We need the app to be locked down at all times (except for connecting to WiFi) and would rather not give the user access to underlying device settings (except for WiFi)

My limited understanding is that the best way would be to use a MDM solution.


If you're purchasing the iPads - you can buy them from Apple and use DEP to have them automatically connect to a MDM server and configure themselves on firstboot. I believe you can control what options a user sees during the setup assistant- which can include connecting to Wi-FI.


The other option would be to let the user perform a BYOD type deployment. So they could take any iPad - connect to Wifi and then signup with your MDM. That could then put the device into Single User Mode


A few links


https://developer.apple.com/business/documentation/MDM-Protocol-Reference.pdf

https://developer.apple.com/documentation/devicemanagement


There are a few opensouce MDM solutions and a bunch of paid ones.... I've used MicroMDM - but it's non trivial and depending on your use case might best to pay for the service

https://micromdm.io


The folks in various MDM groups in https://macadmins.herokuapp.com/ are super helpful too.

An implementation approach you have at your disposal is to use NEHotspotConfiguration to connect the application to the user's Wi-Fi network. This would require developing functionality for the user to input the SSID and Passphrase, but the very basics would looks like this:


var networkHotspotConfig: NEHotspotConfiguration?
// Add the user input ssidName and passphrase.
networkHotspotConfig = NEHotspotConfiguration(ssid: ssidName, passphrase: passphrase, isWEP: false)


if let unwrappedNetworkHotspot = self.networkHotspotConfig {
    NEHotspotConfigurationManager.shared.apply(unwrappedNetworkHotspot) { [weak self] (error) in
    // Check for error and act upon active connection.
    }
}


Matt Eaton

DTS Engineering, CoreOS

meaton3 at apple.com

Hi telemarkus. I'm facing the exact same scenario, have you found a simple solution? MDM is total overkill.

The device would need to be online anyways to receive any MDM policies. If the device is in single app mode and needs to switch network, unfortunately it will more than likely need to be reset via iTunes

Access WiFi settings without leaving Single App Mode?
 
 
Q