nikolaifrombonn

Q: 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

Close

Q: Home screen layout profile

  • All replies
  • Helpful answers

  • by Lindon.Thomas,Solvedanswer

    Lindon.Thomas Lindon.Thomas Mar 30, 2016 5:56 AM in response to nikolaifrombonn
    Level 1 (22 points)
    iPhone
    Mar 30, 2016 5:56 AM in response to nikolaifrombonn

    In line 87 of your XML script you have an orphan tag that isn't doing much of anything (It doesn't have a opening tag nor does it close anything) It's the <false/> tag.

  • by nikolaifrombonn,

    nikolaifrombonn nikolaifrombonn Mar 30, 2016 5:55 AM in response to Lindon.Thomas
    Level 1 (4 points)
    iPhone
    Mar 30, 2016 5:55 AM in response to Lindon.Thomas

    Thanks for that, but that was not the question. In addition this line was generated by Apple Configurator 2.

    But this profile isn't working, because of an error in Homescreenlayout payload.

  • by william81g,

    william81g william81g Apr 4, 2016 1:41 AM in response to Lindon.Thomas
    Level 1 (4 points)
    Apr 4, 2016 1:41 AM in response to Lindon.Thomas

    Do you know if there's a way to format this profile to push a folder onto the second home screen, rather than just the main home screen?

  • by LeviSkylen,

    LeviSkylen LeviSkylen Apr 6, 2016 10:26 AM in response to nikolaifrombonn
    Level 1 (4 points)
    Apr 6, 2016 10:26 AM in response to nikolaifrombonn

    Was this resolved? What was the solution? I have tried this format and a few others and I am getting the same error The required field “Pages” is missing. Does anyone have an example of file that works?

  • by Lindon.Thomas,

    Lindon.Thomas Lindon.Thomas Apr 6, 2016 10:33 AM in response to LeviSkylen
    Level 1 (22 points)
    iPhone
    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.

  • by LeviSkylen,

    LeviSkylen LeviSkylen Apr 6, 2016 10:51 AM in response to Lindon.Thomas
    Level 1 (4 points)
    Apr 6, 2016 10:51 AM in response to Lindon.Thomas

    Thanks for the fast response. I tried this in my xml but my MDM solution (MobileIron) won't accept it. I get an error that it not a valid file. I think I see what I was doing wrong before. I'll have to play around with this more.

  • by Lindon.Thomas,

    Lindon.Thomas Lindon.Thomas Apr 6, 2016 10:54 AM in response to LeviSkylen
    Level 1 (22 points)
    iPhone
    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. :/?

  • by LeviSkylen,

    LeviSkylen LeviSkylen Apr 6, 2016 11:09 AM in response to Lindon.Thomas
    Level 1 (4 points)
    Apr 6, 2016 11:09 AM in response to Lindon.Thomas

    My only option is to upload the file. Thanks for the example. I'll get it figured out.

  • by nikolaifrombonn,Helpful

    nikolaifrombonn nikolaifrombonn Apr 6, 2016 10:35 PM in response to nikolaifrombonn
    Level 1 (4 points)
    iPhone
    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.

  • by LeviSkylen,

    LeviSkylen LeviSkylen Apr 7, 2016 5:34 AM in response to nikolaifrombonn
    Level 1 (4 points)
    Apr 7, 2016 5:34 AM in response to nikolaifrombonn

    Awesome! That works. I modify this to fit our needs. Thanks!

  • by rbediwi_10,

    rbediwi_10 rbediwi_10 Aug 15, 2016 5:14 AM in response to LeviSkylen
    Level 1 (4 points)
    Aug 15, 2016 5:14 AM in response to LeviSkylen

    did you figure it out? mi wont parse the file for some reason.