什么是AppPorts?这款免费开源macOS应用迁移工具的完整概览
【免费下载链接】AppPorts📦 A macOS utility to seamlessly migrate applications to external storage and reclaim local disk space.【一款 macOS 工具,无缝迁移应用到外部存储并自动建立链接,释放宝贵的本地空间】项目地址: https://gitcode.com/gh_mirrors/ap/AppPorts
Mac 内置空间告急,却舍不得动那些动辄几十 GB 的创意软件?AppPorts 是一款免费开源的 macOS 应用迁移工具,它能把大型应用、应用数据和工具目录整体搬到外置硬盘,并在本机保留一个轻量的启动入口——打开方式和使用习惯完全不变,本地空间却得以释放。下面带你完整了解这款工具能做什么、怎么做、以及是否适合你。
一句话理解 AppPorts:搬走体积,留下熟悉
传统做法是把应用换成指向外置盘的"快捷方式"(符号链接),但 Finder 里会出现箭头角标,自动更新、签名、Dock 快捷方式也常出岔子。
AppPorts 的做法不同:它把完整应用搬进外置盘,同时在/Applications里留下一个轻量的Stub Portal(启动器壳)——一个带原图标的本地入口。只要外置盘连着,你就能像往常一样从 Finder、Dock 或启动台打开应用。
主界面采用双栏设计:左边是 Mac 本地应用,右边是外置硬盘上的应用库,每个应用都标注了体积和状态徽章(已链接、商店应用等),底部按钮可直接执行「迁移到外部」「链接回本地」「迁回本地」。
核心功能一览:迁移、保护、还原一步到位
AppPorts 不只是"复制文件",而是围绕数据安全设计了一套完整流程:
- 📦无角标迁移:本机入口保留原应用图标,没有快捷方式箭头,Dock 快捷方式也会自动同步
- 🛡️自动更新保护:识别 Sparkle、Electron 等自更新机制,为外部副本提供文件锁,防止更新时改写外置盘上的应用
- ✍️代码签名管理:检查签名状态,为"签名已替换"的应用提供修复入口,支持备份与恢复原始签名
- 🔴孤立链接检测:外置盘断开时自动标红异常入口,方便排查
- ↩️随时还原:本机空间充足时,一键把应用或数据迁回,迁移失败会自动回滚并保留副本
- 💾APFS 容器迁移:微信聊天记录等容器数据通过 APFS 卷挂载到原路径,签名一个字节不动
- 📊数据目录管理:树形展示应用关联数据,支持搜索、排序,还能迁移
~/.npm等开发工具目录 - 🌍20+ 语言界面:中、英、日、韩、法、德、西、俄等语言,甚至包括盲文和"火星文"
更多细节可参阅 核心功能说明 和 README_CN.md 中的功能清单。
首次使用时,「准备情况」自检会逐项检查完全磁盘访问权限、App 管理权限、外置存储状态,并显示当前运行版本与路径,方便你核对授权对象,全部就绪后再开始迁移。
迁移策略详解:不同类型应用,走不同路线
AppPorts 会根据应用类型自动选择最合适的迁移方式,完整策略表见 迁移策略说明:
| 内容类型 | 迁移方式 | 说明 |
|---|---|---|
| 普通 Mac 应用 | 启动器壳(Stub Portal) | 本机保留轻量入口,完整应用在外置盘 |
| 自更新应用(Sparkle、Electron) | 启动器壳 + 锁定保护 | 更新前需先解锁,保护外部副本 |
| App Store 应用(macOS 15.1+) | 系统原生外置安装 | 外置盘上可原地更新 |
| 容器数据(微信、QQ 等) | APFS 挂载迁移 | 需要未加密 APFS 外置盘 |
| 普通数据、工具目录、自定义文件夹 | 符号链接 | 原路径保留链接,数据存放在外部 |
| 系统应用、正在运行的应用 | 阻止迁移 | 受保护或需先退出 |
其中有两点值得新手特别注意:
- 系统应用和正在运行的应用会被直接阻止——迁移前请先退出目标应用;
- 同名冲突不会盲目覆盖——只有确认是同一应用的旧副本或 AppPorts 自己的旧入口时才会清理,遇到无法确认归属的真实应用会停下提示,避免误删数据。
微信聊天记录也能搬:APFS 挂载迁移
占空间的往往不只是应用本体——微信的聊天记录、图片视频可能比应用本身大得多。这类数据位于~/Library/Containers/,属于沙盒应用数据,用符号链接搬走后应用会读不到。
AppPorts 1.9.0 起改用APFS 挂载迁移:在外置盘的 APFS 容器中新增一个专属数据卷,直接"挂"回原来的目录。效果相当于——文件夹还在原地,但"地板"换成了外置盘。应用看到的路径没变,签名不受影响,外置盘没接时文件夹显示为空,应用不会把新数据写到本机造成两份。
为什么必须是 APFS、exFAT 盘怎么办、加密盘为何暂不支持,作者在 为什么外置盘必须是 APFS 一篇文档里讲得非常透彻,还附上了拔盘实验的实测数据。
在「数据目录」标签下,应用数据按树形分组展示,每个目录都有独立的体积和状态,可单独执行「挂载迁移」或「还原」;「工具目录」子页则管理~/.npm、~/.gradle等开发缓存目录,「目录迁移」标签还能迁走任意自选文件夹,比如大型项目或素材库。
快速上手:安装与授权三步走
系统要求很简单:macOS 12.0(Monterey)及以上,Apple Silicon 与 Intel 均支持;另需一块空间充足、连接稳定的外置存储(迁移容器数据需未加密 APFS 格式)。
安装步骤(详见 快速入门文档):
- 下载最新
.dmg安装包,把 AppPorts 拖入「应用程序」文件夹后打开 - 按引导授权完全磁盘访问权限:系统设置 → 隐私与安全性 → 完全磁盘访问权限 → 添加 AppPorts 并开启,然后重启应用
- 连接外置盘、选择外部应用库,退出要迁移的应用,点击「迁移到外部」即可
使用期间的两条重要习惯:应用和数据都迁走后,请保持外置盘连接;拔盘前先退出相关应用并正常推出磁盘。重要数据(聊天记录、虚拟机镜像等)建议迁移前做一次独立备份。
常见问题速查
| 疑问 | 简要回答 |
|---|---|
| 迁移后应用打不开? | 先检查外置盘是否连接,再看状态徽章是否为「孤立链接」 |
| 提示"已损坏"? | 多因签名机制检测到应用包变化,可尝试官方重装或在 AppPorts 中重签名(沙盒应用会被拒绝) |
| 拔掉外置盘会崩溃吗? | 不会。本地入口无法启动外部应用而已,重新连接即恢复 |
| 会收集用户数据吗? | 不会。AppPorts 完全离线运行,不收集、不上传任何数据 |
| 支持网络盘(NAS)吗? | 非主要验证目标,高频写入数据不建议使用 |
完整问答见 常见问题,兼容性与限制详见 使用限制。
开发者视角:零依赖的纯 Apple 框架实现
AppPorts 用 Swift + SwiftUI 编写,不依赖任何第三方库,全部文件操作基于 Actor 隔离保证线程安全。如果你打算贡献代码:
git clone https://gitcode.com/gh_mirrors/ap/AppPorts用 Xcode 打开项目即可构建。代码结构见 CLAUDE.md 中的架构说明,核心模块如 AppMigrationService.swift(迁移引擎)、ContainerVolumeMigrator.swift(挂载迁移)都配有独立的单元测试(位于AppPortsTests/)。项目基于 Apache License 2.0 开源,欢迎提交 Issue 和 PR。
总结
AppPorts 用"启动器壳 + 挂载/符号链接"的组合拳,把 macOS 上的应用迁移从一件充满手动操作和风险的事,变成了几个按钮的事。它免费、开源、无广告,把数据安全和可回滚作为第一设计原则——如果你正被 256GB 的内置硬盘逼得不断删文件,不妨给它一次机会,把空间留给真正在做的事。
【免费下载链接】AppPorts📦 A macOS utility to seamlessly migrate applications to external storage and reclaim local disk space.【一款 macOS 工具,无缝迁移应用到外部存储并自动建立链接,释放宝贵的本地空间】项目地址: https://gitcode.com/gh_mirrors/ap/AppPorts
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考