From 47622bf49c893988e03d881d9fded48e545caeda Mon Sep 17 00:00:00 2001 From: walon Date: Wed, 29 May 2024 14:48:05 +0800 Subject: [PATCH] =?UTF-8?q?[new]=20=E6=94=AF=E6=8C=81visionOS=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=20[fix]=20=E4=BF=AE=E5=A4=8DtvOS=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E4=BA=86=E9=94=99=E8=AF=AF=E7=9A=84Unity-iPh?= =?UTF-8?q?one.xcodeproj=E8=B7=AF=E5=BE=84=E5=AF=BC=E8=87=B4=E6=89=BE?= =?UTF-8?q?=E4=B8=8D=E5=88=B0project.pbxproj=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AddLil2cppSourceCodeToXcodeproj2019.cs | 16 ++---------- ...dLil2cppSourceCodeToXcodeproj2020Or2021.cs | 13 +--------- ...Lil2cppSourceCodeToXcodeproj2022OrNewer.cs | 13 ++-------- Editor/BuildProcessors/BuildProcessorUtil.cs | 25 +++++++++++++++++++ .../BuildProcessorUtil.cs.meta | 11 ++++++++ .../CopyStrippedAOTAssemblies.cs | 8 +++--- 6 files changed, 46 insertions(+), 40 deletions(-) create mode 100644 Editor/BuildProcessors/BuildProcessorUtil.cs create mode 100644 Editor/BuildProcessors/BuildProcessorUtil.cs.meta diff --git a/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2019.cs b/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2019.cs index 8d7b3bf..b879aff 100644 --- a/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2019.cs +++ b/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2019.cs @@ -17,18 +17,6 @@ namespace HybridCLR.Editor.BuildProcessors { public static class AddLil2cppSourceCodeToXcodeproj2019 { - //[MenuItem("Test/GenProj")] - //public static void Modify() - //{ - // OnPostProcessBuild(BuildTarget.iOS, $"{SettingsUtil.ProjectDir}/Build-iOS"); - //} - - //[MenuItem("Test/CreateLumps")] - //public static void CreateLumpsCmd() - //{ - // CreateLumps($"{SettingsUtil.LocalIl2CppDir}/libil2cpp", $"{SettingsUtil.HybridCLRDataDir}/lumps"); - //} - [PostProcessBuild] public static void OnPostProcessBuild(BuildTarget target, string pathToBuiltProject) { @@ -46,8 +34,8 @@ namespace HybridCLR.Editor.BuildProcessors 9. add external/xxHash 10. add "#include " to Classes/Prefix.pch */ - - string pbxprojFile = $"{pathToBuiltProject}/Unity-iPhone.xcodeproj/project.pbxproj"; + + string pbxprojFile = BuildProcessorUtil.GetXcodeProjectFile(pathToBuiltProject); string srcLibil2cppDir = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp"; string dstLibil2cppDir = $"{pathToBuiltProject}/Libraries/libil2cpp"; string lumpDir = $"{pathToBuiltProject}/Libraries/lumps"; diff --git a/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2020Or2021.cs b/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2020Or2021.cs index 3dbe664..a7ebc3a 100644 --- a/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2020Or2021.cs +++ b/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2020Or2021.cs @@ -17,17 +17,6 @@ namespace HybridCLR.Editor.BuildProcessors { public static class AddLil2cppSourceCodeToXcodeproj2020Or2021 { - //[MenuItem("Test/GenProj")] - //public static void Modify() - //{ - // OnPostProcessBuild(BuildTarget.iOS, $"{SettingsUtil.ProjectDir}/Build-iOS"); - //} - - //[MenuItem("Test/CreateLumps")] - //public static void CreateLumpsCmd() - //{ - // CreateLumps($"{SettingsUtil.LocalIl2CppDir}/libil2cpp", $"{SettingsUtil.HybridCLRDataDir}/lumps"); - //} [PostProcessBuild] public static void OnPostProcessBuild(BuildTarget target, string pathToBuiltProject) @@ -46,7 +35,7 @@ namespace HybridCLR.Editor.BuildProcessors 9. add external/xxHash */ - string pbxprojFile = $"{pathToBuiltProject}/Unity-iPhone.xcodeproj/project.pbxproj"; + string pbxprojFile = BuildProcessorUtil.GetXcodeProjectFile(pathToBuiltProject); string srcLibil2cppDir = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp"; string dstLibil2cppDir = $"{pathToBuiltProject}/Libraries/libil2cpp"; string lumpDir = $"{pathToBuiltProject}/Libraries/lumps"; diff --git a/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2022OrNewer.cs b/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2022OrNewer.cs index 86d5673..703ce43 100644 --- a/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2022OrNewer.cs +++ b/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2022OrNewer.cs @@ -7,28 +7,19 @@ using UnityEditor.Build; using UnityEditor.Callbacks; using UnityEngine; -#if UNITY_2022_2_OR_NEWER && (UNITY_IOS || UNITY_TVOS) +#if UNITY_2022_2_OR_NEWER && (UNITY_IOS || UNITY_TVOS || UNITY_VISIONOS) namespace HybridCLR.Editor.BuildProcessors { public static class AddLil2cppSourceCodeToXcodeproj2022OrNewer { - //[MenuItem("HybridCLR/Modfiyxcode")] - //public static void Modify() - //{ - // OnPostProcessBuild(BuildTarget.iOS, $"{SettingsUtil.ProjectDir}/Build-iOS"); - //} [PostProcessBuild] public static void OnPostProcessBuild(BuildTarget target, string pathToBuiltProject) { if (!HybridCLRSettings.Instance.enable) return; -#if TUANJIE_2022_3_OR_NEWER - string pbxprojFile = $"{pathToBuiltProject}/Tuanjie-iPhone.xcodeproj/project.pbxproj"; -#else - string pbxprojFile = $"{pathToBuiltProject}/Unity-iPhone.xcodeproj/project.pbxproj"; -#endif + string pbxprojFile = BuildProcessorUtil.GetXcodeProjectFile(pathToBuiltProject); RemoveExternalLibil2cppOption(pbxprojFile); CopyLibil2cppToXcodeProj(pathToBuiltProject); } diff --git a/Editor/BuildProcessors/BuildProcessorUtil.cs b/Editor/BuildProcessors/BuildProcessorUtil.cs new file mode 100644 index 0000000..7bb4f77 --- /dev/null +++ b/Editor/BuildProcessors/BuildProcessorUtil.cs @@ -0,0 +1,25 @@ +using 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/Editor/BuildProcessors/BuildProcessorUtil.cs.meta b/Editor/BuildProcessors/BuildProcessorUtil.cs.meta new file mode 100644 index 0000000..6cd79d2 --- /dev/null +++ b/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: diff --git a/Editor/BuildProcessors/CopyStrippedAOTAssemblies.cs b/Editor/BuildProcessors/CopyStrippedAOTAssemblies.cs index f982d9c..076fffc 100644 --- a/Editor/BuildProcessors/CopyStrippedAOTAssemblies.cs +++ b/Editor/BuildProcessors/CopyStrippedAOTAssemblies.cs @@ -36,8 +36,12 @@ namespace HybridCLR.Editor.BuildProcessors case BuildTarget.Android: return $"{projectDir}/Library/Bee/artifacts/Android/ManagedStripped"; case BuildTarget.iOS: + case BuildTarget.tvOS: +#if UNITY_2022_3_OR_NEWER + case BuildTarget.VisionOS: +#endif return $"{projectDir}/Library/Bee/artifacts/iOS/ManagedStripped"; - case BuildTarget.WebGL: + case BuildTarget.WebGL: return $"{projectDir}/Library/Bee/artifacts/WebGL/ManagedStripped"; case BuildTarget.StandaloneOSX: return $"{projectDir}/Library/Bee/artifacts/MacStandalonePlayerBuildProgram/ManagedStripped"; @@ -45,8 +49,6 @@ namespace HybridCLR.Editor.BuildProcessors return $"{projectDir}/Library/Bee/artifacts/PS4PlayerBuildProgram/ManagedStripped"; case BuildTarget.PS5: return $"{projectDir}/Library/Bee/artifacts/PS5PlayerBuildProgram/ManagedStripped"; - case BuildTarget.tvOS: - return $"{projectDir}/Library/Bee/artifacts/iOS/ManagedStripped"; #if TUANJIE_2022_3_OR_NEWER case BuildTarget.WeixinMiniGame: return $"{projectDir}/Library/Bee/artifacts/WeixinMiniGame/ManagedStripped";