From 33da3f86a666a6203a1b941b91d86fff58a37282 Mon Sep 17 00:00:00 2001 From: huyufei Date: Wed, 14 Aug 2024 15:31:40 +0800 Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=20=E6=B7=BB=E5=8A=A0=20Settings?= =?UTF-8?q?=20=E6=96=87=E4=BB=B6=E6=9E=84=E5=BB=BA=E7=AE=A1=E7=BA=BF?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huyufei --- .../AndroidSettingsTemplateFixer.meta | 8 +++ .../AndroidSettingsGradleFixer.cs | 56 +++++++++++++++++++ .../AndroidSettingsGradleFixer.cs.meta | 3 + 3 files changed, 67 insertions(+) create mode 100644 Editor/GuruBuildSuit/AndroidSettingsTemplateFixer.meta create mode 100644 Editor/GuruBuildSuit/AndroidSettingsTemplateFixer/AndroidSettingsGradleFixer.cs create mode 100644 Editor/GuruBuildSuit/AndroidSettingsTemplateFixer/AndroidSettingsGradleFixer.cs.meta diff --git a/Editor/GuruBuildSuit/AndroidSettingsTemplateFixer.meta b/Editor/GuruBuildSuit/AndroidSettingsTemplateFixer.meta new file mode 100644 index 0000000..d82aa90 --- /dev/null +++ b/Editor/GuruBuildSuit/AndroidSettingsTemplateFixer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f0cef2fc19b2407381c7163d3a87ddec +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/GuruBuildSuit/AndroidSettingsTemplateFixer/AndroidSettingsGradleFixer.cs b/Editor/GuruBuildSuit/AndroidSettingsTemplateFixer/AndroidSettingsGradleFixer.cs new file mode 100644 index 0000000..067bb6a --- /dev/null +++ b/Editor/GuruBuildSuit/AndroidSettingsTemplateFixer/AndroidSettingsGradleFixer.cs @@ -0,0 +1,56 @@ +#if UNITY_ANDROID + +namespace Guru.BuildTool +{ + using System.IO; + using UnityEditor.Android; + using UnityEngine; + + public class AndroidSettingsGradleFixer: IPostGenerateGradleAndroidProject + { + private const string SettingsGradleName= "settings.gradle"; + private const string K_LINE_UNITYPROJECT = "def unityProjectPath"; + + public int callbackOrder => 1; + + public void OnPostGenerateGradleAndroidProject(string buildPath) + { + FixSettingsInAndroidProject(buildPath); + } + + /// + /// 设置项目中的 Settings 文件 + /// + /// + private void FixSettingsInAndroidProject(string buildPath) + { + var settingsPath = Path.GetFullPath($"{buildPath}/../{SettingsGradleName}"); + + if (File.Exists(settingsPath)) + { + bool isDirty = false; + var lines = File.ReadAllLines(settingsPath); + string projectPath = Path.GetFullPath($"{Application.dataPath}/../").Replace("\\", "/"); // Unity project path + for (int i = 0; i < lines.Length; i++) + { + if (lines[i].Contains(K_LINE_UNITYPROJECT)) + { + lines[i] = $" def unityProjectPath = $/file:////{projectPath}/$.replace(\"\\\\\", \"/\")"; + isDirty = true; + break; + } + } + + if (isDirty) + { + File.WriteAllLines(settingsPath, lines); + Debug.Log($"[SDK] --- Fix Unity Project Path at:{settingsPath}"); + } + + } + } + + } +} + +#endif \ No newline at end of file diff --git a/Editor/GuruBuildSuit/AndroidSettingsTemplateFixer/AndroidSettingsGradleFixer.cs.meta b/Editor/GuruBuildSuit/AndroidSettingsTemplateFixer/AndroidSettingsGradleFixer.cs.meta new file mode 100644 index 0000000..1cc15cc --- /dev/null +++ b/Editor/GuruBuildSuit/AndroidSettingsTemplateFixer/AndroidSettingsGradleFixer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 125df18a1af243018be105c54ab9bb5b +timeCreated: 1722257677 \ No newline at end of file