Skip to content

数据迁移操作指南

本页面介绍数据目录迁移的实际操作流程。如需了解技术实现细节,请参阅基础实现

查找应用关联的数据目录

  1. 在 AppPorts 主窗口切换到「数据目录」标签。
  2. 左侧面板会显示所有已安装的应用。
  3. 使用顶部工具栏在「工具目录 / 应用数据」之间切换;查看应用数据时,点击某个应用后,右侧面板会显示该应用在 ~/Library/ 下关联的数据目录。

AppPorts 会自动扫描以下目录,并按应用 Bundle ID 或名称进行匹配:

扫描路径匹配方式
~/Library/Application Support/Bundle ID 或应用名称
~/Library/Preferences/Bundle ID 或应用名称
~/Library/Containers/Bundle ID
~/Library/Group Containers/Bundle ID
~/Library/Caches/Bundle ID 或应用名称
~/Library/WebKit/Bundle ID
~/Library/HTTPStorages/Bundle ID
~/Library/Application Scripts/Bundle ID
~/Library/Logs/应用名称
~/Library/Saved Application State/应用名称

工具目录(Dot-Folder)

AppPorts 可自动识别常见开发工具在用户目录下创建的 dot-folder:

  1. 在「数据目录」标签中切换到「工具目录」子标签。
  2. 页面会列出所有已识别的工具目录及其大小。
  3. 每个目录都会显示优先级徽章(推荐/可选)和当前状态。

详细支持列表请参阅工具目录识别

迁移操作

单个目录迁移

  1. 在数据目录列表中找到要迁移的目录。
  2. 点击右侧的「迁移」按钮。
  3. AppPorts 会执行以下步骤:
    • 将目录复制到外部存储。
    • 写入托管链接元数据。
    • 删除本地原始目录。
    • 创建符号链接。

自动重签名

数据目录页顶部工具栏提供「迁移后重签名」开关。开启后,数据目录迁移会自动触发关联应用的签名操作:

  1. 迁移前:备份关联应用的外部真实路径的原始签名,而不是备份本地入口壳。
  2. 迁移完成后:对外部真实应用执行 Ad-hoc 重签名。该过程以静默模式运行,失败时不弹窗。

对于已链接应用,AppPorts 会自动解析 Stub Portal 壳或符号链接背后的真实应用路径,确保签名变更作用于实际应用包,而不是本地入口壳。

容器数据迁移确认

迁移 ContainersGroup Containers 相关应用数据时,AppPorts 会在迁移前确认是否在完成后重签名。选择「同意重签名」会执行上述备份与 Ad-hoc 重签名;选择「不同意,仅迁移」则只迁移数据目录。

批量迁移

  1. 在工具目录列表中勾选多个目录。
  2. 点击底部的「批量迁移」按钮。
  3. AppPorts 会按顺序逐个执行迁移。

优先级建议

数据目录按优先级分为三级:

  • 重要critical):迁移后必须正常工作,影响应用核心功能
  • 推荐recommended):占用空间大,迁移收益高
  • 可选optional):空间较小或可重建

建议优先迁移标记为「推荐」的目录。

恢复操作

  1. 在数据目录列表中找到已迁移的目录(状态为「已链接」)。
  2. 点击右侧的「恢复」按钮。
  3. AppPorts 会执行以下步骤:
    • 删除本地符号链接。
    • 将数据从外部存储复制回本地。
    • 删除外部目录(尽力而为)。

如果恢复或接续迁移时发现外部目标已存在,AppPorts 会检查 .appports-link-metadata.plist。只有 metadata 与当前源路径、目标路径和目录类型完整匹配时,才会自动接回或恢复;否则会提示目标冲突并保留现有目录。

处理异常状态

待规范

目录由 AppPorts 管理,但外部路径不在规范位置。点击「规范化」按钮后,AppPorts 会将外部数据移动到规范路径并重建符号链接。

待接回

外部存储上的数据仍在,但本地符号链接已丢失。点击「重新链接」按钮后,AppPorts 会重新创建符号链接。

现有软链

这是非 AppPorts 创建的用户自定义符号链接。可选择「接管」,由 AppPorts 写入托管链接元数据,并将其纳入管理。

日志上下文

数据目录操作(迁移、恢复、规范化、重新链接)的日志中会自动包含关联应用的上下文信息:

字段说明
app_name关联应用名称
app_status应用状态(已链接、本地等)
app_is_resigned应用是否已被重签名
app_bundle_id应用的 Bundle ID(基于真实路径读取)
app_real_path应用的真实外部路径

这些字段可在导出诊断包时帮助更精确地定位问题。

树形视图

对于包含子目录的数据目录(如 Application Support 下的多个应用目录),AppPorts 提供树形分组视图:

  • 父目录左侧显示展开/折叠箭头。
  • 子目录显示层级缩进。
  • 每个节点独立显示大小和状态。
  • 可对单个子目录执行迁移或恢复操作。
最近更新