解決編: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のユーザ辞書の内容が一致しない

Mac OS X 10.7 Lion プリンタ共有が正しく機能しない

No Comments

拙環境は以下の通り。ですので違う環境の場合(特にプリンタが違うメーカーの場合)当て嵌まらない可能性はある情報です。

Mac OS X 10.7.4 Lion
プリンタ:Brother DCP-155C

遅れ馳せにパソコンのOSをMac OS X 10.7 Lionにしたところ、プリンタ共有が正常に作動してくれない事態になり、以下引用部の通りのフィードバックをAppleに送信した。

プリンタ共有を利用した場合、以下の通りのエラーが発生する。

  • USB接続でプリンタを繋いである親機(Mac OS X 10.7.4) に対して、
  • Mac OS X 10.6.8 搭載のMacからは「共有プリンタの追加(登録)が出来」かつ「プリントアウトも正常に行え」る。
  • Mac OS X 10.7.4 搭載のMacからは「共有プリンタの追加(登録)」自体から適正に出来ず。具体的には以下の通り。
    → システム環境設定:プリントとスキャン にてプリンタ追加をしようとする
    → 共有プリンタは認識されておりポップアップメニュー内に名前の表示はある
    → が、これを選択して登録をする操作を行うと、プリンタ情報を確認するために親機にアクセスしに行っている案内が出て暫く待たされた後「現在、サーバからソフトウェアをダウンロードできません。」とのエラー表示で終了する。
    → システム環境設定:プリントとスキャン にて「他のプリンタまたはスキャナを追加…」からプリンタ追加をする操作をすると
    → Bonjour 共有 と親機接続のプリンタはリストアップされている
    → が、クリック選択すると始まるプリンタドライバ探索の結果表示されるのは「一般的なPostScriptプリンタ」に(適正なドライバ選択がされない)。
    → 次に「プリンタソフトウェアを選択…」から手動でドライバ選択をしに行くと、ドライバは一覧に表示され選択も出来、正常にプリンタ登録が出来たように見える(左にプリンタがリストアップされているし)。
    → が、このプリンタ(設定)を使ってプリントアウトを実行するとプリントキューに「プリンタの状況を取得できません。」と表示されプログレスバーが走っている状態が延々続く(半永久ウエイトの状態)。プリントキューを削除して終了するしかない。

当初メインで使用のプリンタ「Brother DCP-155C」の側の問題かも?と思ったが、以下の理由でMac OS X 10.7.4 の問題だと判断。

  1. DCP-155Cは複合機で「スキャナ共有」も有効にして使用しているのだが、共有スキャナへのアクセスはMac OS X 10.6.8、Mac OS X 10.7.4 何れのMacからも正常に出来、スキャンを完了できる。
  2. 他のプリンタ:エプソンPM-A700、CUPS-PDF(PDF出力のバーチャルプリンタ)を共有設定して、子機からプリントを実行しようと一連の操作をした結果が全く同様であった。
サーバ機(親機):
iMac 21.5-inch, Mid 2010(3.06 GHz Intel Core i3)、メモリ:16GB 1333MHz DDR3、Mac OS X Lion 10.7.4
クライアント機(子機):
MacBook 13-inch, Mid 2009(2.13 GHz Intel Core 2 Duo)、メモリ:4GB 800MHz DDR2 SDRAM、Mac OS X Lion 10.7.4
MacBook Pro 15-inch(2.4 GHz Intel Core 2 Duo)、メモリ:4GB 667MHz DDR2 SDRAM、Mac OS X 10.6.8 ×二台

上記の通りMac OS X 10.6.x 子機からの出力はそもそも問題ありません。

このフィードバックを送信後あれやこれや調べつつ試行錯誤していたら解決策を見付けたので同様の問題に困っている方の参考になれば幸いと思い記事として残します。
これは暫定的な対処法であり裏ワザの可能性があります。また、将来のOSのアップデートで修正される可能性や、アップデートに伴いこの操作で実現できる状態が無効になる可能性もあります。
また、当方環境では問題なく使えていますが、ご自身の環境では上手く動かない可能性、何らかの不具合が出ないとは保証できません。あくまで自己責任ということでお願いします。

ウェブ検索で調べていると http://www.running-dog.net/2010/12/ios42airprint_cups.html のようなページに突き当たり「http://localhost:631 にアクセスすれば「Mac OS X のOS自体のプリント機能コントロール・パネル」にアクセス出来ると知り、これの設定如何では上記問題を解決できるかも知れないと思いあれこれいじっている内に解決策を見付けた次第。CUPS管理画面トップ

共有プリンタに繋ぎに行きたい子機での操作。 ブラウザを起動しURL欄に http://localhost:631 と入力しリータンを押下してアクセスします。初めてアクセスした場合「Web インターフェイスが無効になっています 〜」というメッセージが表示されますが、これの意味がわからない人は先に進まない方が良いということで敢えて詳述しません。

CUPS管理画面メイン
次に上の「Administrator」リンクをクリックすると次の画像の画面になります。
Server Settings 下の Advanced をクリックするとサブメニューが開く(次の画像)

cups_share_advanced
開いたメニュー「Show printers shared by other system」下の「CUPS」のチェックを入れる。
解説:「(同じネットワーク上の)他のシステム(コンピュータ)で共有されているプリンターを表示」という意味。で、通常 Mac OS X で共有されているプリンターのプロトコルは CUPS なので、これを表示させる設定にするわけ。(逆に言えばCUPSプロトコルじゃないプリンタだった場合は、この対処は当て嵌まらないかも?)
下の「Change Settings」を押せば設定が保存されます。 ブラウザ上での操作は以上。

CUPS共有プリンタ プリントダイアログ
以上の操作をすると(システム環境設定:プリントとスキャン での設定はスルーして)各アプリケーションからプリントアウトする操作をすると、プリンタ選択の選択肢の中に 菱形のマークが前に付いたプリンタが表示されていますので、これを選択してプリント実行すれば親機に繫がった共有プリンタに出力されます。
(下にMac OS X デフォルト機能で共有されたプリンタも表示されているのが見て取れると思います。こちらを選択したら冒頭の通りエラーになります)

カテゴリー/アーカイブ・リストが404エラーに

No Comments

普段自分のサイトをカテゴリー/アーカイブ・リスト表示で見ることは殆ど無いので、気付いたのが今日だったというだけで、どのタイミングからだったのかは判然としません。
ウェブ上を調べて同様のトラブルに遭遇した人の(但し多くない)情報では WordPress を3.1にアップデートしたタイミングで発生したトラブル(バグ?)だったみたいではありますが。

症状:カテゴリー/アーカイブ・リストで表示させるとが404エラーになる。
「Top Level Categories」または「WP No Category Base」プラグインを使用し、かつ、パーマリンク構造を「/%category%/%postname%」にしていると発生する。
「Top Level Categories」または「WP No Category Base」プラグインを使用しているとパーマリンク構造を他のフォーマットに変更しても、カテゴリー・リスト表示時に404エラーになる場合が(一部)発生する。
(多分ではあるが、 WordPress をVer.3.1 にする以前に作成していたカテゴリーでは発生してなさそうなので、3.1 以降でスラッグ or タクソノミー作成時での内部変換機序が変更になったのが原因しているではないか?と推測)

上記プラグインを停止すれば、症状は消えるが、同プラグインを使っている人は、ほぼ間違いなくパーマリンクに「余分に /category と挟まる」のを避けたい人だろうから、、、で私も同じくで、、、。

そこで調べてみたら「WP No Category Base – WPML compatible」という同様の機能のプラグインで Ver.3.1 以降に対応してそうなものを見付けて、動作確認したら無問題だったので報告しておきます。

確認環境:WordPress 3.3.1

注:当たり前の話ですが、同プラグインをインストールする前に、「Top Level Categories」「WP No Category Base」は停止しておかないとコンフリクトしてActivateに失敗します。念のため。
[amazonjs asin=”4839935416″ locale=”JP” title=”WordPress 3 サイト構築スタイルブック”]

2012年3月31日午後6時39分加筆訂正:
『「Top Level Categories」「WP No Category Base」プラグインを使用し』を『「Top Level Categories」または「WP No Category Base」プラグインを使用し』に訂正。

Mac OS X ユーザPreferencesを更新する方法

No Comments

  1. 以下のURLに示されている方法でrootユーザを有効にする。
    http://support.apple.com/kb/HT1528?viewlocale=ja_JP
  2. Mac OS X をログアウトしrootユーザでログインし直す。
    (ユーザ名:root パスワード:rootユーザに設定したパスワード)
  3. 問題の起っているユーザの ~ホーム/ライブラリ/Preferences フォルダ丸ごと(フォルダごと)当該ユーザのデスクトップ( ~ホーム/デスクトップ フォルダ内)に移動。
  4. ファーストユーザ・スイッチを使って当該ユーザにログイン。
    (ファーストユーザ・スイッチを有効にしていない場合は一旦 root をログアウトして当該ユーザにログイン)
  5. 当該ユーザにログインすると無くなっているPreferencesフォルダは自動的に新規生成されますのでデスクトップの表示状態とか初期状態になりますが驚かず、必要なものはご自身に合わせて再設定し直して下さい。 日本語入力もオフになっていますので システム環境設定:言語とテキスト で有効にして下さい。
  6. テキストエディタを起動して文章を適当に打ってみる操作をして下さい。
  7. 一通り操作したら(ファイルは保存する必要はないので破棄)、当該ユーザをログアウトし rootユーザに戻る。
  8. 3の操作でデスクトップに逃がした Preferencesフォルダを開いて中身を全選択して当該ユーザの Preferencesフォルダ(~ホーム/ライブラリ/Preferences)の中にドラッグ。
  9. すると重複ファイルの警告が出るので「置き換えない」を選択。
  10. 残ったフォルダ&ファイルは不要なので削除。
  11. rootユーザをログアウト。

Illustrator でプリンターを選べない

No Comments

Illustrator CS2 のプリント・ダイアログからプリンターが選択出来なくなったトラブルに見舞われた。プリンターが選択出来ないから当然プリントアウトが出来ない。 Illustrator以外のアプリケーションからは正常にプリンターを選べて(当然の事に)プリントアウト出来る。
という状態。

実行したトラブルシューティングは時系列順に以下。

  • 定番通り「別ユーザ・アカウントでの動作確認」をした処、Illustrator CS2からも正常にプリントアウト出来た。
  • 別ユーザ・アカウントでは正常動作しているので関係ないと思いつつもセオリー通り「プリンタードライバの再インストール」を実行 → 状態変わらず。
  • 別ユーザ・アカウントでは正常動作しているという亊は、当該ユーザのホームフォルダ(Macintosh HD/ユーザ/[あなたのアカウント名]のフォルダ)以下の何かに問題があるということになる。
  • 経験則での一般論として破損しやすい筆頭は初期設定ファイルなので、Macintosh HD/ユーザ/[あなたのアカウント名]/ライブラリ/Preferences フォルダ内の「名前に adobe が付いているファイル」全部削除して一旦ログアウトしてログイン。 → 状態変わらず。
  • 他の初期設定ファイルが破損していてそれが原因している場合も(多くはないが)あるので次に、rootユーザを有効にしてログインし直し、こちらからの操作で問題の起っている当該ユーザの「Preferences」フォルダを別の場所に移動し名前も関係ないものに変更。
    → 当該ユーザにログインする:こうする事で「Preferences」フォルダが新規生成される。
    → Illustratorを起動して動作確認 → 状態変わらず(つまり「Preferences」フォルダの中身はシロ)。
    → ログアウトしてrootでログインし直し、先ほど別の場所に逃がして名前を変えた「元Preferences」フォルダの中身を全選択して新規に生成された当該ユーザの「Preferences」フォルダ内にドラッグ
    → 「重複しているファイルの指摘と共にこれをどうするか」Finderが訊いてくるので「置き換える」で元に戻す。
  • 次に怪しいのは「Preferences」フォルダを除く「ライブラリ」フォルダの中身のどれかと言えて、原則論を言えばこれらすべてに対して上述の「Preferences」フォルダに対して行ったのと同じ操作を繰り返していって、問題を起こしているファイルを突止めるのだが、ライブラリの中には膨大なフォルダ&ファイルがあるので、これを一つ一つ行っていくのは気が遠くなるので、多少乱暴かと思ったが位下の操作をしてみたら見事問題解決!
    1. rootユーザでログインし、当該ユーザのホームフォルダの名前を違うものに変更してしまう。
    2. 当該ユーザにログイン → するとホームフォルダがないのでOSは新規にホームフォルダを生成する。
    3. ログアウトしてrootユーザに戻って(新しいホームフォルダを作成させてrootに戻る)、システム環境設定:アカウント で当該ユーザのアカウントを削除。ユーザを削除しても実際のホームフォルダは名前を変更してあるので削除されない(残る)。
    4. 改めて「同じ名前」「同じパスワード」でアカウントを「新規に」作成。
    5. これで出来た新規に作られた当該ユーザのホームフォルダの中に、リネームして退避させてある「元ホームフォルダ」の中身を、「ミュージック」の中身を「ミュージック」の中へ、、、という具合に「フォルダごとではなく中身を戻す」というやり方で元に戻す。

結論的に、ホームフォルダの中のファイルがどうこうではなくアカウント自体の位置づけがおかしくなっていたか、何らかの不可視ファイルが犯人だったかのどちらかだろうと思われます。

2011/06/13 追記:rootユーザを有効にする方法は以下を参照して下さい。
http://support.apple.com/kb/HT1528?viewlocale=ja_JP

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