void Save() { UpdateDict(); File.WriteAllText(kXmlPath, build.ToXML()); BuildPlusSO bso = null; if (File.Exists(kAssetPath)) { bso = AssetDatabase.LoadAssetAtPath(kAssetPath, typeof(BuildPlusSO)) as BuildPlusSO; } else { bso = CreateInstance <BuildPlusSO>(); AssetDatabase.CreateAsset(bso, kAssetPath); } bso.build = Build.FromXML(build.ToXML()); // This makes a copy, which is needed when writing to disk bso.build.releaseNotes = GetReleaseNotes(); EditorUtility.SetDirty(bso); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); var v = bso.build.versions.First(x => !x.unreleased); var bundleVersion = $"{v.major}.{v.minor}.{v.build}"; if (build.editorSettings.saveToPlayerSettings) { PlayerSettings.bundleVersion = bundleVersion; } if (build.editorSettings.saveToPackageJson && File.Exists(build.editorSettings.packageJsonPath)) { var manifest = File.ReadAllText(build.editorSettings.packageJsonPath); var manifest2 = Regex.Replace(manifest, "\"version\": \"[0-9]*.[0-9]*.[0-9]*\"", $"\"version\": \"{bundleVersion}\""); File.WriteAllText(build.editorSettings.packageJsonPath, manifest2); } if (build.editorSettings.saveToChangelogMd) { var b = new ChangelogBuilder(build); b.Build(); } }
void Save() { File.WriteAllText(kXmlPath, build.ToXML()); BuildPlusSO bso = null; if (File.Exists(kAssetPath)) { bso = AssetDatabase.LoadAssetAtPath(kAssetPath, typeof(BuildPlusSO)) as BuildPlusSO; } else { bso = ScriptableObject.CreateInstance <BuildPlusSO>(); AssetDatabase.CreateAsset(bso, kAssetPath); } bso.build = Build.FromXML(build.ToXML()); // This makes a copy, which is needed when writing to disk bso.build.releaseNotes = GetReleaseNotes(); EditorUtility.SetDirty(bso); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); }