Hoy vamos a crear un plugin que nos permitirá editar el manifest de Android a la hora de generar el build con Expo en React Native.

En este ejemplo añadiremos el ID de aplicación necesario para Google Admob.
Primero vamos a crear un archivo que llamaremos AdmobExtraConfigManifest.js (no importa si usas TypeScript, vamos a usar javascript en este archivo).
El contenido es:
const { withAndroidManifest } = require('@expo/config-plugins');
const withAdMobAppId = (config, { androidAppId }) => {
return withAndroidManifest(config, (config) => {
const appIdMetaData = {
$: {
'android:name': 'com.google.android.gms.ads.APPLICATION_ID',
'android:value': androidAppId,
},
};
const androidManifest = config.modResults;
const application = androidManifest.manifest.application[0]; // Acceder al primer objeto de la aplicación
// Inicializar meta-data si no existe
if (!application['meta-data']) {
application['meta-data'] = [];
}
// Comprobar si ya existe
const existingMetaDataIndex = application['meta-data'].findIndex(
(meta) => meta.$['android:name'] === 'com.google.android.gms.ads.APPLICATION_ID'
);
// Actualizar o agregar el meta-data
if (existingMetaDataIndex === -1) {
application['meta-data'].push(appIdMetaData);
} else {
application['meta-data'][existingMetaDataIndex] = appIdMetaData;
}
return config;
});
};
module.exports = (config, { androidAppId }) => {
return withAdMobAppId(config, { androidAppId });
};
Y ahora vamos a incluir este plugin dentro de nuestra configuración de Expo. Vamos a app.json y dentro de «plugins» añadimos:
"plugins": [
[
"./src/util/config/AdmobExtraConfigManifest.js",
{ "androidAppId": "ca-app-pub-NUESTRO_ID_DE_APP_REAL_ADMOB" }
]
],
En mi caso la ruta es src/util/config/, debes incluir correctamente la ruta a tu plugin creado.
Finalmente usaremos el comando expo prebuild que nos generará de nuevo los archivos de Android.
Podremos verificar que en Manifest ahora incluye el atributo com.google.android.gms.ads.APPLICATION_ID con el valor indicado en el apartado plugins de nuestro app.json.

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.