Dashboard in Tiger 10.4.3

前幾天 Apple 發表 Mac OS X 10.4.3 更新,許多人升級以後紛紛表示電視節目表 widget 不能使用。今天抽空備份舊系統,升級到 10.4.3 測試看看,果然建立 XMLHttpRequest 連線會失敗。

但是在 debug 中卻碰到了問題,同樣的程式碼,在 Safari 中測試時一切正常,但是一旦丟到 Dashboard 裡,就會連線失敗。把狀態碼印出來看,是負數的 -999。本來以為Javascript 寫法有問題,拿出仍可 work 的其他 widget 程式碼一比對,使用 XMLHttpRequest 的方法完全相同,我不知道為什麼我的就不能跑 -_-#

看來有得搞了啊,如果不是程式碼問題的話…

2005-11-04 15:00 我終於找到問題所在。

既然在 Safari 上可以跑,變成 widget 後就不行,問題可能是出在程式碼以外的其他東西。我拿出還可以跑的 widgets 比對,果然,問題是在 widget bundle 裡的 info.plist 這個檔案。這個檔案有一個 AllowNetworkAccess 的 key,在 10.4.2 裡頭如果不設定這個 key,它預設為 true,也就是說會無條件允許 widget 進行網路連線。但是到了 10.4.3 你如果不設定這個 key,預設則是 false,會擋住 widget 對外連線。我之前並沒有設定這個值,所以雖然在 10.4.2 裡暢行無阻,到了 10.4.3 就吃癟了。我已經做了修改版放到網路上,之前有使用這個 widget 的同學可以安裝新版本看看。

題外話,10.4.3 好像沒有想像中不穩,在 10.4.2 裡常碰到問題的 smb 好像也順了不少。本來想改完立刻還原回來,還是繼續用看看好了 :p

留下回應