Files
mobile-darmasaba/plugins/withRemoveMediaPermissions.js
amaliadwiy 8df5b48578 fix: gunakan tools:node=remove agar Gradle merger hapus READ_MEDIA_IMAGES/VIDEO dari semua library manifest
Filter sebelumnya hanya menghapus dari app manifest, tapi expo-image-picker
menyuntikkan permission lewat library manifest-nya sendiri saat Gradle build.
2026-06-03 13:41:00 +08:00

38 lines
1.1 KiB
JavaScript

const { withAndroidManifest } = require('@expo/config-plugins');
const BLOCKED_PERMISSIONS = [
'android.permission.READ_MEDIA_IMAGES',
'android.permission.READ_MEDIA_VIDEO',
];
const withRemoveMediaPermissions = (config) =>
withAndroidManifest(config, (config) => {
const manifest = config.modResults.manifest;
// Pastikan xmlns:tools ada di manifest root
if (!manifest.$['xmlns:tools']) {
manifest.$['xmlns:tools'] = 'http://schemas.android.com/tools';
}
// Hapus entry yang ada (apapun atributnya)
const existing = manifest['uses-permission'] ?? [];
manifest['uses-permission'] = existing.filter(
(perm) => !BLOCKED_PERMISSIONS.includes(perm.$?.['android:name'])
);
// Tambahkan entry dengan tools:node="remove" agar Gradle merger
// membuang permission ini dari SEMUA sumber (termasuk library manifests)
for (const permission of BLOCKED_PERMISSIONS) {
manifest['uses-permission'].push({
$: {
'android:name': permission,
'tools:node': 'remove',
},
});
}
return config;
});
module.exports = withRemoveMediaPermissions;