internal static VersionIncrementorSettings GetOrCreateSettings() { VersionIncrementorSettings settings = AssetDatabase.LoadAssetAtPath <VersionIncrementorSettings>(GetSettingFilePath()); if (settings == null) { /* Create and make sure the directory exits. */ if (!AssetDatabase.IsValidFolder("Assets/Editor")) { string guid = AssetDatabase.CreateFolder("Assets", "Editor"); } if (!AssetDatabase.IsValidFolder("Assets/Editor/com.linuxsenpai.versionincrementer")) { string guid1 = AssetDatabase.CreateFolder("Assets/Editor", "com.linuxsenpai.versionincrementer"); } /* Create default setting object. */ settings = ScriptableObject.CreateInstance <VersionIncrementorSettings>(); settings.increment_on_play = true; settings.increment_on_build = true; settings.m_major = 0; settings.m_minor = 0; settings.m_patch = 0; settings.m_releaseStates = ReleaseState.PreAlpha; AssetDatabase.CreateAsset(settings, GetSettingFilePath()); AssetDatabase.SaveAssets(); } return(settings); }
static void IncrementVersion(int majorIncr, int minorIncr, int buildIncr) { VersionIncrementorSettings settings = null; try{ settings = VersionIncrementorSettings.GetOrCreateSettings(); /* Increment the the version. */ settings.MajorVersion += majorIncr; settings.MinorVersion += minorIncr; settings.PatchVersion += buildIncr; /* Update project version settings. */ PlayerSettings.bundleVersion = settings.Version; PlayerSettings.Android.bundleVersionCode = settings.MajorVersion * 10000 + settings.MinorVersion * 1000 + settings.PatchVersion; }finally{ /* Update version settings object. */ if (settings != null) { EditorUtility.SetDirty(settings); } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } }
public override void OnGUI(string searchContext) { m_VersionIncrementorSettings.Update(); // Use IMGUI to display UI: var indent = EditorGUI.indentLevel; EditorGUI.indentLevel++; EditorGUILayout.LabelField(Styles.settingLabel, EditorStyles.boldLabel); EditorGUI.indentLevel++; EditorGUILayout.PropertyField(m_VersionIncrementorSettings.FindProperty("increment_on_play"), Styles.incrementOnPlay); EditorGUILayout.PropertyField(m_VersionIncrementorSettings.FindProperty("increment_on_build"), Styles.incrementOnBuild); EditorGUI.indentLevel = indent + 1; EditorGUILayout.LabelField(Styles.version, EditorStyles.boldLabel); EditorGUI.indentLevel++; EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(m_VersionIncrementorSettings.FindProperty("m_major")); EditorGUILayout.PropertyField(m_VersionIncrementorSettings.FindProperty("m_minor")); EditorGUILayout.PropertyField(m_VersionIncrementorSettings.FindProperty("m_patch")); EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(m_VersionIncrementorSettings.FindProperty("m_releaseStates"), Styles.ReleaseState); EditorGUI.indentLevel = indent; VersionIncrementorSettings settings = (VersionIncrementorSettings)m_VersionIncrementorSettings.targetObject; if (m_VersionIncrementorSettings.hasModifiedProperties) { if (!settings.isValidVersion()) { //TODO add logic for informing. } } m_VersionIncrementorSettings.ApplyModifiedProperties(); }
static void RunOnce() { /* */ EditorApplication.update -= RunOnce; /* */ if (VersionIncrementorSettings.GetOrCreateSettings().updatedOnPlay) { ReadVersionAndIncrement(); } }
static void ReadVersionAndIncrement() { IncrementVersion(0, 0, 1); VersionIncrementorSettings settings = VersionIncrementorSettings.GetOrCreateSettings(); /* Display the information. */ if (settings != null) { Debug.Log("Major, Minor, SubMinor, SubVerLetter: " + settings.MajorVersion + " " + settings.MinorVersion + " " + settings.PatchVersion + " " + settings.State.ToString()); } }
public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) { /* Updated patch by default whe updating. */ if (VersionIncrementorSettings.GetOrCreateSettings().updateOnBuild) { IncreaseBuild(); } /* */ Debug.Log("Build v:" + PlayerSettings.bundleVersion + " (" + PlayerSettings.Android.bundleVersionCode + ")"); }
public static SettingsProvider CreateVersionIncrementorSettingsProvider() { if (!IsSettingsAvailable()) { VersionIncrementorSettings.GetOrCreateSettings(); } SettingsProvider provider = new VersionIncrementorSettingsProvider("Project/Version Incrementer Settings", SettingsScope.Project); provider.keywords = GetSearchKeywordsFromGUIContentProperties <Styles>(); return(provider); }
private static void SetReleaseState(VersionIncrementorSettings.ReleaseState state) { VersionIncrementorSettings settings = null; try { settings = VersionIncrementorSettings.GetOrCreateSettings(); settings.setState(state); PlayerSettings.bundleVersion = settings.Version; PlayerSettings.Android.bundleVersionCode = settings.MajorVersion * 10000 + settings.MinorVersion * 1000 + settings.PatchVersion; } finally { /* Update version settings object. */ if (settings != null) { EditorUtility.SetDirty(settings); } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } }
public override void OnActivate(string searchContext, VisualElement rootElement) { m_VersionIncrementorSettings = VersionIncrementorSettings.GetSerializedSettings(); }
public static bool IsSettingsAvailable() { return(File.Exists(VersionIncrementorSettings.GetSettingFilePath())); }