10.6 Finder 的 “set position” 問題
Mac OS X 10.6 的 Finder 有一個問題-如果你用 Applescript 去對某個 Finder window 下 “set position” 指令,這個指令無效;這個問題在之前幾個版本不會發生,但是在 10.6 就是出現了,可見 10.6 的 Finder 真的是重寫的…。
Finder 有兩個地方可以下 “set position” 指令,一個是設定某個 Finder 視窗在螢幕中的位置,這個正常,有問題的是對 Finder 某個視窗當中的某個所謂 Finder Item 下指令。所謂的 Finder Item 就是任何一個出現在 Finder 視窗當中的圖示,可以是檔案、檔案夾或是檔案連結。一般來說這個功能不太會用到,大概就是只有一個用途會經常用到這個,就是拿來製作發行軟體用的 dmg 檔案。
很多軟體所採用的包裝方式,是採取 dmg 發行,使用者在將 dmg 檔案裝載(mount,這個動詞用中文表示感覺頗差)起來後,在這個裝載起來的虛擬磁碟視窗當中,可以看到漂亮的底圖,然後幾個應用程式 Icon 就正確放在符合視覺設計的位置,像是 Adium 的 dmg 檔案中,就是一片草地上面擺著一隻綠色的鴨子。而通常來說,從編譯 release binary、根據大小產生 dmg 檔案、擺放 dmg 目錄中的內容、設置底圖到壓縮 dmg 檔案,這個流程會寫成一個 script 一次搞定。而 Finder 的 “set position” 失效,就代表這個 script 跑完之後,原本應該擺在某些位置的圖示,會被擺在奇怪的地方。
要避免這個問題,最簡單的方法就是回到 10.5 上面去編譯 distribution package,但某些無法與 10.6 相容的軟體可能就有點尷尬-在 10.5 上面編好的 distribution package 在 10.6 上面沒辦法用,在 10.6 上面編的話,則設計會跑掉。當然也可能是把中間這段原本透過自動設定的 dmg 內容編輯的部份改成用手動處理,但是一方面光想就覺得麻煩(每次編新版本還要這麼來一下),另外也很有可能在手動作業的過程中出錯,例如忘記複製哪幾個檔案之類的。聽說 Growl 專案現在就遇到這個問題。
如果你問為什麼這個問題沒有在 10.6 還在 beta 的時候發現-只要一跑個 distribution script 就可以知道有這個 bug,不是嗎?猜想原因大概是這樣-你會在 Beta OS 上面做 distribution 嗎?同時,大概也沒什麼人會想到會在這種地方爛掉。
另外,猜想在 10.6 最後幾個 beta 的期間,大部分 Mac developer 也沒怎麼在處理 10.6 可能有哪些 bug,大部分人呢,應該都在處理 iPhoneOS 3.0 的 bug 吧。




5


