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) {