Каждый раз, когда приложение ios запускается, мы читаем config, отправленный из MDM, чтобы использовать их.Если пользователь изменяет конфигурацию, мы сохраняем ее в локальном хранилище, поскольку словарь «UserDefaults», в котором MDM записывает конфигурацию, доступен только для чтения.Теперь у нас есть конфигурация из MDM в «UserDefaults» и пользователь обновил конфигурацию в локальном хранилище.Так что теперь, если мы будем использовать обновленную пользователем конфигурацию из локального хранилища, тогда конфигурация MDM будет игнорироваться, даже если новые конфигурации были перенесены из MDM снова.
Поскольку мы не получаем никакой информации или уведомлений об изменениях в конфигурации MDM.Так что, если мы используем отредактированный пользователем конфиг, то обновленные конфиги будут игнорироваться.
Я пытался использовать наблюдатель значения ключа, как показано ниже,
[[NSUserDefaults standardUserDefaults] addObserver:self
forKeyPath:kConfigurationServerURLKey
options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if (object == [NSUserDefaults standardUserDefaults]) {
NSLog(@"%s %@ %@", __func__, keyPath, change);
} else {
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
}
наблюдатьValueForKeyPath функция никогда не вызывается при повторном нажатии приложенияиз МДМ.если приложение вносит изменения в ключ по умолчанию пользователя с помощью таймера, тогда метод наблюдателя получает вызов, но не тогда, когда приложение выталкивается из MDM с новыми конфигами.
Есть ли способ сделать это.Потому что согласно сценарию использования я хочу разрешить пользователю редактировать конфиги, а также обновлять конфиг, если они снова выталкиваются из MDM