This blog post attempts to give an overview of what happened to Safari extensions in the past few years, from the perspective of a developer (me) with many years of experience working on Mac apps and Safari extensions.
safariextz file format either directly by the developer or by Apple in the Safari Extensions Gallery.
Since 2018, the Safari extensions situation has changed radically. Apple deprecated
safariextz extensions with the release of Safari 12, and support for them was removed entirely with the release of Safari 13 in 2019. Instead, developers were told to create Safari app extensions, distributed in the
Contrary to widespread misconception, Safari app extensions don't have to be distributed in the Mac App Store. Safari extensions can be distributed in the Mac App Store, but developers also have the option to directly distribute a Safari extension on the web. However, a Safari app extension distributed outside the Mac App Store must be signed with an Apple Developer ID certificate, and it must also be notarized by Apple in order to run on macOS 10.15 Catalina.
As a result of the change in format from
safariextz has been good overall for the Safari extension ecosystem, and perhaps my uncommon position makes me especially qualified to write an article discussing this problem.
The paucity of publicly available Safari app extensions doesn't reflect the full extent of the decimation of the extension ecosystem caused by the elimination of
If you're wondering why your favorite old Safari extension hasn't been ported to a new Safari app extension, the reason isn't necessarily just lack of native Mac development expertise by the developer. Even though an
That's not the only example. I won't discuss the API differences in depth here, but speaking generally, an app extension has less control over Safari's user interface than an old
safariextz did. I believe that change was intentional by Apple, who may cite "security" as a justification, but regardless of the justification, there's no guarantee that that the functionality of a
safariextz can be ported to a Safari app extension, even if the developer has the desire and the skill.