Managed App Configuration Best Practices

Learn the basics of Managed App Configuration and how your app users could benefit

Overview

Integrations with Jamf fit into three different categories, deployment guides, configurations and integrations. This article focuses on configurations and how you can build an app that's configurable via Managed App Configuration.

What is App Config?

Managed App Configuration, commonly referred to simply as App Config, allows iOS app developers to customize the app and app user experience when paired with a Mobile Device Management (MDM) solution such as Jamf.

Apple introduced App Configuration in iOS 7 and demand for enterprise apps to support this functionality has grown as Apple devices continue to permeate the enterprise work space. App Config allows MDM solutions to remotely deliver data to a managed device, which can be used by the app to customize the user experience or app behavior.

Why is App Config Valuable?

Building a single app that can be deployed and customized to meet the needs of all your consumers reduces the longterm cost and maintenance of app development. Apps that support App Config will continue to function as originally designed for general consumer use cases, while in enterprise deployments they can be extended to support more customized workflows or environments.

Use Cases

The list of use cases is infinite, but here are a few to help you imagine how supporting App Config within your app could improve the experience of users in an enterprise environment.

UI Customizations

Enterprise organizations often like to rebrand apps to match the branding of their own organization. Instead of building an app for each organization, App Config allows organizations to specify the colors, text or other UI elements that may be unique to their organization.

These changes don't necessarily need to be limited to the look and feel of the app, they can also fundamentally change the behavior or experience of the app. Consider an app that requires connectivity to a server tenant owned by the organization. Rather than prompting a user to input the information themselves, this information could be provided by the MDM server via App Config, making the setup process invisible to the consumer.

Access to User and Device Information

Apple limits the scope of what data apps have access to on iOS devices, for privacy purposes. Having access to information such as device serial number, UDID or even the user the device has been assigned to, can enable app workflows that may not be possible without MDM and App Config. The MDM framework allows for collection of a plethora of data points not available to apps installed directly on a device, and many of these can be made available to the app via App Config. Skip ahead to the section on Jamf Pro and Jamf School Configurations for more information about the data available from each product and how you can supply that information to your app.

Resources

Now that we understand the premise of App Config, it's time to ideate on how your app could leverage the technology to streamline app deployments in the enterprise. Jamf's Technology Partner Program provides you with access to a team dedicated to helping developers like you, provide valuable solutions that enable Apple in an enterprise ecosystem. Included in your membership to the program is access to a Jamf instance, which will allow you to test and validate your implementation of App Config.

In addition to the resources that Jamf provides, you'll find the following resources essential for building and supporting App Config within your app.

appconfig.org - The central hub that connects app developers, resources and MDM vendors.

Apple's Developer Documentation - Learn how to build support for App Config into your app, including code samples.

Publication

Congratulations, you’ve implemented App Config into your application for an enhanced admin or end-user experience! Now that your app supports this standard, it’s important to take a few steps to make it easy for administrators to deploy this configuration file, and become aware that your app supports it.

  1. Create an AppConfig Spec file with the Spec Creator.
    1. This describes valid input for your appconfig, and makes generating the appconfig easier.
    2. The result of this is an XML file.
  2. Upload the XML file into the AppConfig Generator or the new Beta version.
    1. This will present a GUI that is helpful for administrators generating this configuration file.
    2. Test this AppConfig in an MDM to ensure it works. Here is documentation on AppConfig for admins in Jamf Pro and Jamf School.
  3. Email the correct spec file to [email protected] to get it listed in the AppConfig generator.
    1. This makes it easy for admins to identify apps that support AppConfig, and configure them accurately.

Jamf Pro and Jamf School Configurations

Jamf Pro and Jamf School require slightly different XML files when importing app configuration data for deployment to managed devices. Jamf Pro works best when supplying the content contained within the <dict> tags of the generated XML. Jamf School works best when supplying the content contained within the <plist> tags of the generated XML. See the code snippets below for a sample app configuration and how they should differ when supplied to each MDM solution.

<dict>
  <key>SampleKey</key>
  <string>SampleValue</string>
</dict>
<plist>
  <dict>
    <key>SampleKey</key>
    <string>SampleValue</string>
  </dict>
</plist>

In addition to the XML structure differences, the list of available variables as well as how those variables are called differs slightly between products. Generally speaking, Jamf School uses a format similar to %VariableName% while Jamf Pro uses a format similar to $VARIABLENAME. For the latest information and a complete list of supported variables, please review the documentation for each product.
Jamf Pro Payload Variables
Jamf School Payload Variables

Best Practices

Below are a collection of tips and considerations that we've found to be helpful when preparing your listing for the Jamf Marketplace.

  • Validate the app can be deployed and configured in your NFR environment.
  • Include sample XML payloads supported by your app, as well as recommended values.
  • Take screenshots to include in your deployment guide.
  • Document any prerequisites, such as minimum compatible OS or app versions.
  • Host supporting documentation on your website, in a publicly accessible location.
  • Redeploy your application and validate existing documentation is up to date at least once per year.