王可可的主页

不止于CRUD

彻底解决Mac安装软件“已损坏,无法打开”问题 开源软件工具《应用通行证 | Xattr Cleaner》

📅 2026-05-30 📂 实用教程 👁️ 5 阅读
← 返回列表
摘要: 一键解决 macOS「应用已损坏」和「来自身份不明的开发者」问题,前面已经提到的脚步实现方案,使用仍然不方便,因此,脚本本人做成了软件可视化工具,未对其他mac电脑测试,请自行测试

功能特性

  • 🔓 清除隔离属性 — 移除 com.apple.quarantine 扩展属性,解决「应用已损坏,无法打开」
  • 🚪 开启任何来源 — 关闭 Gatekeeper 限制(等价于 sudo spctl --master-disable
  • ✍️ 本地重签名 — 对应用进行本地代码签名(等价于 codesign --force --deep --sign -
  • 🎯 拖拽选择 — 支持拖拽 .app 到窗口,或点击选择文件
  • 📋 应用列表 — 从 /Applications 目录直接选择应用,带隔离标记提示
  • 🧠 智能建议 — 自动检测隔离属性并给出操作建议
  • 🌗 深色/浅色模式 — 原生适配 macOS 外观
  • 🌐 中英文双语 — 支持中文、英文及跟随系统切换
  • Universal Binary — 同时支持 Intel (x86_64) 和 Apple Silicon (arm64)

preview.png

为什么需要这个工具?

macOS 的 Gatekeeper 安全机制会阻止未经验证的应用运行:

  1. Quarantine 隔离属性 — 从网络下载的文件会被标记 com.apple.quarantine 扩展属性,导致弹出「应用已损坏,无法打开」提示
  2. 代码签名验证 — 非苹果开发者签名的应用会提示「来自身份不明的开发者」
  3. Gatekeeper 限制 — 系统默认只允许 App Store 和已验证开发者的应用

这些机制虽然保护了安全,但也误伤了大量合法的开源软件、旧版应用和国内开发者应用。Xattr Cleaner 让你用一个图形界面,无需记命令行,就能解决这些问题。

安装

方法一:下载 DMG(推荐)

  1. 前往 Releases 页面下载最新 XattrCleaner.dmg
  2. 双击打开 DMG,将 Xattr Cleaner 拖入「应用程序」文件夹
  3. 首次打开时,右键点击应用 → 选择「打开」→ 在弹窗中点击「打开」

方法二:从源码编译

# 克隆仓库
git clone https://github.com/iwangkk/XattrCleaner.git
cd XattrCleaner

# 编译 arm64 (Apple Silicon)
swift build -c release --arch arm64

# 编译 x86_64 (Intel)
swift build -c release --arch x86_64

# 合并为 Universal Binary
lipo -create \
  .build/arm64-apple-macosx/release/XattrCleaner \
  .build/x86_64-apple-macosx/release/XattrCleaner \
  -output XattrCleaner

# 创建 .app Bundle
mkdir -p "Xattr Cleaner.app/Contents/MacOS"
mkdir -p "Xattr Cleaner.app/Contents/Resources"
cp XattrCleaner "Xattr Cleaner.app/Contents/MacOS/"
cp Sources/XattrCleaner/Info.plist "Xattr Cleaner.app/Contents/"
chmod +x "Xattr Cleaner.app/Contents/MacOS/XattrCleaner"

方法三:使用 Xcode 编译

  1. 用 Xcode 打开 XattrCleaner/Package.swift
  2. 选择 Scheme XattrCleaner
  3. Product → Build (⌘B) 或 Product → Archive 用于发布

使用方法

  1. 打开 Xattr Cleaner
  2. 将需要处理的 .app 拖入窗口,或点击「从应用列表选择」
  3. 应用会自动检测隔离属性并给出建议
  4. 点击对应的操作按钮:
    • 「清除隔离属性」— 适用于提示「已损坏」的应用
    • 「开启任何来源」— 在系统设置中启用「任何来源」选项
    • 「本地重签名」— 适用于签名损坏的应用
  5. 如需管理员权限,系统会弹出密码输入框
  6. 查看操作日志确认结果

💡 ​提示​:首次运行本应用时,可能也需要右键点击 → 选择「打开」来绕过 Gatekeeper。

系统要求

要求 最低版本
运行环境 macOS 11.0 (Big Sur) 及以上
编译环境 Xcode 13.0+ / Swift 5.5+
架构 Universal Binary (arm64 + x86_64)

技术栈

  • Swift + SwiftUI — 原生 macOS 应用
  • Swift Package Manager — 依赖管理与构建
  • NSAppleScript — 通过 do shell script ... with administrator privileges 请求管理员权限
  • Process — 安全执行 shell 命令
  • 无 App Sandbox — 需要访问文件系统和管理员权限,无法上架 App Store