Setting the Unique iPad ID Remotely via XML
This pair of key-value pairs allows you to assign a Unique iPad ID to a device remotely if, for example, you deployed kiosks without setting a Unique iPad ID in Kiosk Pro settings or if you accidentally wiped a Unique iPad ID with the remote settings .xml file.
This feature is only available in our Plus and Enterprise versions and the app must be set up to remotely update settings using an .xml file.
Step 1: Update your Remote Settings XML
Add the following key-value pairs to your remote settings .xml file (or if you are using a fresh .xml template, uncomment both pairs by removing the ‘<!--’ and ‘-->’ that surround this set of <dict> tags).
<dict> <key>Key</key><string>kp_setting_command_generateKioskID</string> <key>Value</key><string></string> </dict> <dict> <key>Key</key><string>kp_setting_command_sendContextInfo</string> <key>Value</key><string></string> </dict>
Note that unlike other
<key>Value</key><string></string> sets in the remote settings .xml file, these keys are both unique in that they do not need a value between the <string> tags to work correctly.
Upload the amended file to the correct location on your servers.
Step 2: Generate the new ID
When Kiosk Pro downloads the .xml file and sees the ‘kp_setting_command_generateKioskID’ key-value pair, it will immediately check to see if a Unique iPad ID is set in the app’s settings.
If a value is found, the app does nothing. If no value is set for Unique iPad ID, the app generates a unique identifier based on the Apple key ‘identifierForVendor’ and saves it as the Unique iPad ID, which will look something like:
Step 3: Identify the Device
To help you identify the kiosk based on its new ID, the second key-value pair, 'kp_setting_command_sendContextInfo', instructs the kiosk to generate an email including general information about the device like the device model and current IP address.
If ‘Define Location Coordinates’ has been turned on in the app settings and the iOS alerts to confirm that the app should be allowed to access the device’s location are approved, the app will also be able to include detailed location data in the email.
Valid SMTP settings for remote alerts must be configured in Kiosk Pro settings for the email to be sent.
This key-value pair will generate an email for every kiosk, not just ones that have had the Unique iPad ID automatically generated. To prevent overuse of SMTP relays, we only generate this email once.
To generate a second email, you would need to manually exit and relaunch the app while it is still pointing at the .xml file containing this key. To prevent random emails when the app is relaunched, we recommend including these key-value pairs in your .xml file only when specifically needed, and either removing or commenting them out otherwise.
If the information included in the email is not enough to identify the device and you have someone on-site, you can ask them to exit Kiosk Pro, open the device’s main settings (with the silver gear icon), and scroll down the left panel until they see the app’s icon, which includes a non-editable field displaying the Unique ID that’s been set. Alternately, if you have the app set to send email alerts for power supply change, you could have them unplug a kiosk to generate an email that includes that specific device’s Unique ID.
Step 4: Replacing the Generated ID
Once you’ve identified the kiosk, you can replace the generated ID with one that is more helpful in identification using the remote settings .xml file.
To do this, add the following key-value pair to the .xml file for each kiosk you need to change:
<dict> <key>Key</key><string>uniqueiPadID</string> <key>Value</key><string>NewUniqueID</string> <key>ApplyTo</key><array><string>GeneratedUniqueID</string></array> </dict>
So for a kiosk with a generated unique ID of ‘3B9C1105-73EB-4147-8D6A-B4317DB2E701’ that you want to rename ‘Library 1’:
<dict> <key>Key</key><string>uniqueiPadID</string> <key>Value</key><string>Library 1</string> <key>ApplyTo</key><array><string>3B9C1105-73EB-4147-8D6A-B4317DB2E701</string></array> </dict>