From c1a7f5bca3b3f0d20da019b8966a077d7ed29baa Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 23 七月 2024 18:15:26 +0800
Subject: [PATCH] 0312 热更插件

---
 .gitignore                                                                                                       |    1 
 Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2023OrNewer.cs.meta |   11 +++++
 Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2023OrNewer.cs      |   34 +++++++++++++++++
 Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/BuildProcessorUtil.cs                              |   25 ++++++++++++
 Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/BuildProcessorUtil.cs.meta                         |   11 +++++
 5 files changed, 81 insertions(+), 1 deletions(-)

diff --git a/.gitignore b/.gitignore
index 064744b..ac3ceaa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,7 +28,6 @@
 [Tt]est[Rr]esult*
 .vs/
 #Nuget packages folder
-packages/
 Library/*
 Temp/*
 *.csproj
diff --git a/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2023OrNewer.cs b/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2023OrNewer.cs
new file mode 100644
index 0000000..a3c880c
--- /dev/null
+++ b/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2023OrNewer.cs
@@ -0,0 +1,34 @@
+using HybridCLR.Editor.Installer;
+using HybridCLR.Editor.Settings;
+using System.IO;
+using System.Text;
+using UnityEditor;
+using UnityEditor.Build;
+using UnityEditor.Callbacks;
+using UnityEngine;
+
+#if UNITY_2023_1_OR_NEWER && (UNITY_IOS || UNITY_TVOS || UNITY_VISIONOS)
+
+namespace HybridCLR.Editor.BuildProcessors
+{
+    public static class AddLil2cppSourceCodeToXcodeproj2022OrNewer
+    {
+
+        [PostProcessBuild]
+        public static void OnPostProcessBuild(BuildTarget target, string pathToBuiltProject)
+        {
+            if (!HybridCLRSettings.Instance.enable)
+                return;
+            CopyLibil2cppToXcodeProj(pathToBuiltProject);
+        }
+
+        private static void CopyLibil2cppToXcodeProj(string pathToBuiltProject)
+        {
+            string srcLibil2cppDir = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp";
+            string destLibil2cppDir = $"{pathToBuiltProject}/Il2CppOutputProject/IL2CPP/libil2cpp";
+            BashUtil.RemoveDir(destLibil2cppDir);
+            BashUtil.CopyDir(srcLibil2cppDir, destLibil2cppDir, true);
+        }
+    }
+}
+#endif
\ No newline at end of file
diff --git a/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2023OrNewer.cs.meta b/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2023OrNewer.cs.meta
new file mode 100644
index 0000000..ef760ad
--- /dev/null
+++ b/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2023OrNewer.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2fa46135129b046a28014d58fdfd18ca
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/BuildProcessorUtil.cs b/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/BuildProcessorUtil.cs
new file mode 100644
index 0000000..7bb4f77
--- /dev/null
+++ b/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/BuildProcessorUtil.cs
@@ -0,0 +1,25 @@
+锘縰sing System;
+using System.IO;
+using UnityEditor.Build;
+
+namespace HybridCLR.Editor.BuildProcessors
+{
+
+	public static class BuildProcessorUtil
+	{
+
+        public static string GetXcodeProjectFile(string pathToBuiltProject)
+        {
+            foreach (string dir in Directory.GetDirectories(pathToBuiltProject, "*.xcodeproj", SearchOption.TopDirectoryOnly))
+            {
+                string pbxprojFile = $"{dir}/project.pbxproj";
+                if (File.Exists(pbxprojFile))
+                {
+                    return pbxprojFile;
+                }
+            }
+            throw new BuildFailedException($"can't find xxxx.xcodeproj/project.pbxproj in {pathToBuiltProject}");
+        }
+    }
+}
+
diff --git a/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/BuildProcessorUtil.cs.meta b/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/BuildProcessorUtil.cs.meta
new file mode 100644
index 0000000..6cd79d2
--- /dev/null
+++ b/Packages/com.code-philosophy.hybridclr/Editor/BuildProcessors/BuildProcessorUtil.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c680e56f90f2745298a90803c04f6efc
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

--
Gitblit v1.8.0