這是因為在 Mac OS 的版本 10.15.7 (也就是 Catalina) 中,Apple 在 User Agent 中新增了一個新的欄位:AppleWebKit/605.1.15,而這個欄位也是判斷瀏覽器版本和支援的功能的重要依據之一。
當你在 Mac OS 的版本高於 10.15.7 的系統中使用瀏覽器,例如 Safari、Chrome、Firefox 等等,當瀏覽器回應 User Agent 時,會包含這個新的欄位,因此其他網站可以依據這個欄位判斷瀏覽器版本和支援的功能。但是,為了確保新的欄位不會對現有的網站造成影響,Apple 仍然會將操作系統版本號降為 10.15.7,以確保現有的 User Agent 的格式不會被打破。
--------- (資訊揭露: 以上內容皆由 ChatGPT 產生)
兩年前 MacOS 11 剛問世的時候, 曾經造成用 Unity 舊版開發的 WebGL 網站遊戲, 會全部故障. 為了暫解這個問題, 於是 Firefox 和 Safari 開發團隊決議, 在 MacOS 11+ 版以後的 User Agent, 都自動降級只回報出 10.15.7, 後來 Chrome 也跟進.
所以對 MacOS 的版本判讀, 不能只依賴 User Agent, 還要去看 AppleWebKit 才知道.
相關的 Bug 討論在此:
https://chromestatus.com/feature/5452592194781184
https://bugs.chromium.org/p/chromium/issues/detail?id=1171998
https://bugs.webkit.org/show_bug.cgi?id=217364#attach_410611
https://bugzilla.mozilla.org/show_bug.cgi?id=1679929
https://bugs.chromium.org/p/chromium/issues/detail?id=1175225
https://issuetracker.unity3d.com/issues/unity-webgl-builds-do-not-run-on-macos-big-sur
https://bugzilla.mozilla.org/show_bug.cgi?id=1680516#c15
https://bugs.webkit.org/show_bug.cgi?id=213622