電影時刻 iOS 2.8.1 版
更新內容
2.8.1 #2025-01-17
- 修正開啟電影的「放映時間」時閃退的問題。
- 修正 iOS 17 之後開啟網址可能不正確的問題。
- 修正 iOS 17 之後不再支援的 API。
- 程式碼微調。
開發札記
真的是計劃趕不上變化,為了安裝最新版的 Xcode 16 ,作業系統最低必須是 macOS Sonoma 14.5,而我的 MBP 2017 雖然還很好用,但已經無法升級 OS 到最新版。原本的計劃是在今年 (2025) 才買新的電腦,但是上個 2.8.0 版發佈後,大量出現閃退的錯誤,看 log 很多錯誤都出現在 iOS 17.5 以上的版本,麻煩的是,我的 MBP 的 OS 是 macOS Ventura 13.5,最高只能安裝 Xcode 15.2,而此版本的模擬器最新只能安裝 iOS 17.2,所以完全無法測試。
回顧過去數十年開發 iOS 的歷程,從 2011 年買的第一台蘋果電腦 MacBook Air 開始,到這次買的 Mac mini (M4),花費在設備上的開銷估計在 20 萬以上 (包含 iPhone 手機及 iPad 兼做實機測試用),還沒算每年要繳的開發者年費等等。因此最近這幾年為了節省開支,盡量都在最後關頭才買新的電腦。原本並不急著買 Mac mini (M4),可是為了修這個錯誤,每天都在看蘋果官網什麼時候開賣,終於在 2024/12/05 預購當天就立刻下訂。
原本打算修個 Bug 就好,在新版 Xcode 中才發現有些 API 被棄用或是改過執行行為。例如內嵌瀏覽器的網址原本預設是沒有編碼 (encode) 的,因此我的程式碼會先對網址做編碼才送給瀏覽器,這樣在 iOS 17 之後就會出現奇怪的問題,因為網址被做了兩次編碼。查了 API 才知道在 iOS 17 之後的預設行為改為自動編碼,因此我必須為此增加 iOS 版本的判斷來決定是給它自動編碼或是我自己編碼。
另一個 API 的更新,就是新增行事曆事件的權限有修改,原本的權限包含讀、寫行事曆,而新版改成單純寫入及完全的讀與寫兩種權限,也是花了一點時間修改。在查 API 時還發現 UITableCell 中有一些用了很久的 API 在 iOS 18.2 也要被棄用了,但礙於這次修改拖太久,又快要過農曆年了,只能等下次再來修。