Skip to content

故障排除

迁移中断

现象

迁移过程中外部存储断开、系统崩溃,或 AppPorts 被强制退出。

处理方法

AppPorts 内置自动恢复机制。重新启动 AppPorts 后,会按以下流程处理:

  1. 检测残留的迁移数据,例如外部副本已存在但本地符号链接尚未创建。
  2. 检查外部目录中的 .appports-link-metadata.plist
  3. 如果 schemaVersionmanagedBysourcePathdestinationPathdataDirType 完整匹配,自动接续迁移或恢复链接。
  4. 如果 metadata 不匹配或目标是真实目录冲突,停止自动处理并保留现有数据,等待用户手动确认。

通常不需要手动干预

AppPorts 会在下次启动时处理中断的迁移。如果自动恢复失败,可在数据目录列表中查看「待规范」或「待接回」状态,并手动执行对应操作。

外部存储离线

现象

外部存储被拔出或断开后,已迁移的应用无法启动,数据目录显示为红色错误状态。

处理方法

  1. 重新连接外部存储。
  2. AppPorts 的 FolderMonitor 会自动检测到存储卷挂载,并触发重新扫描。
  3. 扫描完成后,应用和数据目录会恢复正常状态。
  4. 如果外置应用在 AppPorts 未运行时通过 App Store 更新了版本,重新扫描时会自动同步版本信息到本地 Stub Portal。

注意

外部存储离线期间,本地入口(Stub Portal)调用 open 命令会失败,应用无法启动但不会崩溃。数据目录符号链接会指向无效路径,关联应用可能读取不到数据。

签名恢复失败

现象

恢复原始签名失败,或恢复后应用仍提示「已损坏」。

可能原因与处理

原因处理方法
备份文件不存在无法恢复原始签名,可改用 Ad-hoc 重签名
原始开发者证书不在本机钥匙串中AppPorts 会自动回退为 Ad-hoc 签名,应用可启动但 Keychain 访问可能异常
Mac App Store 应用(SIP 保护)无法重签名,SIP 会阻止对系统保护应用签名的修改
应用目录为 root 所有AppPorts 会尝试通过管理员权限修改所有者,需要在弹窗中授权
Contents 符号链接目标已丢失无法签名,需要先恢复外部数据或还原应用

详细机制请参阅重签名与崩溃防护

App Store 应用无法迁移到外置硬盘

macOS 15.1 以下

macOS 15.1 之前的系统不支持 App Store 应用原生安装到外部存储。可采用以下方式:

  1. 在 AppPorts 设置中开启「App Store 应用迁移」。
  2. 手动迁移 App Store 应用。
  3. 应用更新后,再次迁移以覆盖外部副本。

macOS 15.1 及以上

如果 App Store 无法在外部存储上更新应用:

  1. 打开 App Store 设置。
  2. 开启「下载并安装大型 App 到独立存储盘」。
  3. 选择与 AppPorts 外部应用库相同的外部存储。

应用迁移后无法启动

排查步骤

  1. 检查外部存储连接:确认外部存储已连接且可访问。
  2. 检查应用状态徽章
    • 「孤立链接」:外部应用已丢失,需要手动解除链接。
    • 「已损坏」:执行重签名。
  3. 检查锁定状态:如果应用被 uchg 锁定,自更新程序可能无法运行。
  4. 查看日志:菜单栏 → 日志 → 在 Finder 中查看,搜索相关错误信息。
  5. 迁回本地:在外部应用库中选择「迁回本地」,确认问题是否由外部存储引起。

迁移时提示目标已存在

现象

迁移应用或数据目录时,AppPorts 提示目标位置已经存在,无法覆盖。

处理方法

  • 应用迁移:如果外部目标不是「待迁出」对应的旧副本,也不是 AppPorts 能识别的旧入口或旧迁移残留,AppPorts 会停止迁移。请先在 Finder 中确认外部目标是否仍有价值,再决定手动备份、删除或改名。
  • 数据目录迁移:如果外部目标目录没有匹配的 AppPorts metadata,AppPorts 不会按大小相近自动接管。请确认目录内容后手动处理,再重新迁移。
  • 迁回本地:如果本地已有同名真实应用或不属于当前外部应用的符号链接,AppPorts 不会自动覆盖。请先确认本地项目来源。

数据目录显示异常

现象

数据目录列表显示不完整或状态不正确。

处理方法

  1. AppPorts 使用 FolderMonitor 监控文件系统变化,通常会自动刷新。
  2. 快速切换应用时,旧扫描结果不会覆盖当前选中的应用;如果短时间内看到列表为空,等待当前扫描完成即可。
  3. 如果未自动刷新,可点击顶部工具栏的刷新按钮,或切换到其他标签页后再切回。
  4. 如果问题持续,请检查日志中的扫描错误信息。
最近更新