Browse Source

开发:打包功能支持Debug和Release

XuJJ 6 days ago
parent
commit
301ddf4a3f
1 changed files with 40 additions and 4 deletions
  1. 40 4
      snipershooting/ShootSniper/Assets/Editor/MenuItemTools.cs

+ 40 - 4
snipershooting/ShootSniper/Assets/Editor/MenuItemTools.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using System.IO;
 using UnityEditor;
 using UnityEditor.AddressableAssets.Settings;
@@ -917,22 +918,57 @@ public class MenuItemTools
         Debug.Log("Assets renamed according to dictionary.");
     }
 
-    [MenuItem("Tools/Build/Android/Apk")]
+    [MenuItem("Tools/Build/Android/Debug/Apk")]
+    private static void BuildAndroidDebugApk()
+    {
+        AddDebugMacro();
+        EditorUserBuildSettings.buildAppBundle = false;
+        var outputPath = $"{Application.productName}-Debug-v{Application.version}.apk";
+        BuildAndroid(outputPath);
+    }
+
+    [MenuItem("Tools/Build/Android/Release/Apk")]
     private static void BuildAndroidApk()
     {
+        RemoveDebugMacro();
         EditorUserBuildSettings.buildAppBundle = false;
-        var outputPath = $"{Application.productName}-v{Application.version}.apk";
+        var outputPath = $"{Application.productName}-Release-v{Application.version}.apk";
         BuildAndroid(outputPath);
     }
 
-    [MenuItem("Tools/Build/Android/AAB")]
+    [MenuItem("Tools/Build/Android/Release/AAB")]
     private static void BuildAndroidAab()
     {
+        RemoveDebugMacro();
         EditorUserBuildSettings.buildAppBundle = true;
-        var outputPath = $"{Application.productName}-v{Application.version}.aab";
+        var outputPath = $"{Application.productName}-Release-v{Application.version}.aab";
         BuildAndroid(outputPath);
     }
 
+    private static void AddDebugMacro()
+    {
+        var macrosStr = PlayerSettings.GetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android);
+        var macros = macrosStr.Split(";").ToList();
+        if (!macros.Contains("DEBUG"))
+        {
+            macros.Add("DEBUG");
+            macrosStr = string.Join(";", macros);
+            PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android, macrosStr);
+        }
+    }
+
+    private static void RemoveDebugMacro()
+    {
+        var macrosStr = PlayerSettings.GetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android);
+        var macros = macrosStr.Split(";").ToList();
+        if (macros.Contains("DEBUG"))
+        {
+            macros.RemoveAll(s => s == "DEBUG");
+            macrosStr = string.Join(";", macros);
+            PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android, macrosStr);
+        }
+    }
+
     private static void BuildAndroid(string outputPath)
     {
         KeystorePasswordSetter.AutoSetupKeystore();