diff --git a/scripts/check-abi-filters.js b/scripts/check-abi-filters.js new file mode 100644 index 000000000..5c6a236a2 --- /dev/null +++ b/scripts/check-abi-filters.js @@ -0,0 +1,35 @@ +// scripts/check-abi-filters.js +const fs = require('fs'); +const path = require('path'); + +const gradlePath = path.join(process.cwd(), 'android', 'app', 'build.gradle'); +const lines = fs.readFileSync(gradlePath, 'utf8').split('\n'); + +const checks = [ + { + description: 'reactNativeArchitectures() default return', + match: line => + line.includes('return value ? value.split') && + line.includes('armeabi-v7a'), + }, + { + description: 'ndk { abiFilters }', + match: line => line.includes('abiFilters') && line.includes('armeabi-v7a'), + }, + { + description: 'versionCodes map', + match: line => + line.includes('def versionCodes') && line.includes('armeabi-v7a'), + }, +]; + +const failed = checks.filter(check => !lines.some(check.match)); + +if (failed.length > 0) { + console.error('\nandroid/app/build.gradle is missing armeabi-v7a in:'); + failed.forEach(c => console.error(` - ${c.description}`)); + console.error('\n See PR #2078 for reference\n'); + process.exit(1); +} + +console.log('ABI filters check passed (3/3)'); diff --git a/scripts/postinstall.sh b/scripts/postinstall.sh index 68d873062..06f9436b5 100755 --- a/scripts/postinstall.sh +++ b/scripts/postinstall.sh @@ -5,3 +5,4 @@ node ./scripts/mute-require-cycle-warnings.js node ./scripts/multi-modal-patch.js node ./scripts/git-commit-hash.js node ./scripts/generate-dkls-vendor.js +node ./scripts/check-abi-filters.js