Mac の iMovie 10.0.2 で 共有 -> ファイルがコケて困っていた

iMovie共有 -> ファイル で動画をローカルに書き出そうとしたら、途中で表示されるダイアログのボタンを押しても応答しない現象にぶちあたって困ってました。

/var/log/system.log には以下のようなバックトレースが出ていました。

# 長いのでインデントを一部修正しています

Jan 25 16:12:17 ******.local iMovie[2510]: -[NSRemoteView viewDidMoveToWindow] caught non-fatal NSInternalInconsistencyException 'unable to convert NSNamedColorSpace System controlColor to 装置の RGB colorspace
-[NSSecureColor initWithColor:], /SourceCache/ViewBridge/ViewBridge-46/NSSecureColor.m:32' with backtrace (
0   CoreFoundation     0x00007fff873e641c __exceptionPreprocess + 172
1   libobjc.A.dylib    0x00007fff8d5e9e75 objc_exception_throw + 43
2   CoreFoundation     0x00007fff873e5fc9 -[NSException raise] + 9
3   Flexo              0x000000010d9f674c -[FFAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 764
4   ViewBridge         0x00007fff8a1e865c -[NSSecureColor initWithColor:] + 724
5   ViewBridge         0x00007fff8a1e836f +[NSSecureColor secureColorWithColor:] + 48
6   ViewBridge         0x00007fff8a20bcfb -[NSRemoteView sendFontSmoothingBackgroundColorToService:] + 40
7   ViewBridge         0x00007fff8a20cbf5 -[NSRemoteView viewDidMoveToWindow] + 197
8   AppKit             0x00007fff9177c1d0 -[NSView _setWindow:] + 2899
9   AppKit             0x00007fff91779804 -[NSView addSubview:] + 364
10  AppKit             0x00007fff9178d953 -[NSFrameView addSubview:] + 45
11  AppKit             0x00007fff9179bcb5 -[NSWindow setContentView:] + 511
12  AppKit             0x00007fff92001233 -[NSVBSavePanel init] + 287
13  AppKit             0x00007fff91d835b9 +[NSSavePanel newRemotePanel] + 309
14  AppKit             0x00007fff91d83675 +[NSSavePanel _crunchyRawUnbonedPanel] + 120
15  Flexo              0x000000010e4177ce -[FFBaseSharePanel showSavePanelForDestinationsAtIndexes:] + 46
16  Flexo              0x000000010e416b26 -[FFBaseSharePanel showPanelsWithContextInfo:] + 1494
17  Flexo              0x000000010e416532 -[FFBaseSharePanel ok:] + 114
18  AppKit             0x00007fff919833d0 -[NSApplication sendAction:to:from:] + 327
19  ProKit             0x000000010d4d97c6 -[NSProApplication sendAction:to:from:] + 101
20  Flexo              0x000000010da8cd38 -[FFApplication sendAction:to:from:] + 328
21  AppKit             0x00007fff9198324e -[NSControl sendAction:to:] + 86
22  AppKit             0x00007fff919cfd7d -[NSCell _sendActionFrom:] + 128
23  AppKit             0x00007fff919e9715 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2316
24  AppKit             0x00007fff919e8ae7 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 487
25  ProKit             0x000000010d517215 -[NSProButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 504
26  AppKit             0x00007fff919e81fd -[NSControl mouseDown:] + 706
27  AppKit             0x00007fff91969d08 -[NSWindow sendEvent:] + 11296
28  ProKit             0x000000010d4fabac -[NSProPanel sendEvent:] + 236
29  AppKit             0x00007fff91908744 -[NSApplication sendEvent:] + 2021
30  ProKit             0x000000010d4da6be -[NSProApplication sendEvent:] + 129
31  Flexo              0x000000010da8d2b4 -[FFApplication sendEvent:] + 548
32  AppKit             0x00007fff91ac3cd5 -[NSApplication _realDoModalLoop:peek:] + 761
33  AppKit             0x00007fff91ac236e -[NSApplication runModalForWindow:] + 117
34  Flexo              0x000000010e417fd8 -[FFBaseSharePanel runModal] + 56
35  Flexo              0x000000010daa43e9 -[FFSequenceExporter showSharePanelWithSource:destination:destinationURL:parentWindow:] + 617
36  Flexo              0x000000010daa3818 -[FFSequenceExporter shareToDestination:parentWindow:] + 1384
37  Flexo              0x000000010e4c8dde -[FFConsumerShareDestinationPopover shareDestination:] + 350
38  AppKit             0x00007fff919673f5 -[NSWindow sendEvent:] + 781
39  LunaKit            0x000000010f59af72 -[LKPopOverWindow sendEvent:] + 530
40  AppKit             0x00007fff91908744 -[NSApplication sendEvent:] + 2021
41  ProKit             0x000000010d4da6be -[NSProApplication sendEvent:] + 129
42  Flexo              0x000000010da8d2b4 -[FFApplication sendEvent:] + 548
43  AppKit             0x00007fff91758a29 -[NSApplication run] + 646
44  ProKit             0x000000010d4daf6a NSProApplicationMain + 333
45  libdyld.dylib      0x00007fff863bc5fd start + 1
46  ???                0x0000000000000001 0x0 + 1
)
timestamp: 16:12:17.354 Saturday 25 January 2014
process/thread/queue: iMovie (2510) / 0x7fff76bcf310 / com.apple.main-thread
code: line 607 of /SourceCache/ViewBridge/ViewBridge-46/ViewBridgeUtilities.m in logCaughtException
domain: exceptions

バックトレースのメッセージを元にいろいろググってあれこれ試したうち、discussions.apple.com で見つかった以下のコマンドをターミナルで打って iMovie を再起動したら直りました

defaults write NSGlobalDomain NSUseLeopardWindowValues YES
defaults write com.apple.Safari NSUseLeopardWindowValues NO
killall SystemUIServer

だいぶ難易度高過ぎますね ... 同じような現象でお困りの方がいたらお試しください。自分で defaults を変更してたかどうか定かではないですが、忘れてるだけでいじってた可能性も高いので不具合というより自己責任乙でした、な気もします... ( 以前にも Spotlight を止めたら App Store でアプリを購入できない現象にハマったことがあったのでした )


なお、 共有 -> Theater で吐き出したファイルは

# * は任意の文字列
~/Library/Mobile\ Documents/*~com~apple~iMovie/Theater/

以下に mp4 として置かれてるぽい。find や lsof を使って見つけましょう :)

余談

フォーラムでは「アクセス権の修復してみて」のコメントを散見するが、大抵問題解決には至っていない