コード例 #1
0
 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);
     }
 }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
        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;
                }
            }
        }