データ移行操作ガイド
このページでは、データディレクトリ移行の操作を説明します。技術的な実装は基本実装を参照してください。
アプリに関連するデータディレクトリを探す
- AppPorts のメインウインドウで「データディレクトリ」タブに切り替えます。
- 上部で「ツールディレクトリ」と「アプリデータ」を切り替えられます。
- アプリデータを見る場合は左側でアプリを選びます。右側に、そのアプリに関連する
~/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/ | アプリ名 | シンボリックリンク |
コンテナだけ方式が異なる理由はマウント移行を参照してください。
ツールディレクトリ
AppPorts は、よく使われる開発ツールがホームフォルダに作成するディレクトリ(~/.npm、~/.gradle など)を検出します。
- 「データディレクトリ」タブで「ツールディレクトリ」に切り替えます。
- 検出したディレクトリ、サイズ、優先度、状態が表示されます。
ローカルのディレクトリがなくても、外部ドライブの標準位置に AppPorts が管理するディレクトリがあれば「再リンク待ち」と表示します。対応一覧はツールディレクトリの検出を参照してください。
フォルダの移行(カスタムフォルダ)
「Directory Migration」タブではホームフォルダ内の任意のフォルダを移行できます。大きなプロジェクト、モデル、素材ライブラリなどに適しています。
- 「Directory Migration」に切り替えます。
- 「Local Folders」の見出しにある「+」をクリックします。
- ローカルフォルダ、外部ドライブの移行先ルートの順に選びます。移行先は
目标根目录/文件夹名です。
ローカルフォルダはホームフォルダ内に置く必要があり、ホームフォルダそのものは指定できません。そのパスや親パスにシンボリックリンクを含めることもできません。管理中のディレクトリと包含関係にあってはいけません。外部の移行先はホームフォルダの外に置き、ローカルフォルダとの包含関係も避けてください。
移行後、ローカル側には元のパスの状態、外部側にはコピーの状態が表示され、「再リンク」や「Restore」を実行できます。設定を削除しても記録だけが削除され、データは削除されません。
シンボリックリンクによる移行
コンテナ外のすべてのディレクトリが対象です。
- ディレクトリを探し、「Migrate」をクリックします。
- AppPorts が外部ドライブへコピーし、管理マーカーを書き込みます。元ディレクトリを安全用バックアップに名前変更し、元のパスにシンボリックリンクを作成して、最後にバックアップを削除します。
- 完了すると「Linked」になります。
移行後の再署名
データディレクトリページ上部の「Re-sign after migration」はデフォルトでオフです。オンにすると、移行後に関連アプリへ Ad-hoc 再署名を行います。移行後に「壊れています」と表示される場合の対処に使うもので、サンドボックスアプリはスキップします。通常は有効にする必要はありません。再署名とクラッシュ対策を参照してください。
マウント移行
Containers と Group Containers 内のディレクトリが対象で、ボタンは「マウント移行」と表示されます。
- 外部ドライブが APFS であることを確認し、関連アプリを終了します。
- 「マウント移行」をクリックし、確認ダイアログの 3 つの案内を読んで続行します。
- AppPorts が外部ドライブにボリュームを作り、データをコピーして元のディレクトリにマウントします。
- 完了すると「マウント済み」になります。初めてアプリを開くときにシステムの許可ダイアログが表示されたら、「許可」をクリックしてください。
詳細はマウント移行を参照してください。
復元
シンボリックリンクで移行したディレクトリ(「Linked」):「Restore」をクリックすると、AppPorts がデータをローカルへコピーし、リンク、外部コピーの順に削除します。
マウント移行したディレクトリ(「マウント済み」または「マウント待ち」):「Restore」をクリックすると、ボリュームのデータをローカルにコピーし、ボリュームをマウント解除して削除します。外部ドライブは接続したままにしてください。
どちらも先にコピーしてから切り替えるため、途中で失敗してもデータは失われません。
問題のある状態への対処
| 状態 | 意味 | 操作 |
|---|---|---|
| 整理が必要 | AppPorts の管理リンクですが、外部のパスが標準位置にありません | 「整理」で外部データを標準のパスに移し、リンクを再作成します |
| 再リンク待ち | 外部のデータは残っていますが、ローカルのリンクがありません | 「再リンク」でリンクを再作成します |
| 既存のシンボリックリンク | AppPorts が作成したシンボリックリンクではありません | 「リンクの詳細」から管理対象に追加できます |
| マウント待ち | マウント移行のボリュームはオンラインですが未マウントです | 「マウント」を実行します |
| 外部ドライブ未接続 | マウント移行のデータボリュームが見つかりません | 外部ドライブを接続すると AppPorts が自動で再接続します |
再リンクと整理はディレクトリにのみ対応します。外部の移行先が通常ファイルになっている場合、AppPorts は停止してそのファイルを残します。
ログに含まれるアプリ情報
診断しやすいよう、データディレクトリ操作のログには関連アプリの情報が含まれます。
| フィールド | 説明 |
|---|---|
app_name | 関連アプリ名 |
app_status | アプリの状態 |
app_is_resigned | アプリが再署名されているか |
app_bundle_id | 実体アプリの Bundle ID |
app_real_path | 実体アプリのパス |
マウント移行では、ボリューム名、Volume UUID、diskutil コマンドの出力も記録します。
ツリー表示
サブディレクトリがある場合はツリーで表示します。親の左側に展開矢印があり、子は字下げされます。各項目に個別のサイズ、状態、操作ボタンが表示されます。
