-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfix-macos-app.sh
More file actions
executable file
·113 lines (92 loc) · 3.65 KB
/
Copy pathfix-macos-app.sh
File metadata and controls
executable file
·113 lines (92 loc) · 3.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/bash
# LIebesu_Clash macOS 应用修复脚本
# 此脚本用于修复 macOS 上的应用安装和启动问题
set -e
APP_NAME="LIebesu_Clash.app"
APP_PATH="/Applications/$APP_NAME"
echo "🔧 LIebesu_Clash macOS 修复脚本"
echo "================================"
# 检查应用是否存在
if [ ! -d "$APP_PATH" ]; then
echo "❌ 未找到应用程序: $APP_PATH"
echo "请先安装 LIebesu_Clash.dmg"
exit 1
fi
echo "✅ 找到应用程序: $APP_PATH"
# 移除隔离属性
echo "🧹 移除隔离属性..."
sudo xattr -cr "$APP_PATH" 2>/dev/null || {
echo "⚠️ 需要管理员权限来移除隔离属性"
echo "请输入密码:"
sudo xattr -cr "$APP_PATH"
}
# 重新签名应用
echo "✍️ 重新签名应用..."
codesign --force --deep --sign - "$APP_PATH" 2>/dev/null || {
echo "⚠️ 重新签名失败,但应用可能仍然可以运行"
}
# 验证签名
echo "🔍 验证签名..."
codesign --verify --verbose "$APP_PATH" 2>/dev/null && {
echo "✅ 签名验证成功"
} || {
echo "⚠️ 签名验证失败,但应用可能仍然可以运行"
}
# 设置正确的权限
echo "🔐 设置应用权限..."
chmod -R 755 "$APP_PATH"
# 刷新启动台缓存
echo "🔄 刷新启动台缓存..."
echo "这可能需要几秒钟时间..."
# 方法1:重置启动台
defaults write com.apple.dock ResetLaunchPad -bool true
# 方法2:清理启动台数据库
echo "🗑️ 清理启动台数据库..."
rm -rf ~/Library/Application\ Support/Dock/*.db 2>/dev/null || true
sudo rm -rf /private/var/folders/*/0/com.apple.dock.launchpad/db/db 2>/dev/null || true
# 方法3:重新注册应用程序
echo "📝 重新注册应用程序..."
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f "$APP_PATH"
# 方法4:触发系统重新扫描应用程序
echo "🔍 触发系统重新扫描..."
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
# 重启Dock
echo "🔄 重启Dock..."
killall Dock 2>/dev/null || {
echo "⚠️ 无法重启Dock,请手动重启或注销重新登录"
}
# 等待Dock重启
sleep 5
# 强制刷新启动台
echo "💨 强制刷新启动台..."
osascript -e 'tell application "System Events" to tell process "Dock" to keystroke "f1" using {fn down, command down}' 2>/dev/null || true
# 尝试启动应用
echo "🚀 尝试启动应用..."
open "$APP_PATH" && {
echo "✅ 应用启动成功!"
echo ""
echo "如果应用仍然无法正常运行,请尝试以下步骤:"
echo "1. 打开 系统偏好设置 > 安全性与隐私 > 通用"
echo "2. 点击 '仍要打开' 按钮(如果看到 LIebesu_Clash 相关提示)"
echo "3. 或者在终端中运行: sudo spctl --master-disable"
echo " (这会禁用 Gatekeeper,请谨慎使用)"
} || {
echo "❌ 应用启动失败"
echo ""
echo "请尝试以下解决方案:"
echo "1. 打开 系统偏好设置 > 安全性与隐私 > 通用"
echo "2. 允许从任何来源下载的应用程序运行"
echo "3. 或者在终端中运行:"
echo " sudo spctl --add '$APP_PATH'"
echo " sudo spctl --enable --label 'LIebesu_Clash'"
}
echo ""
echo "📱 启动台问题解决方案:"
echo "如果启动台中仍然看不到应用图标,请尝试:"
echo "1. 等待几分钟让系统完成索引"
echo "2. 注销并重新登录"
echo "3. 或者手动运行以下命令:"
echo " defaults write com.apple.dock ResetLaunchPad -bool true && killall Dock"
echo "4. 直接从 /Applications 文件夹启动应用"
echo ""
echo "🔧 修复脚本执行完成"