From 8b78fd8b00f2e4065df340d95c3219769b19b7b7 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期日, 10 五月 2026 19:11:38 +0800
Subject: [PATCH] 0312 新增导出工程给AS打包逻辑

---
 Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs |   70 +++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)

diff --git a/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs b/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
index 97dbd63..f971c89 100644
--- a/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
+++ b/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
@@ -89,6 +89,12 @@
             set { LocalSave.SetString("APKOutPutPath", value); }
         }
 
+        public string AndroidExportPath
+        {
+            get { return LocalSave.GetString("AndroidExportPath"); }
+            set { LocalSave.SetString("AndroidExportPath", value); }
+        }
+
         string m_Publishers;
         public string publishers
         {
@@ -229,6 +235,15 @@
             var fromVersionConfig = ClientPackage.GetVersionConfig(_publisher, out versionName);
 
             var versionConfig = VersionConfig.Get();
+
+            if (fromVersionConfig == null || versionConfig == null)
+            {
+                Debug.LogWarningFormat("SetVersionConfig failed: fromVersionConfig={0}, versionConfig={1}, publisher={2}",
+                    fromVersionConfig != null ? "ok" : "null",
+                    versionConfig != null ? "ok" : "null",
+                    _publisher);
+                return;
+            }
 
             VersionConfig.Copy(fromVersionConfig, versionConfig);
 
@@ -517,6 +532,28 @@
 #endif
 
             GUILayout.EndHorizontal();
+
+#if UNITY_ANDROID
+            EditorGUILayout.Space();
+            GUILayout.Label("Export Android Project", EditorStyles.boldLabel);
+            GUILayout.BeginHorizontal();
+            EditorGUILayout.TextField("Export Path", AndroidExportPath);
+            if (GUILayout.Button("Browse", GUILayout.MaxWidth(75f)))
+            {
+                BrowseForAndroidExport();
+            }
+            GUILayout.EndHorizontal();
+            GUILayout.BeginHorizontal();
+            if (GUILayout.Button("Export Android Project"))
+            {
+                EditorApplication.delayCall += ExecuteExportAndroidProject;
+            }
+            if (GUILayout.Button("Export Android Dev"))
+            {
+                EditorApplication.delayCall += ExecuteExportAndroidProjectDev;
+            }
+            GUILayout.EndHorizontal();
+#endif
 
             // GUILayout.Space(20);
             // if (GUILayout.Button("SwitchVersionConfig"))
@@ -1038,6 +1075,30 @@
             ClientPackage.BuildPublishers(ClientPackage.SDK_PLUGIN_PROJECT, outputPath, ApkOutputPath, publishers, packageIndex, true, false);
         }
 
+        private void ExecuteExportAndroidProject()
+        {
+            if (string.IsNullOrEmpty(AndroidExportPath))
+            {
+                EditorUtility.DisplayDialog("鎻愮ず", "璇峰厛璁剧疆 Android Export Path", "纭畾");
+                return;
+            }
+            packageIndex++;
+            var assetBundlePath = Application.dataPath.Replace("Assets", m_UserData.m_OutputPath);
+            ClientPackage.ExportAndroidProject(publishers, packageIndex, false, AndroidExportPath, assetBundlePath);
+        }
+
+        private void ExecuteExportAndroidProjectDev()
+        {
+            if (string.IsNullOrEmpty(AndroidExportPath))
+            {
+                EditorUtility.DisplayDialog("鎻愮ず", "璇峰厛璁剧疆 Android Export Path", "纭畾");
+                return;
+            }
+            packageIndex++;
+            var assetBundlePath = Application.dataPath.Replace("Assets", m_UserData.m_OutputPath);
+            ClientPackage.ExportAndroidProject(publishers, packageIndex, true, AndroidExportPath, assetBundlePath);
+        }
+
         private void ExecuteBuildClientPackageStandalone()
         {
             packageIndex++;
@@ -1153,6 +1214,15 @@
             }
         }
 
+        private void BrowseForAndroidExport()
+        {
+            var newPath = EditorUtility.OpenFolderPanel("Android Export Folder", AndroidExportPath, string.Empty);
+            if (!string.IsNullOrEmpty(newPath))
+            {
+                AndroidExportPath = newPath;
+            }
+        }
+
         private void ResetPathToDefault()
         {
             m_UserData.m_UseDefaultPath = true;

--
Gitblit v1.8.0