Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MDM] Create a simple MDM/AppConfig/specfile.xml #272

Merged
merged 7 commits into from
Feb 28, 2019
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions MDM/AppConfig/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## AppConfig how to

### Managed App Config
Starting with iOS7, Apple has added support for managed application configuration. MDM server can push configuration to the app. The app can the access the configuration using NSUserDefaults class. The configuration is basically a key-value dictionary provided as .plist file.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a typo:
Remove the before access

The app can access the configuration using NSUserDefaults class.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hosy Thanks for pointing out. Fixed.


### AppConfig XML Schema
The XML format developed by AppConfig community, makes it easy for developers to define and deploy app configuration. It is not only defining the configuration variables with default value but also provides a configuration UI description which can be interpreted by the tool which generates a plist file. Moreover, specfile XML is consistently supported by major EMM vendors.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure, but maybe it should be like this:

The XML format developed by AppConfig community, makes it easy for developers to define and deploy an app configuration. It is not only defining the configuration variables with default values but also provides a configuration UI description which can be interpreted by the tool which generates a plist file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hosy Fixed.


### Example: Deployment with MobileIron
1. Open AppConfig Generator: https://appconfig.jamfresearch.com
2. Upload a specfile.xml
3. Change configuration options
4. Download generated plist file (ManagedAppConfig)
5. Open MobileIron Core
6. Navigate to "Policies and Configs" -> "Add New" -> "Apple" -> "iOS/tvOS" -> "Managed App Config"
7. Upload generated plist and specify name, bundle ID and description

### References
- <https://www.appconfig.org>
- <https://developer.apple.com/business/documentation/MDM-Protocol-Reference.pdf>

36 changes: 36 additions & 0 deletions MDM/AppConfig/minimal-specfile.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<managedAppConfiguration>
<version>1</version>
<bundleId>com.owncloud.ios-app</bundleId>
<dict>
<string keyName="bookmark.default-url">
<defaultValue>
<value>ios.owncloud-demo.com</value>
</defaultValue>
</string>
<boolean keyName="bookmark.url-editable">
</boolean>
</dict>
<presentation defaultLocale="en-US">
<fieldGroup>
<name>
<language value="en-US">Bookmark Setttings</language>
</name>
<field keyName="bookmark.default-url" type="input">
<label>
<language value="en-US">Default Server URL</language>
</label>
<description>
<language value="en-US">Allows to define default server URL</language>
</description>
</field>
<field keyName="bookmark.url-editable" type="checkbox">
<label>
<language value="en-US">Server URL changeable</language>
</label>
<description>
<language value="en-US">Enables or disables changing server URL</language>
</description>
</field>
</fieldGroup>
</presentation>
</managedAppConfiguration>