解決編:iPhoneユーザ辞書の中身が消える>iOS7(またはiCloud)の極悪仕様

No Comments

以前のエントリーの解決編なのですが、、、
結論的なことを先に書きますと、Appleのデフォルト環境つまりAppleが用意している手段のみ、での解決はできない(現段階)ので、これを解決と言って良いのかどうかは微妙です。

iPhoneユーザ辞書の中身が消える>iOS7(またはiCloud)の極悪仕様 « Macネタ | 物語研究所 “夢前案内人”

前回エントリーを上梓した段階ではウェブ検索しても手掛かりになる情報は見付かりませんでした。より正確に言えば、iPhone上の同期したユーザ辞書が消える、リセットしても新規登録できないという症状は同じだが、iCloudの同期を一旦オフにしてとか、入力補助機能をゴニョゴニョすると治るという記事ばかりで、当環境で発生している現象には該当しない情報ばかりだった。それでも、駄目で元々で一応実行してみたが、案の定治りはしなかった。

注釈:以下はiPhoneのユーザ辞書をMacのことえりユーザ辞書とiCloud経由で同期している人向けの情報で、iPhone単独使用でユーザ辞書のトラブルに見舞われている人には役立たない情報です。

半年以上を経過して改めて検索してみると以下の記事を見付けた。

直った!iOS 7でユーザー辞書が使えない人必見の治療方法!

この記事で紹介されているリンク先

iOS7のユーザ辞書をリセットするスクリプト – ザリガニが見ていた…。

にアクセスして、ここから更に顛末のそもそもの記事

徹底的にユーザ辞書を同期してみる – ザリガニが見ていた…。

を読んでみると “ザリガニが見ていた…。” 管理人:zariganitoshさんも全く同じだと言える現象に遭遇してる! これでビンゴに違いない! なるほど、書いてある「いつの間にか膨れ上がってしまったユーザ辞書」というのも該当する。 なので示されている手順を実行する前に、ことえりのユーザ辞書を大々的にダイエットすることに。 ユーザ辞書のダイエット、編集の仕方および、バックアップの取り方は別エントリーにしましたので、こちらを参照してください。
OSX Mavericks ことえりユーザ辞書の編集と、そしてバックアップ方法 « Macネタ | 物語研究所 “夢前案内人”

ユーザ辞書同期不全 [1] の状態を解消する手順そのものは “徹底的にユーザ辞書を同期してみる – ザリガニが見ていた…。” を参照して頂くとして、要点、注意点、また私の環境では挙動が少し違った故に違った対応をした部分などを附記しておきます。

  • 件の「iOS7のユーザ辞書をリセットするスクリプト」は、iTunesでiPhoneのバックアップを実行してコンピュータ上に出来たバックアップ・ファイル(~/Library/Application Support/MobileSync/ に生成される)を読み取りに行って、この中のユーザ辞書に該当する部分のデータだけを取り除いたデータを別ファイルとして保存してくれる(ユーザ辞書部分だけ無くなったバックアップ・ファイルが出来る)。という動作をするものです。ので、このバックアップ・ファイルを作ってからiPhoneを初期化した後に、このバックアップ・ファイルから復元するとユーザ辞書が空っぽになった(その他の状態は元通りの)iPhoneになるということです。(下の画像参照)スクリーンショット iPhoneバックアップ-reset-user-dictionary
    理屈的には、バックアップを取る直前にiPhone上の操作でユーザ辞書をリセットしたもののバックアップを取れば同じになると思えるのですが、実際実行してみるとこの方法は上手くいかない。少なくとも私がやった限りでは上手くいかなかった。 後述する別件でもこのスクリプトが有効だったことを考え合わせると、単にユーザ辞書のサイズが膨大だったのだけでなく、辞書の内容ではなく辞書ファイルの容れ物(つまりはフォーマッティング)が破損していたのではないか?と推測します。だから辞書の登録削除の操作をしても正常に削除処理はされずに辞書データは残ったままだったのだと。ユーザ辞書が或る閾値を超えて大きくなるとフォーマットの整合性が損なわれる可能性も考えられます。そういえば確かにiPhone上で文字変換操作をしても候補に出てこないのに、iTunesに接続して表示されるステータスを見ると容量は減っていなかったので、ユーザ辞書の内容が消えたのではなく、データにアクセス出来なくなっていただけと考える方が辻褄が合います。


  • iCloud書類のリセットの作業を行うMac一台(以下「メイン機」)だけを残して、同じApple ID でiCloudにサインインしている全てのディバイスをサインアウトすると共にユーザ辞書を削除。
    ここで実は私はハマッてしまったのだが、デスクトップ機は内蔵HDDのクローンをバックアップとして外付けHDDに保存していて、時々内蔵HDD上のシステムのメンテがてら外付けのシステム(サブのシステム)から起動するのだが、こちらのアカウントでもiCloudにサインインしている状態だったのに加えて、メイン機に於いてもMacの動作に問題が起こった時の動作確認トラブル・シューティング用の別アカウントが作ってあって、こちらでもiCloudにサインイン状態だった等々を失念していて「https://www.icloud.com にアクセスして、アカウント設定 >> 詳細設定 >> 書類とデータのリセット」を実行。 見かけの操作上はリセット出来たように見える(そう表示される)も、ユーザ辞書がリセットされずに、リセットされていると思って一連の操作を済ませてiCloud同期を再開させると古い辞書が同期されて挙句 iPhoneのユーザ辞書が(見かけ上)消えてしまうという元の木阿弥に。 一台でもサインアウトしていないものが残っているとリセットは実行されないみたい(あくまで挙動からの推定)。


  • ここまで徹底しないといけないのかな?と半信半疑ですが「実際自環境ではこうしないと上手くリセットされなかった」ということで書いておきます。
    1. メイン機のメインのアカウント一つだけ残して(この段階ではメイン機メイン・アカウントはまだ触らない)、その他の全て・・・サブのアカウント、サブ機の過去に一回でもiCloudを利用したことのあるアカウント全て、Windows機で利用したこともあるなら当然これも、iCloudからサインアウト、より徹底したいならiCloudアカウント自体を削除した上で、ユーザ辞書を削除。当然iPhoneに於いてもiCloudアカウントを削除。メイン機メイン・アカウントはiCoud環境設定で「書類とデータ」の同期だけオフにする。
    2. ユーザ辞書の削除の仕方もより完璧を期する方法がありまして、以下の通りします。
      ~/Library/Dictionaries を開き、この中の「CoreDataUbiquitySupport」と「ユーザ辞書」を削除。(下の画像参照) ユーザ辞書の本体は「CoreDataUbiquitySupport」の方で「ユーザ辞書」はこれのコピー。OSX Mavericks からこういう仕様に変更になっていて、「ユーザ辞書」も残したのは下位バージョンからの移行を考慮に入れてのことだと思われます。なので将来的には「CoreDataUbiquitySupport」一本になっていく気がします。スクリーンショット ~/Library/Dictionaries の中の「CoreDataUbiquitySupport」と「ユーザ辞書」
    3. メイン機のメイン・アカウントで(まだ、このアカウントではiCloud同期は有効である点に注意されたし) ~/Library/Mobile Documents/com~apple~TextInput フォルダを削除 → しようとすると「“com~apple~TextInput”を iCloud から削除してもよろしいですか?」とアラートが出る。(下の画像参照)スクリーンショット Mobile Documents 内のものを削除しようとすると現れるアラートこの挙動から ~/Library/Mobile Documents/ 以下はDropBoxと同じ、このフォルダ以下の構成を触るとそれがそのままiCloudサーバに反映されるという機能の仕方をしていると分かる(だから、この時点でiCloudサーバとのリンクを切らないでおく必要があるのです)。削除後、念の為に https://www.icloud.com にアクセスして確認してみると com~apple~TextInput フォルダ自体は自動で再生成されていたが中身は空になっていた。
    4. ここでメイン機メイン・アカウントのiCloud同期をオフに(iCloudアカウントを削除)する。このうえで上記と同じ要領でユーザ辞書を削除する。(この段階でユーザ辞書のバックアップは確保できていること。まだならバックアップを先に済ませてください)
    5. 多分しなくても大丈夫なように思いますが念の為にコンピュータを再起動し、更に念には念を入れ(私の場合、先の失敗で懲りているので)全てのディバイスで「iCloud がオフの状態が維持されているか」「ユーザ辞書の中身は間違いなく空か」を確認した上で、メイン機メイン・アカウントにてバックアップからユーザ辞書を登録し直しました。
    6. メイン機のメイン・アカウントでテキスト・エディタを起動してことえりにて文字入力&変換を実行してみて登録単語が候補に現れてくるのを確認して、あとは順次iPhone、その他のディバイスのiCloud同期を(「書類とデータ」も)オンにし、文字入力&変換が正しく行えているかを確認して終わりです。

おまけの後日談:

本件とは別に後日、iPhoneの同期をiTunesから行おうとすると「空き容量不足です」という警告が出て同期が正常完了できない状態に陥った。新しいアプリを増やしたとか、同期する音楽、動画ファイルを増やしたとかは一切ないのにです。よく見るとiPhoneの容量表示インジケーターで「その他」の領域が異常に大きくなっていて、これ以前に同期してあった「音楽」「動画」「書類とデータ」の合計と数値的に一致するので、何らかの誤動作でフォーマットが壊れて何のファイルか正しく認識されなくなって「その他」扱いになっているのだろうと推測されました。こうなるとこれは最早「容量を無駄に使っているだけのゴミ」なのでiTunesから復元を実行するしかない。
最初、普通に復元・・・復元実行プロセスの最初の段階でバックアップが実行されるバックアップからの復元・・・を実行したら、データ破損したそのままの「その他が大容量を占めている」状態で復元されてしまった。
「ありゃりゃ、こりゃ困ったね」と思い、、、ここで閃いた。「もしかしたら(先述の)ユーザ辞書をリセットするスクリプト で処理したバックアップ・ファイルから復元を実行したら解決するのではないか?」と。
これは勘である。根拠などない。やってみて駄目だったら他の手を考えれば良いだけ。と考え実行してみたら問題はクリアされた。
このことから帰納的に考えるに、iPhoneのユーザ辞書のフォーマットが破損することが他の領域も巻き込んで正しく認識されなくなる事態を引き起こす場合があるのだろう。と。 もちろん、誤認識され「その他」の領域が異常に大きくなって「空き容量不足です」警告が出るトラブルの全てがこれに該当すると、たった一つのケースで言えるわけはありませんが、このトラブルに遭遇した方は「物は試し」と「やってみるだけやってみて上手く行ったらラッキー」くらいに考えて参考にして下されば幸いです。


2014年6月10日 5:46 追記
zariganitoshさんのページの片方、スマートフォン用のページのURLと気付かずにリンクしていたのでパソコン版の方のURLへ修正。

——–[ 脚注 ]—————-
  1. 辞書が表示されない、変換候補に出てこない、削除、追加、登録ができない、Mac上のことえりユーザ辞書とiPhoneのユーザ辞書の内容が一致しない

iPhoneユーザ辞書の中身が消える>iOS7(またはiCloud)の極悪仕様

No Comments

iOSを7にアップデートしたらユーザ辞書の中身が消えるというトラブルに遭遇した。
ところがどっこい、トラブル(不具合)だと思っていたら、これが仕様でのようであると判明して、この仕様変更はあまりにもユーザ無視の極悪仕様なのでここに報告するとともに糾弾したいと思います。
また、この情報を共有、拡散をお願いしたいと思います。

これが仕様であるようだと判断した経過は以下の通り。

  • iOS6から OS X 10.8 Moutain Lion の「ことえり」のユーザ辞書に登録してある単語がiCloud経由でiPhoneのユーザ辞書に同期される仕様になっている(パソコンで使用しているMac OS X が10.7以前の場合は実装されていない)。
  • 私は普段パソコン用のIM(Input Method)はGoogle日本語入力を使っているので、この新しい機能が実装されていることは知らなかった。
  • iOS7がリリースされたのでアップデートした処、iPhoneのユーザ辞書の内容が消え、かつ、(消えたのは諦めて)新たに辞書登録をしようとしても新規の登録(保存)すら出来ない現象に遭遇にし、この問題を解決するためにネットで情報を探索をしている過程でこの機能がiOS6の段階から実装されていたことを知った。
    (なので、ここで書いている状態はiOS6時代から既に存在していた可能性はあると思われます。但し、今回の件でネットで調べていて、これがiOSおよびOS X の仕様によるものだと気付いている人は居ない模様で、この点を指摘している情報は一切見当たらなかったです)
  • このことから、どうもiCloud同期絡みでこの問題が起こっているのでは?という推測が成り立った。
  • 普通にiPhoneの復元を実行しても問題が解決しなかったので、iPhoneのバックアップを取っておいてから、iPhoneの設定内の「リセット」からiPhoneを初期化してから、新しいiPhoneとしてアクティベーション&iOSを7にアップデートしてから、バックアップを復元。 この一連の操作でiPhoneのユーザ辞書は新規登録できる正常な状態になった。
  • 次にパソコンのことえりのユーザ辞書と同期するかどうかを試すため、ことえりのユーザ辞書にGoogle日本語入力の辞書から書き出した単語群を読み込ませて [1] iPhoneの 設定:iCloud:書類とデータ およびパソコンの システム環境設定:iCloud:書類とデータ をオンにし暫く待つと、見事に同期されちょっと感動。
  • iPhoneのユーザ辞書が使えるようになったので,これでめでたしめでたしと思って、暫く使っていると、ふと見るとまたiPhoneのユーザ辞書の中身が消えていることに気付く。
  • 「はて【・_・?】」と思っていると、、、ここで勘のいい人は気付いたかもしれないが、そう!パソコンでの使用IMをGoogle日本語入力に戻していたのである。もちろんオフに(システム環境設定:言語とテキスト:入力ソース でことえりのチェックを外す)はしていないのだが。。。
  • オフにはしていないので「まさか?!」と思いつつ真偽を確認するために(不便だが)パソコンで使うIMをことえりにして暫く使って、念の為に再起動したiPhoneのユーザ辞書を確認すると戻っている。 → 再びIMをGoogle日本語入力に切り替えてパソコンを使う → 暫く待ってiPhoneのユーザ辞書を確認すると中身が消えている。 → 再びIMをことえりにして暫く待つとiPhoneのユーザ辞書が戻っている。 → 以下同様
  • これを計で5度繰り返して、パソコンでアクティヴになっているIM:ことえりになっている時にだけiCloudでのユーザ辞書同期がされ、非アクティヴにすると同期が実行されなくなる。だけなのではなく「同期するユーザ辞書が存在しない=ユーザ辞書の中身が無い」として「内容ゼロの辞書を同期(つまり中身が消去)される」という動作になっているようだということを確認。

ここで問題なのは、同期するのを止めるだけ(iPhoneのユーザ辞書の中身はそのまま残る)なのではなく、iPhoneのユーザ辞書の中身を消してしまう動作をすることである。
これでは、つまり「ことえりを使わないとiPhoneのユーザ辞書は使わせないよ」と言っているのと同然で、パソコンでのIMをGoogle日本語入力、ATOK、かわせみ等サードパーティ製のものを使っている人は少なくない筈で、これらのユーザがiPhoneを使う場合の利便性が悪くなるのを体験させてことえりを使わせるよう半ば強要しているに等しいからです。独占禁止法違反である可能性が高い行為であると言えます。

Macユーザの皆さん、この独善的な仕様を、パソコンでことえりを非アクティヴにすると「ユーザ辞書同期が単に停止するだけ(iPhoneのユーザ辞書の中身はそのまま残る)」という穏当で当たり前の仕様に変更するようAppleにフィードバックを送りましょう!
フィードバックは以下から → http://www.apple.com/jp/feedback/iphone.html

また、この「iPhoneのユーザ辞書の中身が消える」という問題がiOSのバグまたは、偶発的な不具合だと思っている人に「これは極悪仕様になっているからなんだ」と教えて上げるために、この情報を共有、拡散をお願いしたいと思います。


2013年10月19日追記:
その後、野尻さん(@TakaNojiri)を含むMacユーザの友人、知人に検証して貰ったところ同現象は再現せず。また、拙環境でも、ことえりがアクティヴ/非アクティヴ何れにしてもユーザ辞書が全く同期されない事態になってしまい、もう何が何だかわからない状態になっています。何度も試行してみた上だったので「これで間違いない」と思っての当エントリーだったわけですが「極悪仕様」というのは一旦取下げさせて頂きます(この可能性がゼロだと言えるほどの確証もやはり無い現段階ですが)。
「これが原因かも知れない」「こうやったら直ったよ(直るかもよ)」という情報をお持ちの方は、「もしかしたら」レベルでも結構ですのでお寄せ頂ければありがたく。


——–[ 脚注 ]—————-
  1. 取り扱える品詞はことえりの方が遥かに少ないので、ことえりに合わせて品詞を適正にする必要はあります

%d人のブロガーが「いいね」をつけました。