BuildVersionProcessor.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using UnityEngine;
  2. using UnityEditor;
  3. using UnityEditor.Build;
  4. using UnityEditor.Build.Reporting;
  5. //版本号递增
  6. class BuildVersionProcessor : IPreprocessBuildWithReport
  7. {
  8. //是否在构建时触发BuildVersion递增
  9. private bool autoIncreamentBuildVersion = false;
  10. public int callbackOrder { get => 0; }
  11. public void OnPreprocessBuild(BuildReport report)
  12. {
  13. if (autoIncreamentBuildVersion) IncrementVersion();
  14. }
  15. [MenuItem("File/手动递增 Build Version", priority = 1)]
  16. public static void ButtonIncrementVersion()
  17. {
  18. IncrementVersion();
  19. }
  20. private static void IncrementVersion()
  21. {
  22. string versionCurrent = Application.version;
  23. string[] versionParts = versionCurrent.Split('.');
  24. if (versionParts != null && versionParts.Length > 0)
  25. {
  26. int versionNumber = int.Parse(string.Join("", versionParts));
  27. versionNumber += 1;
  28. char[] versionNumberChars = versionNumber.ToString().ToCharArray();
  29. string versionText = string.Join(".", versionNumberChars);
  30. PlayerSettings.bundleVersion = versionText;
  31. Debug.Log("Build Version " + versionCurrent + " => " + PlayerSettings.bundleVersion);
  32. }
  33. else
  34. {
  35. Debug.Log("Version has no data, check Unity - Player Settings - Version, input box at top.");
  36. }
  37. }
  38. [MenuItem("File/手动递增 Android Version Code", priority = 1)]
  39. public static void ButtonIncrementAndroidVersionCode()
  40. {
  41. int oldVersionCode = PlayerSettings.Android.bundleVersionCode;
  42. PlayerSettings.Android.bundleVersionCode = oldVersionCode + 1;
  43. Debug.Log("Android Version Code " + oldVersionCode + " => " + PlayerSettings.Android.bundleVersionCode);
  44. }
  45. }