How to Reinstall Safari for Mac
On one of my Macs running macOS 12.6, the Safari 16 update said that it had succeeded but actually left me with a zero-byte executable that wouldn’t launch. This had never happened to me before in all my years of using Macs.
You might think this should be impossible because macOS now uses a Signed System Volume (SSV) that’s supposed to make sure that the system files are correct. However, Safari is updated separately from the rest of macOS, and so it is actually stored on the Data volume rather than on the SSV.
I had other Web browsers installed, so my first thought was to simply download the Safari 16 installer and run it again. However, Apple no longer offers downloads of the Safari installer. Apple’s supported solution, I assume, is to use macOS Recovery to reinstall all of macOS (and then update to Safari 16) or perhaps to restore from a Time Machine backup. But those remedies are quite disruptive.
Of course, the Safari 16 installer must be available from Apple’s servers since macOS’s software update can download it. Unfortunately, I wasn’t able to find the link via Web searches, instead finding lots of SEO pages that didn’t actually offer the solution.
Mr. Macintosh rescued me, providing a mysterious link to the Safari 16 installer package. But how can you find such links yourself? First, open this file:
/System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/SeedCatalogs.plist
Inside are URLs for the current macOS software update catalogs. (Old catalog URLs are listed here.) Right now, the current non-beta one is:
https://swscan.apple.com/content/catalogs/others/index-12customerseed-12-10.16-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog.gz
I like to paste paths and URLs like this into BBEdit’s Open File by Name window. It will both download the URL and decompress the file for viewing.
Once you’re viewing the catalog of installer packages, you can search around to find the one that you need.
Alternatively, you can use the SUS Inspector app to download and view macOS software update catalogs. And Mr. Macintosh now has a page that lists all the Safari installer packages (to go along with his lists of IPWS files and installers for Ventura, Monterey, and Big Sur).
Had the same issue where it would crash at launch, and then no longer launch at all. Re-installed macOS from Recovery, and now I’m scared to install the Safari 16 update 🤷♂️
Previously:
- Safari 16
- macOS 12.6 and macOS 11.7
- Apple Platform Security Guide (February 2021)
- Is Big Sur’s System Volume Sealed?
Update (2022-09-23): Oliver Busch:
Even simpler: Pacifist.
Update (2022-12-02): Alexandre Dieulot:
The catalog file used in practice is slightly different than those “seeds”. This might be a more future-proof way to get its URL:
softwareupdate --dump-state; grep -Eo 'https.+catalog\S+' /var/log/install.log
3 Comments RSS · Twitter
Glad you got Safari working....but that's not why I'm here. I'm here to say thank you for the BBEdit "Open File by Name" tip.
I've been using BBEdit since the late 90's - it's always been the first thing I install on a new Mac - and have only ever used that dialog box for accessing local files. I had no idea it could be used for remote URLs. No more using curl on the command line and piping to zcat for me!
Reminder that for system-level upgrades (ie macOS 12.6), a snapshot is taken before installing and can be restored from Recovery mode by selecting Time Machine.
@Ezekiel The Safari update unfortunately wouldn’t count, anyway, though you could snapshot manually ahead of time. But are you sure it still makes automatic snapshots for system updates? Mr. Macintosh reported that this stopped with macOS 10.15.3, and his subsequent update says that Apple had stopped advertising that feature and that “Automatic Snapshots were never taken during an OS Upgrade.” Apple says elsewhere that it does auto-snapshot, but that page was last updated before the reported Catalina bug/removal. Due to the bug where updates actually deleted snapshots, I consider this to be a handy feature if it happens to work but would not rely on the availability any snapshots, even manually created ones.