Archive for March 25, 2020

Wednesday, March 25, 2020

Little Snitch and the Deprecation of Kernel Extensions

Rich Trouton:

As part of macOS Catalina 10.15.4, Apple has begun displaying a new dialog window message concerning third-party kernel extensions.


To further reinforce the message that kernel extensions are going away, Apple refers to them in the message window as “legacy system extensions”.


For a number of managed environments, these messages can be prevented from appearing. As long as a third-party kernel extension is whitelisted using an appropriate configuration profile, the message for it should not appear.

Norbert Heger (Hacker News):

We expect the deprecation to become effective with the next major release of macOS. There’s no official release date from Apple, but based on the release schedule of recent years it will not be before this fall. Little Snitch 4 will then not be loaded by the operating system, but there will still be an option to allow the loading.


The replacement APIs that are currently available (NetworkExtension framework on macOS 10.15.4) are not yet completely sufficient to implement the full functionality of Little Snitch. But we are working closely with Apple to fill the remaining gaps and we expect that a beta of the next major macOS version (most likely available at the next WWDC) or even an upcoming version of 10.15 will provide what is missing. As soon as the APIs allow us, we will complete the transition of Little Snitch to the new NetworkExtension API. It’s our goal to provide a public beta in June 2020 and a stable version in October.


Update (2020-03-27): Greg Hurrell:

I sure hope this doesn’t end up breaking Karabiner-Elements. If I had to use a machine without it, it would seriously impact usability for me. When the day comes that Apple breaks kernel extensions once and for all, I’ll be holding off on OS updates for as long as I can.

Adam Engst:

Unfortunately, since the dialogs give only the developers’ names, not the names of their apps, it’s difficult to know who I might contact. A Google search revealed that Ludovic Leger is the dev lead on TripMode, a useful utility I recommend for managing bandwidth use while away from high-speed networks; see “TripMode Prevents Unwanted Internet Data Usage on a Tethered Mac” (22 July 2015). I’m still not sure who Steven Yan is, or what app of his I might be using. That’s not a problem now, but it might be in a few months once the beta of whatever macOS version follows Catalina comes out.

Update (2020-06-05): Takayama Fumihiko:

Current status of Karabiner-Elements: I’m working to both DriverKit virtual keyboard and pure software keyboard using IOHIDSystem.

The IOHIDSystem library is re-implemented which was used in old Karabiner-Elements.

Update (2021-07-26): Patrick Wardle:

🙋‍♂️Who’s frustrated by Apple deprecating APIs only to provide a broken replacement!?

Several years ago NKEs were deprecated.

This forced devs to rewrite their tools to use Apple’s new (buggy) Network Extensions ...and since then deal w/ a deluge of user-submitted bug reports😭

Xcode 11.4 and Swift 5.2

Xcode 11.4 is now available for download (release notes). Alas, it requires Catalina.

Ted Kremenek:

Swift 5.2 is now officially released! 🎉


We have drastically improved the quality and precision of error messages in the Swift compiler.


The compiler leaves “breadcrumbs” when it encounters failures while inferring types in an expression, recording every specific failure along the way. These breadcrumbs allow the compiler to produce precise diagnostics, often with actionable fixes, that lead the developer toward correct code. Below are a few examples of improved error messages.


In Swift 5.2, the internal representation of declarations in the compiler is immutable, and the code generation phase of the compiler is able to trigger lazy evaluation of requests, the result of which are cached. Since requests are more fine-grained than the old validation step, this improves performance by avoiding wasted work. It also improves correctness, fixing a significant number of correctness issues where the type checker did not anticipate needing to validate something that was later required for code generation.

Code completion is also improved.

Esther Hare (Mac Rumors):

Universal purchase for Mac apps now available.


Update (2020-03-27): See also: SDK API Differences.

Update (2020-05-22): Craig Hockenberry:

Here’s a thing I never thought would happen: I need to stay on Mojave on my main development machine, and the current version of Xcode won’t run there, so I’ve stopped updating my iPhone so I can continue to install and debug.

Good job, folks.

A Different Zoom in the Mac App Store

Jeff Johnson:

Remember when people bought the wrong Zoom stock because ZOOM is Zoom Technologies, whereas ZM is Zoom Video Communications? Well they’re at it again, this time on the Mac App Store instead of the stock market. “Zoom is an [sic] screen magnifier” […]


The fact that mistakenly purchased abandonware is among the top paid apps is an indictment of the Mac App Store. Why isn’t the “real” Zoom on the Mac App Store? I don’t have any insider information, but as a Mac developer I can make an educated guess: Mac App Store policies. Specifically, Mac App Store policies that restrict API usage, especially the sandboxing requirement.


Update (2020-04-10): Jeff Johnson:

The misidentified, mistakenly purchased Zoom app is now #1 top paid.

Update (2020-04-15): Jeff Johnson:

The mistakenly purchased “Zoom” Mac app, which hasn’t been updated in 4 years, did nonetheless raise its price in the past week.

Too Hard to Delay Daylight Saving Time

Times of Israel:

Israel could delay switching to daylight saving time to discourage public traffic in the streets in the evening hours and promote social distancing, as part of the fight against the coronavirus, Interior Minister Aryeh Deri said Sunday.

Currently, clocks are planned to spring forward later this week, on the night between March 26 and March 27.

Via Dave DeLong:

Oh, and we’ve got 5 days to change and distribute the timezone databases 😉

Hana Levi Julian:

The government decided this week against going ahead with the change from winter time to summer time, mainly because there were too many complications involved in dealing with the digital presets of the servers and other computers and equipment that were already set up for the change to a summer clock to take place overnight between this coming Thursday and Friday.