function overwritePrivacyManifest()

in lib/prepare.js [105:125]


function overwritePrivacyManifest (manifest, locations) {
    const privacyManifestDest = path.join(locations.xcodeCordovaProj, 'PrivacyInfo.xcprivacy');
    if (manifest != null) {
        const XML_DECLARATION = '<?xml version="1.0" encoding="UTF-8"?>\n';
        const DOCTYPE = '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n';
        const plistElement = et.Element('plist');
        plistElement.set('version', '1.0');
        const dictElement = et.SubElement(plistElement, 'dict');
        manifest.getchildren().forEach((child) => {
            dictElement.append(child);
        });
        const etree = new et.ElementTree(plistElement);
        const xmlString = XML_DECLARATION + DOCTYPE + etree.write({ xml_declaration: false });
        fs.writeFileSync(privacyManifestDest, xmlString, 'utf-8');
        return;
    }
    // Set default privacy manifest
    const defaultPrivacyManifest = path.join(__dirname, '..', 'templates', 'project', 'App', 'PrivacyInfo.xcprivacy');
    const xmlString = fs.readFileSync(defaultPrivacyManifest, 'utf8');
    fs.writeFileSync(privacyManifestDest, xmlString, 'utf-8');
}