Home screen layout profile

Hi,

i just want to create a home screen layout defining profile configurator 2 for iOS 9.3. But I get an issue on log.

The field "Pages" is invalid.


Here is my demo profile:

<?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>DurationUntilRemoval</key>
        <integer>0</integer>
        <key>PayloadContent</key>
        <array>
            <dict>
                <key>Dock</key>
                <array>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.mobilephone</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.mobilemail</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.mobilesafari</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.mobilecal</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                </array>
                <key>Pages</key>
                <array>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.MobileSMS</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.mobileslideshow</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.camera</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.timer</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.Preferences</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                </array>
                <key>PayloadDisplayName</key>
                <string>Homescreen Layout</string>
                <key>PayloadIdentifier</key>
                <string>de.test.homescreenlayout.39C395E7-DDB0-46E4-B98E-923DE015A9C9</string>
                <key>PayloadType</key>
                <string>com.apple.homescreenlayout</string>
                <key>PayloadUUID</key>
                <string>39C395E7-DDB0-46E4-B98E-923DE015A9C9</string>
                <key>PayloadVersion</key>
                <integer>1</integer>
            </dict>
        </array>
        <key>PayloadDisplayName</key>
        <string>Homescreen-Layout-Konfiguration</string>
        <key>PayloadIdentifier</key>
        <string>de.test.homescreenlayout</string>
        <key>PayloadRemovalDisallowed</key>
        <false/>
        <key>PayloadType</key>
        <string>Configuration</string>
        <key>PayloadUUID</key>
        <string>65F70EB0-B83C-4938-A8F4-2E45E5A41572</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
    </dict>
</plist>


In profile key reference is a description of Pages:

Pages field (array)

Array of dictionaries. Each of the dictionaries complies to the icon dictionary format.

Make that sense? Multiple pages, but only one array?

There is another inner "Pages" key an the description of this field is:


Optional. Array of arrays of dictionaries. Each of the dictionaries complies to the icon dictionary format.

Can anybody help me?

Thanks



Posted on Mar 24, 2016 1:56 AM

Reply
12 replies

Apr 6, 2016 10:35 PM in response to nikolaifrombonn

I also got it running. Here is a working xml file to customize the homescreen layout (including all Apple stock apps!!):

<?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>Dock</key>
            <array>
                <dict>
                    <key>BundleID</key>
                    <string>com.apple.mobilephone</string>
                    <key>Type</key>
                    <string>Application</string>
                </dict>
                <dict>
                    <key>BundleID</key>
                    <string>com.apple.mobilemail</string>
                    <key>Type</key>
                    <string>Application</string>
                </dict>
                <dict>
                    <key>BundleID</key>
                    <string>com.apple.mobilesafari</string>
                    <key>Type</key>
                    <string>Application</string>
                </dict>
                <dict>
                    <key>BundleID</key>
                    <string>com.apple.mobilecal</string>
                    <key>Type</key>
                    <string>Application</string>
                </dict>
            </array>
            <key>Pages</key>
            <array>
                <array>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.MobileSMS</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.mobileslideshow</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.reminders</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.camera</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.mobiletimer</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.Passbook</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.weather</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>DisplayName</key>
                        <string>Reisen</string>
                        <key>Pages</key>
                        <array>
                            <array>
                                <dict>
                                    <key>BundleID</key>
                                    <string>com.deutschebahn.navigator</string>
                                    <key>Type</key>
                                    <string>Application</string>
                                </dict>
                                <dict>
                                    <key>BundleID</key>
                                    <string>com.deutschebahn.navigator.ipad</string>
                                    <key>Type</key>
                                    <string>Application</string>
                                </dict>
                                <dict>
                                    <key>BundleID</key>
                                    <string>com.hrs.app</string>
                                    <key>Type</key>
                                    <string>Application</string>
                                </dict>
                                <dict>
                                    <key>BundleID</key>
                                    <string>com.apple.Maps</string>
                                    <key>Type</key>
                                    <string>Application</string>
                                </dict>
                                <dict>
                                    <key>Type</key>
                                    <string>WebClip</string>
                                    <key>URL</key>
                                    <string>http://m.airberlin.com/de/</string>
                                </dict>
                            </array>
                        </array>
                        <key>Type</key>
                        <string>Folder</string>
                    </dict>
                    <dict>
                        <key>DisplayName</key>
                        <string>Zeitungen</string>
                        <key>Pages</key>
                        <array>
                            <array>
                                <dict>
                                    <key>Type</key>
                                    <string>WebClip</string>
                                    <key>URL</key>
                                    <string>http://m.sz.de</string>
                                </dict>
                                <dict>
                                    <key>Type</key>
                                    <string>WebClip</string>
                                    <key>URL</key>
                                    <string>http://m.faz.net</string>
                                </dict>
                                <dict>
                                    <key>Type</key>
                                    <string>WebClip</string>
                                    <key>URL</key>
                                    <string>http://mobil.stern.de</string>
                                </dict>
                                <dict>
                                    <key>Type</key>
                                    <string>WebClip</string>
                                    <key>URL</key>
                                    <string>http://news.google.de</string>
                                </dict>
                                <dict>
                                    <key>Type</key>
                                    <string>WebClip</string>
                                    <key>URL</key>
                                    <string>http://mobil.welt.de</string>
                                </dict>
                                <dict>
                                    <key>Type</key>
                                    <string>WebClip</string>
                                    <key>URL</key>
                                    <string>http://m.focus.de</string>
                                </dict>
                                <dict>
                                    <key>Type</key>
                                    <string>Web-Clip</string>
                                    <key>URL</key>
                                    <string>http://mobil.zeit.de</string>
                                </dict>
                                <dict>
                                    <key>Type</key>
                                    <string>WebClip</string>
                                    <key>URL</key>
                                    <string>http://m.spiegel.de</string>
                                </dict>
                            </array>
                        </array>
                        <key>Type</key>
                        <string>Folder</string>
                    </dict>
                </array>
                <array>
                    <dict>
                        <key>DisplayName</key>
                        <string>Extras</string>
                        <key>Pages</key>
                        <array>
                            <array>
                                <dict>
                                    <key>BundleID</key>
                                    <string>com.apple.calculator</string>
                                    <key>Type</key>
                                    <string>Application</string>
                                </dict>
                                <dict>
                                    <key>BundleID</key>
                                    <string>com.apple.MobileAddressBook</string>
                                    <key>Type</key>
                                    <string>Application</string>
                                </dict>
                                <dict>
                                    <key>BundleID</key>
                                    <string>com.apple.mobilenotes</string>
                                    <key>Type</key>
                                    <string>Application</string>
                                </dict>
                                <dict>
                                    <key>BundleID</key>
                                    <string>com.apple.stocks</string>
                                    <key>Type</key>
                                    <string>Application</string>
                                </dict>
                                <dict>
                                    <key>BundleID</key>
                                    <string>com.apple.VoiceMemos</string>
                                    <key>Type</key>
                                    <string>Application</string>
                                </dict>
                                <dict>
                                    <key>BundleID</key>
                                    <string>com.apple.compass</string>
                                    <key>Type</key>
                                    <string>Application</string>
                                </dict>
                                <dict>
                                    <key>Type</key>
                                    <string>WebClip</string>
                                    <key>URL</key>
                                    <string>http://help.apple.com/iphone/9/?lang=de</string>
                                </dict>
                                <dict>
                                    <key>Type</key>
                                    <string>WebClip</string>
                                    <key>URL</key>
                                    <string>http://help.apple.com/ipad/9/?lang=de</string>
                                </dict>
                            </array>
                        </array>
                        <key>Type</key>
                        <string>Folder</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.Preferences</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.adobe.Adobe-Reader</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.sonicomobile.languages</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                </array>
                <array>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.mobileme.fmip1</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.mobileme.fmf1</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.iBooks</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.facetime</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.AppStore</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.Health</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.MobileStore</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.Music</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.podcasts</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.gamecenter</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.Bridge</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.videos</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                    <dict>
                        <key>BundleID</key>
                        <string>com.apple.tips</string>
                        <key>Type</key>
                        <string>Application</string>
                    </dict>
                </array>
            </array>
            <key>PayloadDisplayName</key>
            <string>Homescreen Layout</string>
            <key>PayloadIdentifier</key>
            <string>com.apple.homescreenlayout.39C395E7-DDB0-46E4-B98E-923DE015A9C9</string>
            <key>PayloadType</key>
            <string>com.apple.homescreenlayout</string>
            <key>PayloadUUID</key>
            <string>39C395E7-DDB0-46E4-B98E-923DE015A9C9</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
        </dict>
    </array>
    <key>PayloadDisplayName</key>
    <string>Homescreen-Layout-Konfiguration</string>
    <key>PayloadIdentifier</key>
    <string>de.test.homescreenlayout</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>7E89B514-5392-45AC-B146-0C320236F421</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>


There were severeal mistakes in the apple documentation.

It should be the following:

In addition to the settings common to all payloads, this payload defines the following keys:

Key

Type

Value

Dock

Array

Optional. An array of dictionaries, each of which must conform to the icon dictionary format.

Pages

Array

Required. An array of arrays of dictionaries, each of which must conform to the icon dictionary format.


But there exists an issue with WebClips! It says "Unknown type 'WebClip'" and I testet several other spellings.

Apr 6, 2016 10:33 AM in response to LeviSkylen

Our MDM vendor provided me a test script that can be used as a custom setting for this:


<dict>
        <key>Dock</key>
        <array>
          <dict>
            <key>Type</key>
            <string>Application</string>
            <key>BundleID</key>
            <string>com.apple.MobileAddressBook</string>
          </dict>
        </array>
        <key>Pages</key>
        <array>
          <array>
            <dict>
              <key>Type</key>
              <string>Application</string>
              <key>BundleID</key>
              <string>com.apple.mobilecal</string>
            </dict>
            <dict>
              <key>Type</key>
              <string>Folder</string>
              <key>DisplayName</key>
              <string>Photography</string>
              <key>Pages</key>
              <array>
                <array>
                  <dict>
                    <key>Type</key>
                    <string>Application</string>
                    <key>BundleID</key>
                    <string>com.apple.mobileslideshow</string>
                  </dict>
                  <dict>
                    <key>Type</key>
                    <string>Application</string>
                    <key>BundleID</key>
                    <string>com.apple.camera</string>
                  </dict>
                </array>
              </array>
            </dict>
          </array>
          <array>
            <dict>
              <key>Type</key>
              <string>Application</string>
              <key>BundleID</key>
              <string>com.apple.Preferences</string>
            </dict>
          </array>
        </array>
        <key>PayloadDisplayName</key>
        <string>Home Screen Layout</string>
        <key>PayloadDescription</key>
        <string>HomeScreenLayout</string>
        <key>PayloadIdentifier</key>
        <string>47b294b1-c14c-4446-9299-e5349ef0705e.Home Screen Layout</string>
        <key>PayloadOrganization</key>
        <string></string>
        <key>PayloadType</key>
        <string>com.apple.homescreenlayout</string>
        <key>PayloadUUID</key>
        <string>d0dbcad2-d2ee-4901-83ef-1a65c9af6324</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
   </dict>


Just edit it as needed. It works fine for me.

Apr 6, 2016 10:54 AM in response to LeviSkylen

Just as a question, did you upload it as an XML or paste it in as a custom setting? Because the first time when I uploaded the config as a XML document it told me the same thing in AirWatch. Pasting directly worked for some reason. :/?

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Home screen layout profile

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.