Подтвердить что ты не робот

Использование MDM для настройки корпоративного приложения через NSUserDefaults

Я использую диспетчер профилей в OS X Server 3.0.1 на 10.9, чтобы перенаправить мое корпоративное приложение на управляемое устройство под управлением iOS7. Это хорошо работает, и я также могу настроить параметры конфигурации устройства.

Мой дорожный блок - это то, как взять информацию, представленную в проекте Apple, ManagedAppConfig и применить ее к приложению, распространяемому диспетчером профилей.

ManagedAppConfig предоставляет простой plist, который должен использоваться для размещения данных в приложении NSUserDefaults, который затем используется для настройки приложения; но нет указания, как использовать MDM, чтобы получить этот словарь данных в NSUserDefaults.

Мне явно не хватает информации о том, как отправить данные данных в управляемое приложение NSUSerDefaults, но до сих пор мой поиск был бесплодным. Возможно ли это с менеджером профиля? Есть ли другой способ с OS X Server, который я еще не нашел?

Вот цитата из документа Apple по ManagedAppConfig:

"ManagedAppConfig" демонстрирует, как реализовать управляемое приложение конфигурации и обратной связи в приложении iOS. Эта функциональность позволяет серверу управления мобильными устройствами (MDM) вниз словарь в управляемое приложение NSUserDefaults для цели удаленной настройки параметров.

Здесь пример plist с двумя частями данных, которые каким-то образом помещены в приложение NSUserDefaults:

<?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>serverURL</key>
    <string>http://developer.apple.com/</string>
    <key>disableCloudDocumentSync</key>
    <true/>
</dict>
</plist>

docs для NSUserDefaults даже упоминает конфигурацию через MDM, но специфика не указана.

Если ваше приложение поддерживает управляемые среды, вы можете использовать Объект NSUserDefaults для определения того, какие предпочтения управляются администратора в интересах пользователя. Управляемые среды соответствуют компьютерным лабораториям или классам, где администратор или учитель может захотеть настроить системы определенным образом. В эти ситуации, учитель может установить набор дефолтов предпочтения и принудительные предпочтения пользователей. Если предпочтение таким образом, приложения должны помешать пользователям редактировать это предпочтение, отключив любые соответствующие элементы управления.

Мой день был проведен, преследуя эту неуловимую часть информации без успеха, поэтому я прошу помощи сообщества SO. Может ли кто-нибудь указать мне информацию, которую мне нужно использовать MDM, чтобы вставить словарь данных в NSUserDefaults?

Большое спасибо.

4b9b3361

Ответ 1

Я написал небольшое сообщение в блоге о том, как вы собираетесь тестировать ManagedAppConfig от Apple.

http://tomasmcguinness.com/2014/03/07/exploring-apples-managedappconfig-demo/

Раскрытие: В этом сообщении описывается использование www.testmdmapp.com, который я написал.

Ответ 2

Изменения управляемой конфигурации приложения, которые отбрасываются с сервера MDM, отображаются в NSUSerDefaults, поэтому вы можете добавить наблюдателя для уведомления о любых изменениях в NSUSerDefaults. Словарь управляемых приложений, нажатый с сервера MDM, хранится в ключе с именем: com.apple.configuration.managed

Ваше приложение также может отправлять словарь с отзывами на сервер MDM. Словарь, который отправляется обратно на сервер MDM в качестве обратной связи, должен храниться в этом ключе com.apple.feedback.managed

Чтобы проверить все это, вам понадобится устройство, управляемое сервером MDM, и приложение должно быть установлено сервером MDM, который поддерживает настройки ApplicationConfiguration и ManagedApplicationFeedback.

Пример файла readme.txt приложения рекомендуется посмотреть на сессию WWDC 2013 "Расширение приложений для предприятий и использования в целях образования" для демонстрации этого приложения.

Ответ 3

чтобы прочитать конфигурацию (swift 3):

if let managedConf = UserDefaults.standard.object(forKey: "com.apple.configuration.managed") as? [String:Any?] {
    if let serverURL = managedConf["serverURL"] as? String{
        return serverURL
    }
}
if let serverURL = Bundle.main.object(forInfoDictionaryKey: "serverURL") as? String {
    return serverURL
}
return  "https://apple.com/"

как вы можете видеть - приложение должно вручную включить чтение из конфигурации пула MDM.

Р, S: только управляемые приложения могут получить эти конфиги.