- app.json: newArchEnabledをtrueに設定し、kotlinVersionを2.1.20に更新 - babel.config.js: lazyImportsを有効化し、react-native-reanimated/pluginを追加 - metro.config.js: experimentalImportSupportを有効化 - package.json: react-native-reanimated-carouselを4.0.3に更新 - 新しいプラグインwith-android-local-propertiesを追加 - 新しいドキュメントnew-architecture-migration-plan.mdを作成 - その他のファイルでの軽微な修正
37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
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;
|