Archive for November 22, 2019

Friday, November 22, 2019

OmniOutliner 5.5.1


Data Corruption — Changed how LinkBack data is stored to avoid corruption on save when running macOS Catalina. This does not fix files already corrupted by the bug, which presents itself with error details that start with “Error Domain=NSCocoaErrorDomain Code=3840 “Unexpected character…”.

This sounds like it was caused by the Catalina NSData.description change that I wrote out.

Attachments — Attachments added using the Edit menu option immediately appear.

Attachments — Dragging in a folder and selecting the Alias option correctly creates a link instead of embedding.


Interface — The saved filter rule editor resizes to fit the contents.

I’m really happy to see these fixed.

Now the main thing I’m looking for from OmniOutliner is for it to be faster with large outlines. Opening documents and typing, especially, can be really slow when lots of rows are visible.

Detecting Screen Recording Permission on Catalina

Craig Hockenberry (tweet):

All of the solutions presented here have a flaw in one way or another. The root of the problem is that there’s no correlation between your permission to know about a window (via the name in the window list), your permission to know about the process owner of the window (such as WindowServer and Dock). Your permission to view the pixels on screen is a combination of two sparse sets of information.

Here is a heuristic that covers all the cases as of macOS 10.15.1[…]

Most of the new privacy settings in Mojave and Catalina don’t have APIs to query whether permission has been granted. And many don’t even have APIs to request permission. This leads to extra work for developers to maintain changing heuristics and ultimately a more error-prone and complicated process for customers.

Nicholas Ptacek:

It’s such a mess, and so dumb that we have to do crazy workarounds to get what should be built-in functionality. Apple seems to be under the impression that if they make it excruciatingly hard for developers to query permissions, they’ll just give up.

As do some customers when the system privacy database gets corrupted and the only way to fix it is to reboot in single user mode to temporarily turn off System Integrity Protection.


Update (2019-11-25): Neil Sardesai:

Latest update to Step Two got rejected from the Mac App Store cause my QR code scanner technically needs screen recording permissions

It doesn’t help that the Screen Recording permission alert doesn’t let you supply a usage description string. And there’s no simple way to check if your app has screen recording permission, making it hard to put up your own explanatory UI

After explaining to the reviewer why screen recording is needed, they’ve asked me to completely change how the feature works, which is nuts. Other Mac App Store apps like 1Password do literally the exact same thing.