private static BuildMetaInfo GetBuildMetaInfo() { BuildMetaInfo instance = BuildMetaInfo.Instance; if (instance != null) { return(instance); } instance = ScriptableObject.CreateInstance <BuildMetaInfo>(); AssetDatabase.CreateAsset(instance, BuildMetaInfoPath); return(instance); }
public void OnPreprocessBuild(BuildReport report) { #if UNITY_CLOUD_BUILD BuildMetaInfo buildMetaInfo = BuildMetaInfo.Instance; #if UNITY_IOS Version version = buildMetaInfo.Version; PlayerSettings.bundleVersion = $"{version.Major}.{version.Minor}.{version.Build}"; #else PlayerSettings.bundleVersion = buildMetaInfo.ShortVersionName; #endif PlayerSettings.macOS.buildNumber = buildMetaInfo.CloudBuildBuildNumber.ToString(); PlayerSettings.iOS.buildNumber = buildMetaInfo.CloudBuildBuildNumber.ToString(); PlayerSettings.Android.bundleVersionCode = buildMetaInfo.CloudBuildBuildNumber; #endif }
private static void PreBuildInternal() { BuildMetaInfo buildMetaInfo = GetBuildMetaInfo(); buildMetaInfo.BuildDateTime = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ssZ"); buildMetaInfo.BuildDayOfYear = DateTime.UtcNow.DayOfYear; #if !UNITY_CLOUD_BUILD string output; int exitCode; try { ExecuteCommand("git", "rev-parse --abbrev-ref HEAD", out output, out exitCode, timeout: 20000); if (exitCode != 0) { throw new Exception("exitCode != 0"); } buildMetaInfo.GitBranchName = output; } catch (Exception e) { buildMetaInfo.GitBranchName = "[error]"; Debug.LogException(e); } try { ExecuteCommand("git", "log --pretty=format:%h -n 1", out output, out exitCode, timeout: 20000); if (exitCode != 0) { throw new Exception("exitCode != 0"); } buildMetaInfo.GitCommitHash = output; } catch (Exception e) { buildMetaInfo.GitCommitHash = "[error]"; Debug.LogException(e); } #endif EditorUtility.SetDirty(buildMetaInfo); }
// ReSharper disable once RedundantNameQualifier public static void PreCloudBuildExport(UnityEngine.CloudBuild.BuildManifestObject manifest) { #if UNITY_CLOUD_BUILD Debug.Log("Cloud Build manifest:\r\n" + manifest.ToJson()); #endif BuildMetaInfo buildMetaInfo = GetBuildMetaInfo(); buildMetaInfo.GitBranchName = manifest.GetValue <string>("scmBranch"); buildMetaInfo.GitCommitHash = manifest.GetValue <string>("scmCommitId"); buildMetaInfo.CloudBuildBuildNumber = Convert.ToInt32(manifest.GetValue <string>("buildNumber")); buildMetaInfo.CloudBuildTargetName = manifest.GetValue <string>("cloudBuildTargetName"); const int gitShortHashLength = 8; buildMetaInfo.GitCommitHash = buildMetaInfo.GitCommitHash.Substring(0, buildMetaInfo.GitCommitHash.Length > gitShortHashLength ? gitShortHashLength : buildMetaInfo.GitCommitHash.Length); EditorUtility.SetDirty(buildMetaInfo); }