const { withDangerousMod } = require("@expo/config-plugins"); const fs = require("fs"); const path = require("path"); const os = require("os"); /** * Generates android/local.properties with sdk.dir during prebuild. * Tries ANDROID_HOME env var first, then common locations. */ const withAndroidLocalProperties = (config) => { return withDangerousMod(config, [ "android", async (config) => { const androidDir = path.join(config.modRequest.projectRoot, "android"); const localPropertiesPath = path.join(androidDir, "local.properties"); const sdkDir = process.env.ANDROID_HOME || process.env.ANDROID_SDK_ROOT || path.join(os.homedir(), "android-sdk"); if (fs.existsSync(sdkDir)) { fs.writeFileSync(localPropertiesPath, `sdk.dir=${sdkDir}\n`); console.log(`[withAndroidLocalProperties] sdk.dir=${sdkDir}`); } else { console.warn( `[withAndroidLocalProperties] Android SDK not found at ${sdkDir}. Set ANDROID_HOME.` ); } return config; }, ]); }; module.exports = withAndroidLocalProperties;