private void OnEnable() { m_versionJson = Path.Combine(Application.dataPath, "Misc/buildVersion.json"); if (!File.Exists(m_versionJson)) { return; } try { using (StreamReader sr = new StreamReader(m_versionJson)) { string datas = sr.ReadToEnd(); m_buildVersionData = JsonUtility.FromJson <BuildVersionData>(datas); } if (m_buildVersionData != null) { defVersionName = m_buildVersionData.defVersionName; defVersionCode = m_buildVersionData.defVersionCode.ToString(); defTargetSdkVersion = m_buildVersionData.defTargetSdkVersion.ToString(); } } catch (Exception error) { Debug.LogError("BuildVersionWindow OnEnable Error: " + error.Message); } }
private void PostBuildAndroid(BuildType type, string path) { if (EditorUserBuildSettings.exportAsGoogleAndroidProject) { Debug.Log("ExportAsGooleAndroidProject is switched on. Running Android Greadle PostProcess."); // Patch the Perforce ridiculuseness // handle unityLibrary AndroidManifest.xml BuildUtility.HandleAndroidXml(path); // Patch the Perforce ridiculuseness string gradlePath = Path.Combine(Application.dataPath, "../JenkinsScripts/AndroidGradleStuff"); // handle gradle version name if (type == BuildType.Development) { string versionPath = Path.Combine(Application.dataPath, "Misc/buildVersion.json"); BuildVersionData data = null; using (StreamReader sr = new StreamReader(versionPath)) { string versionData = sr.ReadToEnd(); data = JsonUtility.FromJson <BuildVersionData>(versionData); } if (data == null) { return; } BuildUtility.HandleGradleVersion(Path.Combine(gradlePath, "launcher/build.gradle"), data); } FileUtility.CopyDirectoryFiles(new DirectoryInfo(gradlePath), new DirectoryInfo(path), true, true); string androidPath = Path.Combine(Application.dataPath, "../Tools/Android/Builds"); FileUtility.CopyDirectoryFiles(new DirectoryInfo(androidPath), new DirectoryInfo(path), true, true); string gradleBuildType = "Debug"; if (type == BuildType.Preproduction || type == BuildType.Production) { gradleBuildType = "Release"; } try { // Run APK support BuildUtility.RunGradleProcess(path, gradleBuildType); // Bundle support BuildUtility.RunGradleProcess(path, gradleBuildType, "bundle"); } catch (System.Exception error) { Debug.LogError("Android build python process failed. msg : " + error.Message); } } }
private static void ModifyBuildVersion(BuildVersionData buildData = null) { try { string versionJson = Path.Combine(Application.dataPath, "Misc/buildVersion.json"); if (buildData != null) { if (File.Exists(versionJson)) { File.Delete(versionJson); } File.WriteAllText(versionJson, JsonUtility.ToJson(buildData)); AssetDatabase.Refresh(); } else { BuildVersionData versionData; using (StreamReader sr = new StreamReader(versionJson)) { string datas = sr.ReadToEnd(); versionData = JsonUtility.FromJson <BuildVersionData>(datas); } string versionName = versionData.defVersionName; string[] versions = versionName.Split('.'); if (versions.Length != 4) { Debug.LogError("ModifyBuildVersion versionName: " + versionName); } else { StringBuilder sb = new StringBuilder(); sb.Append(versions[0] + "."); sb.Append(versions[1] + "."); sb.Append(versions[2] + "."); string versionIndex = "00"; if (!string.IsNullOrEmpty(versions[3])) { if (versions[3].Substring(0, 2) == DateTime.Now.Month.ToString("00") && versions[3].Substring(2, 2) == DateTime.Now.Day.ToString("00")) { string indexStr = versions[3].Substring(versions[3].Length - 2); int result = 0; int.TryParse(indexStr, out result); result++; versionIndex = result.ToString("00"); } } sb.Append(string.Format("{0}{1}{2}", DateTime.Now.Month.ToString("00"), DateTime.Now.Day.ToString("00"), versionIndex)); if (File.Exists(versionJson)) { File.Delete(versionJson); } File.WriteAllText(versionJson, JsonUtility.ToJson(new BuildVersionData() { defVersionName = sb.ToString(), defVersionCode = versionData.defVersionCode, defTargetSdkVersion = versionData.defTargetSdkVersion })); AssetDatabase.Refresh(); } } } catch (Exception error) { Debug.LogError("ModifyBuildVersion Error: " + error.Message); } }
private void OnGUI() { GUILayout.Space(10); GUILayout.BeginVertical(); GUILayout.Label(string.Format("Position: x={0} , y={1}", position.x, position.y)); GUILayout.Label("修改版本的 Version 信息,同时写入 gradle 打包文件里。"); GUILayout.EndVertical(); GUILayout.Space(50); GUILayout.BeginHorizontal(); GUILayout.Label("defVersionName: "); defVersionName = GUILayout.TextArea(defVersionName, GUILayout.Width(150), GUILayout.Height(20)); GUILayout.EndHorizontal(); GUILayout.Space(10); GUILayout.BeginHorizontal(); GUILayout.Label("defVersionCode: "); defVersionCode = GUILayout.TextField(defVersionCode, GUILayout.Width(150), GUILayout.Height(20)); GUILayout.EndHorizontal(); GUILayout.Space(10); GUILayout.BeginHorizontal(); GUILayout.Label("defTargetSdkVersion: "); defTargetSdkVersion = GUILayout.TextField(defTargetSdkVersion, GUILayout.Width(150), GUILayout.Height(20)); GUILayout.EndHorizontal(); GUILayout.Space(30); GUILayout.BeginVertical(); if (GUILayout.Button("Sure")) { Debug.Log("Sure On Click"); string versionName = defVersionName.Trim(); string[] names = versionName.Split('.'); if (names.Length != 4) { Debug.LogError("defVersionName Error: " + defVersionName); return; } int versionCode = 0; int.TryParse(defVersionCode, out versionCode); int targetSdkVersion = 0; int.TryParse(defTargetSdkVersion, out targetSdkVersion); m_buildVersionData = new BuildVersionData() { defVersionName = versionName, defVersionCode = versionCode, defTargetSdkVersion = targetSdkVersion }; Debug.Log("Build Version Data : " + JsonUtility.ToJson(m_buildVersionData)); if (m_callback != null) { m_callback(m_buildVersionData); } } GUILayout.EndVertical(); float x = position.x; float sumX = 0; for (int i = 0; i < Display.displays.Length; i++) { sumX += Display.displays[i].renderingWidth; if (sumX > x) { sumX = 0; if (m_displayIndex != i) { m_displayIndex = i; PlayerPrefs.SetInt("BuildWindowDisplayIndex", m_displayIndex); } continue; } } }