iCloudを使ったMac/iOSのユーザー辞書の同期

f:id:rio_t:20140207110847p:plain

最近になって、iPhone5sの電池の消耗が早くなったと感じていました。とりあえずバックアップして、復元してみました。しかしその後、iPhone5sのユーザー辞書が消え、iCloudと同期しなくなってしまいました。1日とちょっとの時間がかかってようやく解決したので、その流れをまとめておきます。

はじめに

以下の手順を実行したことにより、不具合が発生する場合もあります。自己責任でお願いします。

全体の流れ

  1. (iPhoneのバックアップ)
  2. 復元・脱獄したのち、バックアップから復元
  3. ユーザー辞書を同期したいすべてのデバイスのiCloud同期(書類とデータ)をオフ
  4. iCloud.com上のデータをリセットと削除
  5. Macのユーザー辞書のバックアップと削除
  6. iOSデバイスのユーザー辞書を削除
  7. Macでバックアップしたユーザー辞書をインポートし、iCloud同期をオン
  8. すべてのデバイスのiCloud同期をオン

復元の前に試したこと

ネットワーク設定のリセットや位置情報サービスの見直しなど、定番のもの。ただし症状は改善せず。
余談ですが今更、復元とバックアップから復元の違いを知りました。脱獄していても、バックアップから復元をすることができるんですね。バックアップから復元を行うと、Tweakの設定なども復元されるようです。

復元の後、iCloudの設定と脱獄

一度iPhone5sをまっさらな状態に戻し、iCloudの設定と脱獄を行いました。iCloudの同期項目は以下のとおりです。

f:id:rio_t:20140207120748p:plain

Tweakをインストールせずに、BatteryLifeのみインストールしてバッテリーの減り具合を確認しました。あっという間にどんどんバッテリーが減っていきます。これはおかしいぞということで、Google先生に聞いてみると、ユーザー辞書の同期がうまくいっていないとバッテリーの異常消耗が起こるということらしいのです。

ユーザー辞書同期の再設定

 ことえり辞書の同期 | Apple サポートコミュニティ
 [寄稿] iPhone 5s の異常発熱とユーザ辞書の不一致の因果関係について | gbsブログ
 徹底的にユーザ辞書を同期してみる - ザリガニが見ていた...。

基本的に、上記のサイトを参考にさせていただきました。ありがとうございます。
私が試した手順は以下のとおりです。

全デバイスのiCloud同期をオフに、iOSデバイスは変換学習もリセット

 手持ちのデバイスは、
 - iPhone5s (7.0.4)
 - iPad mini Retina (7.0.4)
 - iMac (OS X 10.9.1)
 - Macbook Air (OS X 10.9.1)
の4台です。このすべてがきちんと同期するようにしなければなりません。なのでまず、すべてのデバイスのiCloud同期「書類とデータ」をオフにします。iOSデバイスは、一般->リセット->キーボードの変換学習をリセットも行いました。iOSデバイスは再起動しておきます。

iCloud上のファイルをリセット、削除する

iCloud
 
iCloud上のファイルをリセットすることは、iCloud.com上で可能です。画面右上のアカウント名をクリックし、アカウント設定->詳細設定->書類とデータのリセットと進みます。
iCloud上のファイルを削除するには、MacのFinderを開き、メニューバーの移動->フォルダへ移動を選択します。移動先は、

~/Library/Mobile Documents/com~apple~TextInput/

です。移動したら、「Dictionariesフォルダの中身」と「PersonalDictionary.plist」を削除します。念のためバックアップはとっておきます。

Macのユーザー辞書を削除する

システム環境設定->キーボード->ユーザー辞書と進み、まずはバックアップをとるためにエクスポートします。エクスポートの方法は、以下の記事を参考にさせていただきました。
[箱] Mac OS X Mavericks ことえり 辞書のインポート・エクスポート 方法 | [箱]ものくろぼっくす

削除は、

~/Library/Dictionaries

に移動し、フォルダ内をすべて削除します。ここでもバックアップを忘れずに。ゴミ箱を空にすることができないので、一度再起動してからゴミ箱を空にします。念のためもう一度再起動し、Mac上のユーザー辞書が消えていることを確認します。

iOSデバイスのユーザー辞書を削除する

iOSのユーザー辞書のファイルを削除するには、脱獄する必要があります。ファイルパスは、

/var/mobile/Library/Keyboard

です。移動したら、「CoreDataUbiquitySupport」というフォルダを削除します。ここでも一応バックアップしておきます。おそらくこの中身が、iCloudから同期したユーザー辞書のファイルと、ローカルに保存されたユーザー辞書だと思います。
削除したら、iOSデバイスを再起動します。

Macのユーザー辞書をiCloudと同期する

Mac上でバックアップしたユーザー辞書をインポートします。インポートが終わったら、MaciCloud同期をオンにします。MacのFinderから、

~/Library/Mobile Documents/com~apple~TextInput/Dictionaries

を参照し、フォルダが生成されたことを確認します。

すべてのデバイスのiCloud同期をオンに

先ほどのMac以外のiCloud同期をすべてオンにします。先ほどと同様、「Dictionaries」フォルダ内に、デバイスと同じ数のフォルダが生成されたことを確認します。
あとは、各々のデバイスを再起動するなどして、ユーザー辞書が同期されていることを確認できるはずです。


ここまでやってみて、すべてのデバイスでユーザー辞書が同期するようになりました。iPhone5sのバッテリーの減りも、以前より少なくなった(特に未使用時)と思います。めでたしめでたし。