From 6ae05aad01870de3df9ab2e8f478fa7fc289f033 Mon Sep 17 00:00:00 2001 From: huyufei Date: Tue, 9 Apr 2024 21:00:18 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E4=BC=98=E5=8C=96=E5=86=85=E7=BD=AE?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=8E=A5=E5=8F=A3=E5=92=8C=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E7=9A=84=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/xml => }/network_security_config.xml | 0 .../xml => }/network_security_config.xml.meta | 0 Editor/GuruManager/Files/sdk_res.meta | 8 --- .../Files/sdk_res/AndroidManifest.xml | 6 --- .../Files/sdk_res/AndroidManifest.xml.meta | 7 --- .../Files/sdk_res/project.properties | 2 - .../Files/sdk_res/project.properties.meta | 7 --- Editor/GuruManager/Files/sdk_res/res.meta | 8 --- Editor/GuruManager/Files/sdk_res/res/xml.meta | 3 -- .../GuruManager/Helper/AndroidManifestMod.cs | 2 +- .../GuruManager/Helper/AndroidProjectMod.cs | 2 +- .../Helper/AndroidPushIconHelper.cs | 4 +- Editor/GuruManager/Helper/AndroidResMod.cs | 49 ++++++++++--------- Editor/GuruManager/Helper/GuruEditorHelper.cs | 21 ++++++-- 14 files changed, 50 insertions(+), 69 deletions(-) rename Editor/GuruManager/Files/{sdk_res/res/xml => }/network_security_config.xml (100%) rename Editor/GuruManager/Files/{sdk_res/res/xml => }/network_security_config.xml.meta (100%) delete mode 100644 Editor/GuruManager/Files/sdk_res.meta delete mode 100644 Editor/GuruManager/Files/sdk_res/AndroidManifest.xml delete mode 100644 Editor/GuruManager/Files/sdk_res/AndroidManifest.xml.meta delete mode 100644 Editor/GuruManager/Files/sdk_res/project.properties delete mode 100644 Editor/GuruManager/Files/sdk_res/project.properties.meta delete mode 100644 Editor/GuruManager/Files/sdk_res/res.meta delete mode 100644 Editor/GuruManager/Files/sdk_res/res/xml.meta diff --git a/Editor/GuruManager/Files/sdk_res/res/xml/network_security_config.xml b/Editor/GuruManager/Files/network_security_config.xml similarity index 100% rename from Editor/GuruManager/Files/sdk_res/res/xml/network_security_config.xml rename to Editor/GuruManager/Files/network_security_config.xml diff --git a/Editor/GuruManager/Files/sdk_res/res/xml/network_security_config.xml.meta b/Editor/GuruManager/Files/network_security_config.xml.meta similarity index 100% rename from Editor/GuruManager/Files/sdk_res/res/xml/network_security_config.xml.meta rename to Editor/GuruManager/Files/network_security_config.xml.meta diff --git a/Editor/GuruManager/Files/sdk_res.meta b/Editor/GuruManager/Files/sdk_res.meta deleted file mode 100644 index 7f5a668..0000000 --- a/Editor/GuruManager/Files/sdk_res.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 11c5c61708cec45b3886f7c93951d083 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/GuruManager/Files/sdk_res/AndroidManifest.xml b/Editor/GuruManager/Files/sdk_res/AndroidManifest.xml deleted file mode 100644 index 1bb579a..0000000 --- a/Editor/GuruManager/Files/sdk_res/AndroidManifest.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - \ No newline at end of file diff --git a/Editor/GuruManager/Files/sdk_res/AndroidManifest.xml.meta b/Editor/GuruManager/Files/sdk_res/AndroidManifest.xml.meta deleted file mode 100644 index c7da392..0000000 --- a/Editor/GuruManager/Files/sdk_res/AndroidManifest.xml.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 038b314e2834b4b3f80537a3c7832481 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/GuruManager/Files/sdk_res/project.properties b/Editor/GuruManager/Files/sdk_res/project.properties deleted file mode 100644 index 3e9d5b2..0000000 --- a/Editor/GuruManager/Files/sdk_res/project.properties +++ /dev/null @@ -1,2 +0,0 @@ -target=android-9 -android.library=`true` \ No newline at end of file diff --git a/Editor/GuruManager/Files/sdk_res/project.properties.meta b/Editor/GuruManager/Files/sdk_res/project.properties.meta deleted file mode 100644 index 9834058..0000000 --- a/Editor/GuruManager/Files/sdk_res/project.properties.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 3a35ac1e970714224ba4adaae5756f10 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/GuruManager/Files/sdk_res/res.meta b/Editor/GuruManager/Files/sdk_res/res.meta deleted file mode 100644 index 4b3d88d..0000000 --- a/Editor/GuruManager/Files/sdk_res/res.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c6c2e979b6e21424a8c8807754828741 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/GuruManager/Files/sdk_res/res/xml.meta b/Editor/GuruManager/Files/sdk_res/res/xml.meta deleted file mode 100644 index 81e2ff0..0000000 --- a/Editor/GuruManager/Files/sdk_res/res/xml.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 29db8462008d4d8d9220c83bf5dcd6e0 -timeCreated: 1706057866 \ No newline at end of file diff --git a/Editor/GuruManager/Helper/AndroidManifestMod.cs b/Editor/GuruManager/Helper/AndroidManifestMod.cs index d4e0c19..1f5bb7c 100644 --- a/Editor/GuruManager/Helper/AndroidManifestMod.cs +++ b/Editor/GuruManager/Helper/AndroidManifestMod.cs @@ -65,7 +65,7 @@ namespace Guru.Editor { if (File.Exists(TargetFullPath)) return; - var path = GuruEditorHelper.GetFilePath($"{nameof(AndroidManifestMod)} t:Script"); + var path = GuruEditorHelper.GetAssetPath(nameof(AndroidManifestMod), "Script", true); if (!string.IsNullOrEmpty(path)) { var from = Path.GetFullPath($"{path}/../../Files/AndroidManifest.txt"); diff --git a/Editor/GuruManager/Helper/AndroidProjectMod.cs b/Editor/GuruManager/Helper/AndroidProjectMod.cs index 5c9f637..1a945bd 100644 --- a/Editor/GuruManager/Helper/AndroidProjectMod.cs +++ b/Editor/GuruManager/Helper/AndroidProjectMod.cs @@ -95,7 +95,7 @@ namespace Guru.Editor private static string GetMoveFilePath(string fileName) { - var path = GuruEditorHelper.GetFilePath($"{nameof(AndroidProjectMod)} t:Script"); + var path = GuruEditorHelper.GetAssetPath(nameof(AndroidProjectMod), "Script", true); var files = Path.GetFullPath($"{path}/../../Files"); return $"{files}/{fileName}"; } diff --git a/Editor/GuruManager/Helper/AndroidPushIconHelper.cs b/Editor/GuruManager/Helper/AndroidPushIconHelper.cs index bf4126e..97cb1f0 100644 --- a/Editor/GuruManager/Helper/AndroidPushIconHelper.cs +++ b/Editor/GuruManager/Helper/AndroidPushIconHelper.cs @@ -96,7 +96,7 @@ namespace Guru.Editor } - private static bool DeployAllIcons(Texture2D source, Color color) + private static bool DeployAllIcons(Texture2D source, Color color) { var dir = AndroidLibHelper.CreateLibRoot(PackageName, LibName); string path = ""; @@ -145,6 +145,8 @@ namespace Guru.Editor doc.SetMetadata("com.google.firebase.messaging.default_notification_channel_id", "@string/default_notification_channel_id"); doc.Save(); Debug.Log(" --- Push Icon Build Success --- "); + + AssetDatabase.Refresh(); return true; } diff --git a/Editor/GuruManager/Helper/AndroidResMod.cs b/Editor/GuruManager/Helper/AndroidResMod.cs index 82cdcfb..cc3494f 100644 --- a/Editor/GuruManager/Helper/AndroidResMod.cs +++ b/Editor/GuruManager/Helper/AndroidResMod.cs @@ -6,38 +6,43 @@ namespace Guru.Editor public class AndroidResMod { - private static readonly string ResName = "GuruNetworkSecurity"; - private static string ResFullPath = Path.Combine(Application.dataPath, $"Plugins/Android/{ResName}.androidlib"); - private static string OldSecurityXml = Path.Combine(Application.dataPath, "Plugins/Android/res/xml/network_security_config.xml"); + private static readonly string NetworkSecurityXmlName = "network_security_config.xml"; + private static readonly string LibNetworkSecurity = "GuruNetworkSecurity"; + private static readonly string LibNetworkSecurityPackageName = "com.guru.unity.sdk.android.res.network.security"; + private static string OldSecurityXml = Path.Combine(Application.dataPath, $"Plugins/Android/res/xml/{NetworkSecurityXmlName}"); /// /// 应用补丁 /// public static void Apply() { - DeployAndroidRes(); + DeployNetworkSecurity(); } - - private static void DeployAndroidRes() + /// + /// 部署网络安全配置 + /// + private static void DeployNetworkSecurity() { - if(File.Exists(OldSecurityXml)) File.Delete(OldSecurityXml); - - var spath = GuruEditorHelper.GetFilePath($"{nameof(AndroidResMod)} t:Script"); - if (!string.IsNullOrEmpty(spath)) - { - var from = Path.GetFullPath($"{spath}/../../Files/sdk_res"); - if (Directory.Exists(from)) - { - var to = ResFullPath; - if (Directory.Exists(to)) - { - FileUtil.DeleteFileOrDirectory(ResFullPath); - } - FileUtil.CopyFileOrDirectory(from, to); - } - } + if(File.Exists(OldSecurityXml)) File.Delete(OldSecurityXml); // 清理旧文件 + if (!AndroidLibHelper.IsEmbeddedAndroidLibExists(LibNetworkSecurity)) + { + string dir = AndroidLibHelper.CreateLibRoot(LibNetworkSecurityPackageName, LibNetworkSecurity); + var d = GuruEditorHelper.GetAssetPath(nameof(AndroidResMod), "Script", true); + if (!string.IsNullOrEmpty(d)) + { + var from = $"{Directory.GetParent(d)?.FullName ?? ""}/Files/{NetworkSecurityXmlName}"; + if (File.Exists(from)) + { + string toDir = $"{dir}/res/xml"; + if(!Directory.Exists(toDir))Directory.CreateDirectory(toDir); + string to = $"{toDir}/{NetworkSecurityXmlName}"; + FileUtil.CopyFileOrDirectory(from, to); + } + } + + } } diff --git a/Editor/GuruManager/Helper/GuruEditorHelper.cs b/Editor/GuruManager/Helper/GuruEditorHelper.cs index 4cf80e0..a441de8 100644 --- a/Editor/GuruManager/Helper/GuruEditorHelper.cs +++ b/Editor/GuruManager/Helper/GuruEditorHelper.cs @@ -2,19 +2,34 @@ namespace Guru.Editor { using UnityEditor; using UnityEngine; + using System; + using System.IO; public class GuruEditorHelper { - public static string GetFilePath(string filter) + public static string GetAssetPath(string filter, bool useFullPath = false) { var guids = AssetDatabase.FindAssets(filter); + string path = ""; + string fullPath = ""; if (guids != null && guids.Length > 0) { - var path = AssetDatabase.GUIDToAssetPath(guids[0]); - return path; + path = AssetDatabase.GUIDToAssetPath(guids[0]); + fullPath = path.Replace("Assets", Application.dataPath); + if (File.Exists(fullPath)) + { + return useFullPath? fullPath : path; + } } return ""; } + + public static string GetAssetPath(string fileName, string typeName = "", bool useFullPath = false) + { + var filter = fileName; + if(!string.IsNullOrEmpty(typeName)) filter = $"{fileName} t:{typeName}"; + return GetAssetPath(filter, useFullPath); + } public static void OpenPath(string path) {