Table of Contents


Introduction

In this article, we demonstrate how you can easily wrap an OS X App for Distribution via System Center Configuration Manager. The Wrapped App can later be deployed as an Application to managed Mac Devices.

For the Wrapping, you need a Windows device to install the Mac Client Installer and a Mac Device to perform the actual Wrapping.

Getting CMAppUtil

CMAppUtil, which we use for the Wrapping-Process, is part of the ConfigMgr Mac Client. The Mac Client can be found on Microsoft Download as part of the Clients for Additional Operating Systems.

Download the ConfigmgrMacClient.msi

Install the "System Center Configuration Manager for Mac client Setup" on a Test device.

Copy the installed dmg file to a Mac OS X Device. The file is located at:

C:\Program Files (x86)\Microsoft\System Center Configuration Manager for Mac client\macclient.dmg

Open macclient.dmg on the Mac.

Copy the Tools folder to a place on the Mac. We use the Desktop for this example.

Getting the Apps

In this example, we will wrap Google Chrome and Citrix Receiver. Whichever app you are going to wrap, CMAppUtil supports the following formats:

As you see the installers for the two applications that we choose to look at are a bit different. Google Chrome is a native app (.app) which can just be put into the Applications Folder. Citrix Receiver, however, is an iInstaller (.pkg).

Wrapping a .app file (Google Chrome)


Open Terminal on the Mac and navigate into the Tools folder where CMAppUtil is located. You can use 'cd' to change directories and 'ls' to list the content of the present directory.

Use the following command to start the Wrapping process. Adjust the path if needed.

./CMAppUtil -c "/Users/macbookpro/Desktop/googlechrome.dmg" -o "/Users/macbookpro/Desktop/Wrapped/"

After a short while, the Wrapping Process should complete with the above message. If the dmg file is opened during the wrapping, ignore it.

Your app should now be available in the specified Output Directory in the .cmmac format, as on the screen above.

Wrapping a .pkg App (Citrix Receiver)

The process of wrapping a .pkg file is exactly the same as in the example above. However, here we have the situation, that the specified .dmg has two executables in it. CMAppUtil will pause the wrapping and ask, you as seen above, to choose the correct installer. In this example 1.

After a short while, the Wrapping should complete, leaving you with another .cmmac file in the Output Directory.

In case if you need to convert all the applications inside the .dmg file then use -a property at the end.

./CMApputil -c "path to .dmg" -o "destination location" -a

When converting if you see any issue like the below screen then use -s property to force create .cmmac without any detection.xml file. In this case, we need to explicitly create detection method manually in the SCCM console.

If you want to review the detection.xml file created using CMApputil which is wrapped inside the CMMAC file using terminal then use -r property.

./CMApputil -r "path to .cmmac file"

Analyzing the .cmmac file

At last, let's have a closer look at what CMAppUtil has exactly done with the wrapped Application.

The .cmaac is an Archive File which can be openedeate detection method manually in the SCCM console.

contents: Contains the original, unmodified Installation File. In this example either "Google Chrome.app" or "Install Citrix Receiver.pkg"

Metadata: Contains a file called Detection.xml

The Detection.xml contains, as the name implies, the Detection Method which is mandatory for creating an Application in ConfigMgr. It also contains some basic Installation Parameter as where to install the Application. Those Settings are automatically being used when importing the .cmmac file into ConfigMgr