娘の卒園記念DVDを作成していた妻から「iDVDが動かない!」との報告。
「iPhotoで作ったスライドショーから"iDVDに送信"を実行したが、いつまで経ってもiDVDが表示されない」との事。
実際に見てみるとDockにiDVD自体のアイコンはあるし、起動しているマークも付いている。だが何故かウィンドウが描写されていない。
iDVDをアクティブにしてもメニューバーにはアクセスできるのにウィンドウが開かないので、一旦「終了」を選んでみると突然編集ウィンドウが現れ、「閉じる前に、このプロジェクトの変更内容を保存しますか?」のメッセージを表示してフリーズ。orz
たまたまなのかと思いきや、iDVD単体で起動しても同じように再現する。 問題なのは"新規プロジェクトを作成"を選んだ後のウィンドウ描写が出来ないことで、"Magic DVD"や"OneStep DVD"ではちゃんと編集画面が現れる。
状況から判断して"iDVD"自体が破損しているかウィンドウ描写に必要なライブラリが破損しているのかそんなところ。
実は思い当たる節があって、うちのMacBook(Late2007)にプリインストールされていた"iLife"は'08。
すでに上の娘の時に作品を作った事のある妻には"iMove 0'8"が非常に使いにくいらしく、その当時使っていた"iMove HD(6)"に入れ替えてくれとの依頼で"iLife '06"のCDからiMoveをインストールし直していた。
当然"iLife"で共有してるライブラリやフレームワークはあるだろうし、"iMove HD"をインストールしたことで互換の問題が発生したり破損することは当然考えられる。
オンラインで調べてみると、iDVDの起動トラブルはかなり多く報告されていて純正状態でも起動しない事例も多くあるらしい。
●iDVD '08:iDVD を開くと予期せず終了する
●iDVD '08: iDVD '08 をインストール後、起動する時にアプリケーションが予期せず終了する
それに比べるとうちの"iDVD"は起動自体はちゃんとしているので数多くの報告とは原因が違うと思われたが、取りあえずアップルの公式サポートにも載っているような処置や、ディスクメンテなど定石は一通り試して見るもいっこうに改善の兆しは見えず。
MacBookに付属のリカバリディスクからiLifeの再インストールをしてもダメ、アップルからダウンロードできるアップデータ等を片っ端からインストールし直してみてもダメ。 それでも起動が出来ているならログがあるだろうと"コンソール"を立ち上げて"System.log"を確認してみたところ以下のレポートがあった。
Mar  3 10:53:00 MacBook iDVD[6284]: Error loading /System/Library/PrivateFrameworks/GraphicsAppSupport.framework/Versions/A/Frameworks/QuartzComposer.framework/Versions/A/Resources/ExtraPatches.plugin/Contents/MacOS/ExtraPatches:  dlopen(/System/Library/PrivateFrameworks/GraphicsAppSupport.framework/Versions/A/Frameworks/QuartzComposer.framework/Versions/A/Resources/ExtraPatches.plugin/Contents/MacOS/ExtraPatches, 265): Library not loaded: /System/Library/PrivateFrameworks/Syndication.framework/Versions/A/Syndication\n  Referenced from: /System/Library/PrivateFrameworks/GraphicsAppSupport.framework/Versions/A/Frameworks/QuartzComposer.framework/Versions/A/Resources/ExtraPatches.plugin/Contents/MacOS/ExtraPatches\n  Reason: image not found
Mar  3 10:53:00 MacBook iDVD[6284]: *** : Could not load bundle at path "/System/Library/PrivateFrameworks/GraphicsAppSupport.framework/Versions/A/Frameworks/QuartzComposer.framework/Resources/ExtraPatches.plugin" ((null))
Mar  3 10:53:05 MacBook iDVD[6284]: *** : Patch with name "QCQuickTimePlayer" is missing
Mar  3 10:53:05 MacBook [0x0-0xcd0cd].com.apple.iDVD[6284]: An exception of type NSGenericException occured.
Mar  3 10:53:05 MacBook [0x0-0xcd0cd].com.apple.iDVD[6284]: -[OLQCMediaDecompressor _uniqueKeyFromNode:]: Argument "node" cannot be null
Mar  3 10:53:05 MacBook [0x0-0xcd0cd].com.apple.iDVD[6284]: Stack trace:
Mar  3 10:53:05 MacBook iDVD[6284]: NSExceptionHandler has recorded the following exception:\nNSGenericException -- -[OLQCMediaDecompressor _uniqueKeyFromNode:]: Argument "node" cannot be null\nStack trace:  0x97b19a  0x915dde3b  0x973d1b11  0x16760cb  0x1677d09  0x165daea  0x15e0227  0x165da9c  0x1cc8b649  0x1cc8f4fa  0x15db2f8  0x15db18f  0x1cc8c361  0x1cc8f00f  0x15db2f8  0x15db18f  0x75ff62  0x7604b5  0x762b1e  0x762dbb  0x75ace8  0x769e5  0x76aac  0x79125  0x77f51  0x126211  0x76c84  0x7af69  0x9201734e  0x920762de  0x91ff25d2  0x9201734e  0x1a3ad3  0x1a7153  0x1a3268  0x1a7bed  0x1a6810  0x11d297  0x11d787  0x11d698  0xa539  0xdd334  0x262bb  0xe290f  0x91ff552c  0x9733947a  0x97339753  0x91ff2680  0x91ffbed8  0x96a32df2  0x96a32d01  0x969ac81b  0x969ac014  0x9201aa9f  0x9201a7af  0x9011b648  0x9011b57e  0x9011b425  0x95ab3981  0x969a98e9  0x969a8f88
Mar  3 10:53:05 MacBook iDVD[6284]: Exception raised during posting of notification.  Ignored.  exception: '-[OLQCMediaDecompressor _uniqueKeyFromNode:]: Argument "node" cannot be null'  invoked observer method: '*** -[iDVDApplication applicationDidFinishLaunching:]'  observer: 0x1e42700  notification name: 'NSApplicationDidFinishLaunchingNotification'
.
.
.
.
ログの冒頭にあるように"/System/Library/PrivateFrameworks/"以下のファイルでエラーが発生している様子。 特に目立つのが"GraphicsAppSupport"フレームワークのロードエラー。
"Quartz"がらみのライブラリなら"Xcode"入れ直してみれば直るかと思いインストールして見るも効果無し。
こうなったらフレームワーク単体のインストーラーがないか調べまくってみると、MacBookのインストールディスク2の中に
AppleIntermediateCodec.pkg
GarageBand.mpkg
GraphicsAppSupport.pkg
iLifeCookie.pkg
iLifeMediaBrowser.pkg
iLifeSoundEffects_Loops.pkg
ImageKit_Tiger.pkg
iMovie.pkg
iPhoto.mpkg
iWeb.pkg
iDVD.mpkg
QuartzComposerQTComponentAppSupport.pkg
QuartzComposerAppSupport.pkg
を発見。
エラーはいてるフレームワーク群ドンぴしゃだし、これで解決かと思いきや単体でのインストーラーは「すでに新しいバージョンがインストールされています」で止まっちゃう。orz
GraphicsAppSupportのバージョン確認したところ"iLife '06"の入ってるG5も"iLife '08"のMacBookも"1.0"、それ以上に新しいのもなさそうだしいよいよ八方ふさがり。
プラグインなどはUniversalバイナリみたいだし、いっそG5のフレームワークからコピって見ようかとも思ったんだけど、PPCバイナリがあったりしたらそれこそトラブりそうだし...。
MacBook自体のリカバリしかないかとあきらめて、バックアップ取るためのディスクを探していると、外付け用ケースに入れたMacBookオリジナルの2.5インチHDDを発見。
そういえば、換装してから何度か"Time Machine"に使ってみたが、すぐ容量オーバーでバックアップできなくなっていた事を思い出した。
9ヶ月ぶりに接続してみるとやはり容量不足のエラー。
これじゃ到底バックアップには使えないと思いながら、ふと「9ヶ月前のフレームワークを戻してみたらどうなんだろう...?」と考えて取りあえず"GraphicsAppSupport"だけを"Time Machine"の復元で戻してみました。
半信半疑で"iDVD"を起動してみると...。 なんと!! 普通に起動するではないですか!?
結局"iDVD"の起動障害はフレームワーク絡みだったのは確かなのですが、復元時に”上書き”で戻してしまったため新旧のファイルの違いを調査することが出来なくなってしまいました。orz
まあ、電子申告用のデータなども全部MacBookに入ってたしリカバリせずに事なきを得たのは不幸中の幸いでした。