iTunes 11 にしてから、Firewall の設定を何度も聞かれる

iTunes 11 にしてから、iTunes.app の起動時に毎回「Do you want the application "iTunes.app" to accept incoming network connections?」と聞かれるようになってしまいました。確か Snow Leopard のときも似たような現象が報告されていましたが、そのときとは原因が違うようです。

Mountain Lion になってから不正な application の実行が厳しく監視されるようになり、iTunes.app の内部に含まれる file に配布時点とは異なる修正点などがあったりすると、firewall の設定で iTunes の接続を許可していても、何度も繰り返し接続許可を聞かれるようです。恐らく、iTunes 11 の updater が正しく動作しなかったのだと思います。

$ codesign -vvv /Applications/iTunes.app/    
iTunes.app/: a sealed resource is missing or invalid
In architecture: i386
resource added: /Applications/iTunes.app/Contents/Resources/AdvancedPrefs.icns
resource added: /Applications/iTunes.app/Contents/Resources/AppleTVPrefs.icns
resource added: /Applications/iTunes.app/Contents/Resources/DevicesPrefs.icns
resource added: /Applications/iTunes.app/Contents/Resources/English.lproj/AppleTVSetup.nib/objects.xib
resource added: /Applications/iTunes.app/Contents/Resources/English.lproj/AppleTVStream.nib/objects.xib
resource added: /Applications/iTunes.app/Contents/Resources/English.lproj/AppleTVStreamingPrefsBar.nib/objects.xib
(略)

こんな感じで、追加されたと見なされる resource が iTunes.app 内部に発見されました。これらの file を全て捨てるか、もしくは iTunes.app ごと捨ててしまい、ここから iTunes の installer を落としてくれば OK です。

iTunes.app は Finder から捨てられないようになっているため、sudo で捨てましょう。

$ sudo rm /Applications/iTunes.app

iTunes.app を入れ直すと、確かに上記の AdvancedPrefs.icns などは含まれていませんでした。