in lib/prepare.js [1344:1391]
function writeATSEntries (config) {
const pObj = processAccessAndAllowNavigationEntries(config);
const ats = {};
for (const hostname in pObj) {
if (Object.prototype.hasOwnProperty.call(pObj, hostname)) {
const entry = pObj[hostname];
// Guiding principle: we only set values if they are available
if (hostname === '*') {
// always write this, for iOS 9, since in iOS 10 it will be overriden if
// any of the other three keys are written
ats.NSAllowsArbitraryLoads = true;
// at least one of the overriding keys is present
if (entry.NSAllowsArbitraryLoadsInWebContent) {
ats.NSAllowsArbitraryLoadsInWebContent = true;
}
if (entry.NSAllowsArbitraryLoadsForMedia) {
ats.NSAllowsArbitraryLoadsForMedia = true;
}
if (entry.NSAllowsLocalNetworking) {
ats.NSAllowsLocalNetworking = true;
}
continue;
}
const exceptionDomain = {};
for (const key in entry) {
if (Object.prototype.hasOwnProperty.call(entry, key) && key !== 'Hostname') {
exceptionDomain[key] = entry[key];
}
}
if (!ats.NSExceptionDomains) {
ats.NSExceptionDomains = {};
}
ats.NSExceptionDomains[hostname] = exceptionDomain;
}
}
return ats;
}