Во время выполнения этого кода в среде iOS с джейлбрейком (11.3.1) новое значение DNS не сохраняется:
SCDynamicStoreRef store = SCDynamicStoreCreate(kCFAllocatorDefault, CFSTR("init_by_defaults_systemconfiguration"), NULL, NULL);
CFStringRef key = CFSTR("State:/Network/Global/DNS");
CFDictionaryRef dnsDict = (CFDictionaryRef)SCDynamicStoreCopyValue(store, key);
//Create new values
CFMutableDictionaryRef newdnsDict = CFDictionaryCreateMutableCopy(NULL,0,dnsDict);
CFMutableArrayRef newdnsServerAddresses = CFArrayCreateMutable(NULL,0,NULL);
CFArrayAppendValue(newdnsServerAddresses, CFSTR("8.8.8.8"));
CFArrayAppendValue(newdnsServerAddresses, CFSTR("8.8.4.4"));
CFDictionarySetValue(newdnsDict, CFSTR("ServerAddresses"), newdnsServerAddresses);
SCDynamicStoreSetValue(store, key, newdnsDict);
//Clean up
CFRelease(store);
CFRelease(key);
CFRelease(dnsDict);
CFRelease(newdnsServerAddresses);
CFRelease(newdnsDict);
Я знаю, что значение не сохраняется с момента запуска
scutil --dns
Я не вижу новые значения DNS.