macOS platform support timetable too aggressive? #407
Replies: 1 comment 1 reply
-
Hi, Yes, this time we stepped over 2 OS versions, which was indeed faster than I'd like. The main reason was AutoFill, with its very dynamic API. On iOS 15/16 it behaved in a certain way. On iOS 17, Apple deprecated the old API, replacing it with new methods for old functionality, and adding new methods for passkeys. iOS 18 added even more methods for new functionality. Beneath all of that, KeePassium had a big bowl of spaghetti left by fixing this iOS 14 bug. Basically, nobody understood how KeePassium AutoFill works anymore :) But iOS is only half of the game: cue the three matching macOS versions. And of course, macOS AutoFill API behaves slightly differently from iOS API. And of course, these behaviors differ slightly across the macOS versions, too. So keeping AutoFill operational was an intricate balancing act between six platforms (iOS 15/16, 17, 18 and macOS 12, 13, 14). Once Apple released macOS 15, the balance started falling apart. Yes, we could try and patch it yet again — but this would certainly break something unexpected on another OS version. Debugging the code across seven different systems is no fun, especially when you don't have three of them around :) Plus the introduction of passkeys meant AutoFill needs to save databases, so the need to clean up the technical debt was becoming urgent. As a solution, we increased the minimum OS version to the new AutoFill API (iOS 17 / macOS 14), removed the obsolete parts and can move forward easier than before. The alternative was keeping AutoFill slightly broken everywhere, so I think it was worth it… |
Beta Was this translation helpful? Give feedback.
-
Hello there,
I've been using the MacOS builds since their first release and I've been unable to upgrade to builds newer than 1.54.155 due to the MacOS 14 minimum requirement. I understand that API and other components might require modern OS but most developers cut support at the third most recent release (which would be 13). Is there any hard requirement in code to be cutting anything but the most recent OS builds?
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions