addMetaDataInManifest function
void
addMetaDataInManifest(
{ - required String metaName,
- required String metaValue,
})
Implementation
void addMetaDataInManifest({required String metaName, required String metaValue}) async {
if (metaName.isEmpty && metaValue.isEmpty) return;
final file = File('android/app/src/main/AndroidManifest.xml');
final document = XmlDocument.parse(await file.readAsString());
final application = document.getElement('manifest')?.getElement('application');
if (application == null) {
print('Application tag not found');
return;
}
final exists = application
.findElements('meta-data')
.any((element) => element.getAttribute('android:name') == metaName);
if (exists) {
return;
}
final builder = XmlBuilder();
builder.element('meta-data', nest: () {
builder.attribute('android:name', metaName);
builder.attribute('android:value', metaValue);
});
application.children.add(builder.buildFragment());
await file.writeAsString(document.toXmlString(pretty: true));
}