Files
RoomAwareVR/Assets/Editor/EditorUtils/BuildIncrementer/BuildIdIncrementer.cs
T
2025-05-26 00:46:28 +02:00

61 lines
1.5 KiB
C#

// #define AUTO_INCREMENT_BUILD
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
#if AUTO_INCREMENT_BUILD
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
#endif
public class BuildIdIncrementer : IPreprocessBuildWithReport, IPostprocessBuildWithReport
{
public int callbackOrder => 0;
#if AUTO_INCREMENT_BUILD
/// <summary>
/// The version code to increment. Determines the index of the version number to increment.
/// </summary>
int m_VersionCode = 2;
bool m_UpdatingBuildId = false;
#endif
public void OnPostprocessBuild(BuildReport report)
{
#if AUTO_INCREMENT_BUILD
if(m_UpdatingBuildId)
{
m_UpdatingBuildId = false;
XRMultiplayer.Utils.Log($"Build Auto Updated: {PlayerSettings.bundleVersion}");
}
#endif
}
public void OnPreprocessBuild(BuildReport report)
{
#if AUTO_INCREMENT_BUILD
m_UpdatingBuildId = true;
string[] currentVersion = Application.version.Split('.');
if (currentVersion.Length == m_VersionCode + 1)
{
if (int.TryParse(currentVersion[m_VersionCode], out int result))
{
result++;
}
PlayerSettings.bundleVersion = $"{currentVersion[0]}.{currentVersion[1]}.{result}";
#if UNITY_ANDROID
PlayerSettings.Android.bundleVersionCode = result;
#endif
}
XRMultiplayer.Utils.Log($"Updating Build ID: {PlayerSettings.bundleVersion}");
#endif
}
}