I have no doubt it *could* be done, my issue is that I then need to maintain older versions of macOS specifically to test everything on, and in calibre's case everything is a *lot* larger than for Sigil, and given I dont use macOS this just becomes too much of a headache.
Just one example of the crazy incompatibilities one has to worry about. At some point Apple started linking IOkit or whatever their USB driver framework is against libxml2. calibre also uses libxml2. Depending on what order extensions are loaded in the libxml2 that calibre ended up with could come from the OS or from the bundled version. On some version of macOS the system libxml2 was too old and caused crashes. To debug this I had to install the problematic macOS version in a VM which takes forever and is not always possible because Apple doesnt want you running its software in VMs on anything other than macOS and I refuse to work on a macOS machine.
There tend to be many such issue son macOS because Apple does not value backwards compatibility. That makes it too much effort for me to paper over.
I will say though that Apples default reporting of stack traces on crashes is a big help.
|