常见问题
安装与授权
AppPorts 需要什么权限?
AppPorts 需要完全磁盘访问权限,用于读取和修改 /Applications 目录。首次启动时会引导授权,你也可以在系统设置 → 隐私与安全性 → 完全磁盘访问权限中手动添加 AppPorts。
支持哪些 macOS 版本?
AppPorts 最低支持 macOS 12.0(Monterey)。macOS 15.1(Sequoia)及以上版本额外支持将 App Store 应用安装到外部存储,并在外部存储上原地更新。
可以使用 NAS 或网络挂载盘作为外部存储吗?
AppPorts 主要面向本地外部存储设备,例如移动硬盘、外置 SSD 或硬盘盒。NAS、SMB、rclone、SFTP 等网络挂载路径在理论上可以被 macOS 当作文件系统路径使用,但稳定性、权限、延迟和断线恢复能力取决于挂载方案本身。
如果要尝试网络挂载盘,建议先用不重要的应用或可重建的数据目录测试,并确认以下条件:
- 挂载路径在 AppPorts 启动前已经可访问。
- 网络断开后可以自动重新挂载到相同路径。
- 文件系统支持应用所需的权限、扩展属性和符号链接行为。
- 不要先迁移微信、虚拟机、游戏库等高价值或高频写入数据。
应用迁移
如何扫描非 /Applications 目录中的应用?
点击「Mac 本地应用」标题栏右侧的「+」按钮,选择要额外扫描的目录。适用于 JetBrains Toolbox、Steam 等将应用安装在自定义目录的工具。添加的目录会自动保存,下次启动 AppPorts 时会自动扫描,也会自动监控目录变化。添加后,标题栏会显示自定义目录数量;打开该计数菜单可查看或移除已添加的目录。
迁移后应用打不开怎么办?
- 确认外部存储已连接且可访问。
- 检查应用状态徽章。如果显示「孤立链接」,说明外部应用已丢失,需要手动解除链接。
- 如果系统提示应用「已损坏」,先试重装;仍不行再右键「重签名」,注意沙盒应用会被拒绝。
- 如果仍无法解决,可在外部应用库中选择「迁回本地」,先恢复到本地运行状态。
- 如果是双击没反应、图标闪一下就消失,见 macOS 27 升级说明。
出现「已损坏」提示怎么办?
这通常是 macOS 的代码签名机制检测到应用包结构发生变化。可按以下步骤处理:
- 先从官网或 App Store 重新下载安装一次,多数情况能解决。
- 仍然提示,在 AppPorts 中右键点击该应用,选择「重签名」。AppPorts 会备份原始签名并执行 Ad-hoc 重签名。
- 沙盒应用会被拒绝:重签名后它在 macOS 27 上可能无法打开,这类应用只能重装。
详细机制请参阅重签名与崩溃防护。
外部存储拔掉后应用会不会崩溃?
本地入口(Stub Portal)会尝试调用 open 打开外部应用。如果外部存储未连接,应用无法启动,但本地入口本身不会崩溃。重新连接外部存储后,即可恢复正常使用。
为什么有些应用迁移后仍然显示快捷方式箭头?
这是旧版 AppPorts 可能出现的情况。新版 AppPorts 对普通 .app 应用默认使用 Stub Portal,本地会显示为普通应用图标,通常不会再出现快捷方式箭头。
如果你仍然看到箭头,多半是旧版本创建的历史入口仍在使用整体符号链接。建议先将应用迁回本地,再使用当前版本重新迁移。
迁移后能不能更新应用?
取决于应用类型:
| 应用类型 | 能否自动更新 | 说明 |
|---|---|---|
| 原生应用(无自更新) | ✓ | 可按原方式更新 |
| Chrome、Edge(自定义更新器) | ✓ | 更新安装到本地,AppPorts 检测到本地版本更高后标记「待迁出」 |
| Sparkle / Electron 应用 | ✗ | 锁定后会阻止应用内更新,需通过 AppPorts 迁回本地后更新 |
| App Store 应用(macOS 15.1+) | ✓ | App Store 可在外置硬盘原地更新 |
| App Store 应用(macOS <15.1) | ✗ | 需手动二次迁移 |
「待迁出」是什么意思?
「待迁出」表示本地存在一个真实应用,并且 AppPorts 判断它比外部存储中的同一应用副本更新。常见场景是 Chrome、Edge 或其他自定义更新器把新版本安装回本地,而外部存储上仍是旧版本。
看到该状态时,可以重新执行「迁移至外部」,让本地新版替换外部旧副本。AppPorts 会优先按 Bundle ID 匹配应用,再按规范化名称兜底;如果版本号缺失、无法比较,或同名应用的 Bundle ID 不一致,就不会显示「待迁出」。
外部目标已经存在时会被覆盖吗?
不会直接覆盖。AppPorts 只会在以下情况下自动清理外部目标并继续迁移:
- 当前应用处于「待迁出」状态,外部目标可视为同一应用的旧副本。
- 外部目标被识别为 AppPorts 创建的旧 Stub Portal、旧 Deep Contents Wrapper 或整体符号链接入口。
- 外部目标是 AppPorts 迁移流程留下的旧残留。
如果外部位置存在无法确认归属的真实应用或目录,AppPorts 会停止迁移并提示目标冲突,避免误删用户数据。
App Store 应用怎么迁移到外置硬盘?
macOS 15.1+:在 App Store 设置中开启「下载并安装大型 App 到独立存储盘」,并选择与 AppPorts 外部应用库相同的外部存储。
macOS <15.1:在 AppPorts 设置中开启「App Store 应用迁移」。此方式需要手动迁移,应用更新后也需要再次迁移以覆盖外部副本。
为什么迁移前提示「受保护的应用」?
App Store 应用或归属系统(root)的应用通常受 macOS 权限保护,本地副本可能无法被 AppPorts 直接删除或替换。看到该提示时,更稳妥的做法是先在 Finder 中手动把应用拖到外部存储(系统会要求管理员密码),然后回到 AppPorts 为外部应用创建本地链接。仍可选择继续自动迁移,但可能以「权限不足」失败。
App Store 更新后出现多个打开方式或版本不一致怎么办?
v1.8.0 及以上版本会自动同步外置应用的版本信息到本地 Stub Portal,「打开方式」菜单会自动更新。如果仍出现版本不一致,可点击刷新按钮手动触发同步。
旧版本(v1.7.0 及以下)的处理方式:
- 打开 AppPorts,刷新本地应用和外部应用列表。
- 如果本地版本更新,重新执行迁移,让新版本覆盖外部副本。
- 如果只是本地入口状态异常,先解除链接,再从外部应用库执行「链接回本地」。
macOS 15.1 及以上版本建议优先使用 App Store 的原生外置安装能力,减少版本分叉。
双击文档后应用能启动,但没有打开对应文件怎么办?
这类问题常见于 Office、WPS 等依赖文件关联参数的应用。旧版本 Stub Portal 可能只启动外部应用本体,没有正确传递被双击文件的路径。请先升级到 v1.6.2 或更高版本,然后将相关应用迁回本地并重新迁移,或在外部应用库中重新执行「链接回本地」。
如果问题仍然存在,请导出诊断包并提交 Issue,说明应用安装来源(App Store、官网 .pkg、DMG 等)和复现步骤。
Adobe、Office 等应用套件可以迁移吗?
可以尝试,但这类应用往往不是单个独立 .app,而是多个应用、共享组件、后台服务和授权模块组成的套件。AppPorts 会尽量以目录为单位处理应用套件,但兼容性仍取决于应用自身结构。
建议迁移前关闭套件内所有应用,并确认已经登录或激活。迁移后如果出现授权异常、关联文件打不开或组件找不到,可先迁回本地,再只迁移体积较大的独立应用或数据目录。
迁移速度慢/卡住怎么办?
- 进度到达 100% 附近时可能会停顿一至两秒,这是在创建本地入口并完成收尾检查。
- 大型应用(如 Xcode、Adobe 系列)迁移时间较长,属于正常现象。
- 如果长时间无进展,请检查外部存储连接是否稳定。
- USB 2.0 接口速度较慢,建议使用 USB 3.0 及以上接口或 Thunderbolt。
数据目录迁移
数据目录迁移后应用数据会不会丢失?
正常情况下不会。AppPorts 会先将数据完整复制到外部存储,确认复制成功后再删除本地原始目录并创建符号链接。任一步骤失败时,会尝试自动回滚。
如果外部目标目录已经存在,AppPorts 只会在其中的 .appports-link-metadata.plist 与当前源路径、目标路径和数据目录类型完整匹配时接续恢复。没有匹配 metadata 的真实目录会被视为冲突,AppPorts 不会仅凭大小相近就接管或覆盖。
什么情况下数据目录迁移可能导致应用异常?
- 应用使用文件锁或 SQLite WAL 日志。
- 跨符号链接访问时,扩展属性可能丢失或行为不一致。
- 同一 Team 下多个应用共享
Group Containers目录。
~/Library/Containers/ 和 ~/Library/Group Containers/ 下的目录用的是挂载迁移而不是符号链接,需要 APFS 外置盘,第一次打开应用要点允许授权框。见挂载迁移。
微信的聊天记录能不能放到外置盘?
能,用「挂载迁移」。在「应用数据」里选中微信,Containers 分组下的 xwechat_files 子目录(按账号分)和 Application Support/com.tencent.xinWeChat 都可以挂载迁移。外置盘必须是 APFS;迁移后第一次打开微信会弹授权框,点允许。
不要用旧版本的"迁移 + 重签名"方式,那会让微信在 macOS 27 上打不开。
微信数据迁移后看不到聊天记录怎么办?
分两种情况:
- 用 1.9.0 挂载迁移的:检查外置盘是否连接、AppPorts 里状态是否「已挂载」、授权框是不是点了拒绝。排查步骤见故障排除。
- 用旧版本符号链接迁移的:沙盒微信读不到容器外的数据,这是机制问题不是故障。先在 AppPorts 里把该目录「还原」回本地;如果当时选过「同意重签名」,还要从官网重装微信。步骤见 macOS 27 升级说明。
不要用重签名来修,它只会把事情弄得更糟。
我的外置盘是 exFAT,能迁移微信数据吗?
不能,挂载迁移只支持 APFS。不改也完全没问题:微信数据留在本机照常使用,应用本体和其它数据目录照常迁移到这块盘。以后想迁移时,换一块 APFS 盘最省事;想在这块盘上腾出空间的话,如果磁盘已有未分配空间,可以在满足分区布局条件时新建 APFS 分区;如果 exFAT 占满整块盘,macOS 和 Windows 的系统自带工具都不能直接缩小它,需要先备份再重新分区。exFAT 内部的剩余容量不等于未分配空间。我们试过在 exFAT 上放磁盘映像的绕路方案,拔盘测试里映像整个报废,所以没有提供。详见为什么外置盘必须是 APFS。应用本体和其它数据目录不受这个限制。
挂载迁移后 Finder 里会多出磁盘图标吗?
不会。AppPorts 挂载数据卷时会让它不出现在 Finder 边栏和桌面上;外置盘刚接入的一两秒内可能短暂闪现,接回后就消失。「磁盘工具」里仍能看到名为 AppPorts-… 的卷,那就是迁移过去的数据,不要抹掉或删除。详见挂载迁移:日常使用。
我的外置盘加密了,为什么不能挂载迁移?
挂载迁移新建的数据卷不会继承原卷的密码,照常迁移会让本来受保护的数据落在没有密码的卷上。AppPorts 在这种情况下停下,不做悄悄降级。详见加密的外置盘。
删除 AppPorts 之前要做什么?
如果用过挂载迁移,先在「应用数据」里把这些目录「还原」回本机。不还原的话数据仍在外置卷上,但登录后没人把它接回来,应用会看到空目录;重新安装并打开一次 AppPorts 即可恢复。
升级 macOS 27 后应用突然打不开,是之前的数据迁移导致的吗?
数据没坏,是签名的问题。旧版本迁移容器数据时如果选了「同意重签名」,应用的沙盒身份被拆掉,macOS 27 开始拒绝它访问自己的容器。修法是还原数据、重装应用,见 macOS 27 升级说明。
Crossover、Parallels、虚拟机或游戏库适合迁移吗?
这些软件的应用本体通常不一定很大,真正占空间的往往是虚拟机镜像、容器、游戏库或模型缓存。相比迁移应用本体,更建议优先查看「数据目录」和「工具目录」中是否识别到了对应的大型数据目录。
如果数据目录包含虚拟磁盘、数据库或频繁写入的文件,请确保外部存储性能稳定,并先备份。网络挂载盘不建议直接承载这类高频写入数据。
如何还原迁移的数据目录?
在数据目录列表里找到已迁移的目录,点「还原」。符号链接迁移的目录会把数据复制回本地再删掉链接和外部副本;挂载迁移的目录会把卷上的数据复制回本地再删除卷,外置盘要保持连接。
其他
AppPorts 会收集我的数据吗?
不会。AppPorts 完全离线运行,不收集、不上传用户数据。日志文件保存在本地 ~/Library/Application Support/AppPorts/ 目录下。
如何反馈问题?
请在项目 Issues 页面提交反馈。建议同时附上诊断包(菜单栏 → 日志 → 导出诊断包),以便更快定位问题。
