0

We are trying to send few commands in MDM to iOS Device. We tested basic commands like device lock, etc., for other commands like one App being to make as KIOSK App, that command was expecting PayloadUUID, how to get that payloaduuid. We have enabled "General", "Credentials","Mobile Device Management" payloads.

Please find the below command using by server,

public static String getAppLockPList(){
        StringBuffer backString = new StringBuffer();
        backString.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        backString.append("<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\"");
        backString.append("\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">");
        backString.append("<plist version=\"1.0\">");
        backString.append("<dict>");
        backString.append("<key>PayloadContent</key>");
        backString.append("<array>");
        backString.append("<dict>");
        backString.append("<key>App</key>");
        backString.append("<dict>");
        backString.append("<key>Identifier</key>");
        backString.append("<string>com.company.identifier</string>");
        backString.append("</dict>");
        backString.append("<key>PayloadType</key>");
        backString.append("<string>com.apple.app.lock</string>");
        backString.append("<key>PayloadIdentifier</key>");
        backString.append("<string>com.company.identifier</string>");
        backString.append("<key>PayloadUUID</key>");
        backString.append("<string>d7e27098ad530884664a98a6f93ab3796f97b</string>");
        backString.append("<key>PayloadVersion</key>");
        backString.append("<integer>1</integer>");
        backString.append("</dict>");
        backString.append("</array>");
        backString.append("<key>PayloadType</key>");
        backString.append("<string>Configuration</string>");
        /*backString.append("<key>PayloadDisplayName</key>");
        backString.append("<string>##########</string>");*/
        backString.append("<key>PayloadIdentifier</key>");
        backString.append("<string>com.company.identifier</string>");
        backString.append("<key>PayloadUUID</key>");
        backString.append("<string>d7e27098ad530884664a98a6f93ab3796f97b</string>");
        backString.append("<key>PayloadVersion</key>");
        backString.append("<integer>1</integer>");
        backString.append("</dict></plist>");
        return backString.toString();
    }
Sudheer Kumar Palchuri
  • 2,919
  • 1
  • 28
  • 38

1 Answers1

0

Can you copy the piece of text to see what's exactly required? As I remember Kiosk apps are done using configuration profiles (vs MDM commands).

Generally speaking PayloadUUID is unique identifier which identifies a payload. If you want to install a configuration on a device you install a configuration profile (you can think about it as bundle of payloads). Each configuration profile has some meta information and it includes one or several payloads. Each payload contains some piece of configuration (as example WiFi network settings or VPN settings and some additional metadata, including PayloadUUID).

There are cases when some particular Payload needs to be referenced and that's where PayloadUUID comes into the play.

Update 1

I understood your question incorrectly. If you need to generate configuration profile and need to put PayloadUUID's in it, you can put any unique string in it.

Look at this link: https://developer.apple.com/library/ios/featuredarticles/iPhoneConfigurationProfileRef/Introduction/Introduction.html

It says: "PayloadUUID, String, A globally unique identifier for the profile. The actual content is unimportant, but it must be globally unique. In OS X, you can use uuidgen to generate reasonable UUIDs."

Victor Ronin
  • 22,758
  • 18
  • 92
  • 184