10月 172013
 

タイトルの通りですねf(^^;;。何故か知りませんが、いつの間にか iPhone5 と iTunes 経由の iCal でカレンダーの同期ができなくなってました。症状としては以下の通りです。

o. iPhone5 のカレンダーに登録した情報が Mac との同期で iCal に情報が書き込まれない。
o. iCal のカレンダー情報は iPhone5 に無事に書き込まれる。
o. iTunes との楽曲や iPhoto との写真などの情報は正しく同期できている。

と、いうことで iCal -> iPhone5 方向のカレンダーのイベント情報は同期できるのに iPhone5 -> iCal 方向のイベント同期がいつの間にか出来なくなっていた。と、いう状態です。これは結構痛い状態でせっかく iPhone5 に登録したカレンダーの情報が iCal に読み込まれない・・。

しょーがないので以前このブログにも登場した PocketLife Calendar アプリを利用し iPhone からカレンダーのイベントを抜き出してメールで送って ICS ファイルを Mac の iCal にインポートする。と、いうほぼ無謀とおも思われる作業を延々とやっていんですけども、いい加減イヤになって来て調べた。と、いう感じです。

なお、余談ですが、僕は PocketLife Calendar の利用頻度が随分と高いので、作者さんへの敬意を表して結局このアプリは 250yen (だったかな?) で購入してしまいました;-)。

で、やはり、そのような現象に陥る人というのはいるようで、Apple のサポートページに解決方法がありました。以下の URL です。

http://support.apple.com/kb/TS1627?viewlocale=ja_JP

OS X Mountain Lion では perl のスクリプトを実行すれば良いみたいですね。そのスクリプトは内部で use SyncServices とかちょっと怪しげな perl モジュールを利用しているようですが;-)。 perl が解る人はなんとなくこのスクリプトを眺めてみるのも面白いかもしれません。『data.version ってファイルを消すのかー。』みたいな;-)。

resetsync.pl というスクリプトを実行するときに list とかオプションを付けると同期するモノを表示してくれるようです。

 
さて。僕の場合ですが、ちょっと強引とも思える以下の手順で問題を解決しました;-)。

$ cd ~/Library/"Application Support"/SyncServices/
$ \rm -r Local.*
$ cd Local
$ mv conflicts _conflicts_
$

 

上記オペレーションは良い子はマネしない方が良いかもしれません;-)。また、上記オペレーションをしたことによって同期のためのデータが消えたり動作が怪しくなっても僕は責任を持ちませんのであらかじめご了承ください。

まず ~/Library/Application Support/SyncServices/ 内の古い(と思われる) Local.* ディレクトリを削除します。
そのあとで既存の Local ディレクトリ内にある conflicts というディレクトリを一時的に名前を変更しました。

あとは iPhone5 を USB で接続して OS X と同期してみる。って感じでしょうか。 2,3 回試してみたら新たに conflicts ディレクトリが作られました。そして iPhone5 で打ち込んだデータは OS X の iCal に読み込まれるようになったのでひとまず復活した。と、言っても良いのではないでしょうか。

/SyncServices/ 自体のディレクトリを mv するとどういう状態になるか確認してみるのも良いですね。状態が変化してけっこう焦ったりしますが、 mv しただけなのでもとに戻すこともできますしね。と、いうことでこのディレクトリは iPhone と Mac を同期する上で重要な役割を果たしている。と、いうことがそこはかとなく解って来ます;-)。

今まで、 iTunes 経由の写真や楽曲などの同期は問題なく出来ていたのですが、あるタイミングからカレンダーの情報だけ iPhone5 -> iCal 方向に同期できなくなっていたのですが、これで復活しました。

けど、良い子はくれぐれもマネはしないでくださいね;-)。上記の Apple サポートの URL を熟読してください。