sync-version.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import fs from "fs";
  2. import path from "path";
  3. export function updateVersion() {
  4. // 读取 package.json 版本
  5. const packageJson = JSON.parse(fs.readFileSync("./package.json", "utf8"));
  6. const version = packageJson.version;
  7. const rootDir = process.cwd();
  8. // 更新 Android 版本
  9. const androidBuildGradlePath = path.join(rootDir, "android/app/build.gradle");
  10. if (fs.existsSync(androidBuildGradlePath)) {
  11. let androidBuildGradle = fs.readFileSync(androidBuildGradlePath, "utf8");
  12. androidBuildGradle = androidBuildGradle.replace(
  13. /versionName\s+".*?"/,
  14. `versionName "${version}"`
  15. );
  16. fs.writeFileSync(androidBuildGradlePath, androidBuildGradle);
  17. } else {
  18. console.log("没有找到 Android build.gradle 文件。");
  19. }
  20. // 更新 iOS 版本
  21. const iosPlistPath = path.join(rootDir, "ios/App/App/Info.plist");
  22. if (fs.existsSync(iosPlistPath)) {
  23. let iosPlist = fs.readFileSync(iosPlistPath, "utf8");
  24. iosPlist = iosPlist.replace(
  25. /<key>CFBundleShortVersionString<\/key>\s*<string>.*?<\/string>/,
  26. `<key>CFBundleShortVersionString</key>\n\t<string>${version}</string>`
  27. );
  28. fs.writeFileSync(iosPlistPath, iosPlist);
  29. } else {
  30. console.log("没有找到iOS plist文件");
  31. }
  32. console.log(`✅ 版本号已同步至: ${version}`);
  33. return version;
  34. };