macOSで ユーザー辞書が 同期されないときの対処法

macOSやiPhone、iPadを複数台使っていると、「ユーザー辞書(テキスト置換)」がなぜか一部の端末だけ同期されない、という現象に出会うことがあります。
たとえば、MacBook Airではちゃんと反映されているのに、デスクトップのMacでは新しい単語が出てこないといったケースです。
こうした不具合は珍しくなく、環境によっては数日経っても改善されないことがあります。
原因はいくつか考えられます。まず基本として確認しておきたいのがiCloudの設定です。
ユーザー辞書はiCloud Driveを経由して同期されますが、以前のmacOSでは「iCloud Drive > オプション」に「単語」というチェックボックスがあり、ここがオフになっていると同期されませんでした。
ところがVentura以降のmacOSでは、このスイッチ自体が姿を消し、ユーザー辞書は常に自動で同期対象とされる仕様に変わっています。つまり、「単語」の項目が表示されないのは不具合ではなく正常な挙動です。
それでも同期されない場合は、まずiCloud Driveそのものがオンになっているかを確かるのが良いでしょう。
そして、同じApple IDでログインしているかも必ず確認します。試しに「zzz → テスト」のような短い置換を登録し、別の端末に数分以内に反映されるかを見るのが有効です。
うまくいかない場合には、同期キャッシュが壊れている可能性もあるため、一度iCloudからサインアウトして再ログインするのがもっとも効果的なリセット方法です。経験的に、この操作で改善するケースは多く見られます。
どうしても改善しないときの最終手段として、ユーザー辞書のデータベースを手動でコピーする方法も存在します。
実はmacOSでは、ユーザー辞書は「~/Library/KeyboardServices/」フォルダー内にある「TextReplacements.db」というSQLiteファイルに保存されています。
さらに「TextReplacements.db-shm」と「TextReplacements.db-wal」という付随ファイルもあり、これらをセットで扱う必要があります。
同期がうまくいっている端末からこの3ファイルをコピーし、同期されない端末の同じ場所に上書きすると、強制的に辞書を揃えることが可能です。
ただしこれはApple非公式の方法であり、iCloud同期がオンのままだとすぐに上書きされてしまう恐れがあります。実行する場合はiCloudの辞書同期をオフにしてから行う方が安全でしょう。