常见问题
安装与授权
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 时会自动扫描,也会自动监控目录变化。
迁移后应用打不开怎么办?
- 确认外部存储已连接且可访问。
- 检查应用状态徽章。如果显示「孤立链接」,说明外部应用已丢失,需要手动解除链接。
- 如果系统提示应用「已损坏」,请在 AppPorts 中右键点击该应用并选择「重签名」。
- 如果仍无法解决,可在外部应用库中选择「迁回本地」,先恢复到本地运行状态。
出现「已损坏」提示怎么办?
这通常是 macOS 的代码签名机制检测到应用包结构发生变化。可按以下步骤处理:
- 在 AppPorts 中右键点击对应应用。
- 选择「重签名」。
- AppPorts 会自动备份原始签名,并执行 Ad-hoc 重签名。
详细机制请参阅重签名与崩溃防护。
外部存储拔掉后应用会不会崩溃?
本地入口(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 更新后出现多个打开方式或版本不一致怎么办?
v1.7.1 及以上版本会自动同步外置应用的版本信息到本地 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/ 下的应用数据时,AppPorts 会询问是否在迁移完成后对关联应用执行 Ad-hoc 重签名。若应用迁移后容易提示「已损坏」、无法识别数据或启动异常,建议选择「同意重签名」;如果只是想先迁移数据并保持签名状态不变,可选择「不同意,仅迁移」。
微信数据迁移后看不到聊天记录怎么办?
微信这类应用对容器路径、签名状态和本地数据一致性比较敏感。迁移后如果提示目录无法识别、聊天记录不可见或启动异常,请按以下顺序处理:
- 先在 AppPorts 中对微信执行「重签名」。
- 如果仍异常,立即在数据目录管理中执行「恢复」,将数据迁回本地。
- 确认微信恢复正常后,再决定是否重新尝试迁移。
- 如需反馈问题,请导出诊断包并附上微信版本、macOS 版本和迁移的数据目录类型。
迁移聊天记录、虚拟机、数据库等高价值数据前,建议先做独立备份。
Crossover、Parallels、虚拟机或游戏库适合迁移吗?
这些软件的应用本体通常不一定很大,真正占空间的往往是虚拟机镜像、容器、游戏库或模型缓存。相比迁移应用本体,更建议优先查看「数据目录」和「工具目录」中是否识别到了对应的大型数据目录。
如果数据目录包含虚拟磁盘、数据库或频繁写入的文件,请确保外部存储性能稳定,并先备份。网络挂载盘不建议直接承载这类高频写入数据。
如何恢复迁移的数据目录?
在 AppPorts 的数据目录管理界面中选择已迁移的目录,点击「恢复」即可。AppPorts 会删除本地符号链接,并将数据从外部存储复制回本地。
其他
AppPorts 会收集我的数据吗?
不会。AppPorts 完全离线运行,不收集、不上传用户数据。日志文件保存在本地 ~/Library/Application Support/AppPorts/ 目录下。
如何反馈问题?
请在项目 Issues 页面提交反馈。建议同时附上诊断包(菜单栏 → 日志 → 导出诊断包),以便更快定位问题。
