diff --git a/src-tauri/packages/macos/entitlements.plist b/src-tauri/packages/macos/entitlements.plist
index bfd172dd..a9b8a6b3 100644
--- a/src-tauri/packages/macos/entitlements.plist
+++ b/src-tauri/packages/macos/entitlements.plist
@@ -2,6 +2,12 @@
+ CFBundleIconFile
+ icon.icns
+ CFBundleName
+ Clash Verge
+ CFBundleDisplayName
+ Clash Verge
com.apple.security.app-sandbox
com.apple.security.application-groups
@@ -10,5 +16,11 @@
com.apple.security.inherit
+ LSUIElement
+
+ NSHighResolutionCapable
+
+ NSRequiresAquaSystemAppearance
+
\ No newline at end of file
diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs
index 725d0bcc..464a3675 100644
--- a/src-tauri/src/lib.rs
+++ b/src-tauri/src/lib.rs
@@ -9,6 +9,70 @@ use crate::utils::{resolve, resolve::resolve_scheme, server};
use config::Config;
use tauri_plugin_autostart::MacosLauncher;
use tauri_plugin_deep_link::DeepLinkExt;
+use std::{sync::{Mutex, Once}};
+use tauri::AppHandle;
+
+/// A global singleton handle to the application.
+pub struct AppHandleManager {
+ inner: Mutex