1
This commit is contained in:
69
Unity/Scripts/Editor/VersionUpdater.cs
Normal file
69
Unity/Scripts/Editor/VersionUpdater.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using UnityEditor;
|
||||
using UnityEditor.Build;
|
||||
using UnityEditor.Build.Reporting;
|
||||
using UnityEngine;
|
||||
using UnityEditor.Callbacks;
|
||||
using System.IO;
|
||||
using BITModel;
|
||||
using Newtonsoft.Json;
|
||||
namespace BITKit
|
||||
{
|
||||
public class BuildPostprocessor
|
||||
{
|
||||
[PostProcessBuild(1)]
|
||||
public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject)
|
||||
{
|
||||
Package package = new();
|
||||
FileInfo fileInfo = new(pathToBuiltProject);
|
||||
var directoryName = Path.GetDirectoryName(pathToBuiltProject);
|
||||
var packagePath = Path.Combine(directoryName, "Config.json");
|
||||
|
||||
package.AppName = Path.GetFileName(pathToBuiltProject);
|
||||
package.DirectoryPath = directoryName;
|
||||
package.Version = Application.version;
|
||||
package.Name = Application.productName;
|
||||
package.ProcessName = fileInfo.Name.Replace(fileInfo.Extension,string.Empty);
|
||||
package.ProductName = Application.productName;
|
||||
|
||||
File.WriteAllText(packagePath, JsonConvert.SerializeObject(package, Formatting.Indented));
|
||||
}
|
||||
}
|
||||
class BuildVersionProcessor : IPreprocessBuildWithReport
|
||||
{
|
||||
private bool autoIncreamentBuildVersion = true;
|
||||
|
||||
public int callbackOrder { get { return 0; } }
|
||||
public void OnPreprocessBuild(BuildReport report)
|
||||
{
|
||||
//Debug.Log("MyCustomBuildProcessor.OnPreprocessBuild for target " + report.summary.platform + " at path " + report.summary.outputPath);
|
||||
if (autoIncreamentBuildVersion) { IncrementVersion(); }
|
||||
}
|
||||
|
||||
[MenuItem("File/Manually Increment Build Version", priority = 1)]
|
||||
public static void ButtonIncrementVersion()
|
||||
{
|
||||
Debug.Log("Button Increment Version called.");
|
||||
IncrementVersion();
|
||||
}
|
||||
|
||||
private static void IncrementVersion()
|
||||
{
|
||||
string versionCurrent = Application.version;
|
||||
string[] versionParts = versionCurrent.Split('.');
|
||||
|
||||
if (versionParts != null && versionParts.Length > 0)
|
||||
{
|
||||
int versionIncremented = int.Parse(versionParts[versionParts.Length - 1]);
|
||||
versionIncremented += 1;
|
||||
versionParts[versionParts.Length - 1] = versionIncremented.ToString();
|
||||
PlayerSettings.bundleVersion = string.Join(".", versionParts);
|
||||
|
||||
Debug.Log("Version: " + versionCurrent + " increased to: " + PlayerSettings.bundleVersion);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log("Version has no data, check Unity - Player Settings - Version, input box at top.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user