Archive for July 14, 2020

Tuesday, July 14, 2020

APFS Snapshots of the Big Sur System Volume

Jeff Johnson:

Yesterday I updated from Big Sur beta 1 to beta 2, which went smoothly except for the fact that the update doubled the size of my read-only system volume to over 27 GB, which didn’t leave me enough free space on the partitioned external disk to install (the enormous) Xcode. Without Xcode, it’s impossible to adequately beta test Big Sur as a developer. It turns out that Big Sur always boots from a snapshot (an APFS snapshot that you can see with diskutil apfs listSnapshots, not a Time Machine snapshot that you’d see with tmutil listlocalsnapshots), and updating to beta 2 apparently added a new snapshot without deleting the old snapshot. I tried to delete the old snapshot, which was listed as “Purgeable” by diskutil, but Big Sur claimed I lacked permission, even with SIP disabled.

Howard Oakley:

Not only does Big Sur use a snapshot of the current system for its Signed System Volume, but it makes and keeps one of your previous installation too. When your startup disk has half a terabyte free, that may escape notice, but for us lesser mortals, and anyone trying to manage Big Sur in less than 100 GB, it really gets in your way. I’m sure that those figures will improve by the time that Big Sur is ready for release, but that isn’t the point: once the system has made that snapshot of the previous installation, there seems no easy way to discover how much disk space the snapshot is occupying, and the only way to free up that space seems to be performing a clean install of macOS.


If you really want to know what’s going on with your snapshots and why free storage space is disappearing, the best tool at present is Carbon Copy Cloner.


We need Disk Utility to be able to list all snapshots stored on a volume, and their current effective size, together with a command to delete those which are purgeable. Is this really too much to hope for three years after Apple introduced APFS and snapshots?


Update (2020-07-30): Erik Gomez:

Worse is you actually can’t use time machine in recovery OS to revert to any of these snapshots. Every time I try, it fails.

SwiftUI for Mac on Big Sur

Sarah Reichelt:

After a lot of testing, several days of frustration and help from Jordan Singer with his mail-swiftui-sample project, I was finally able to work this out. The difference is that the initial view has to specify what comes next as well as what it is displaying.


In the old style SwiftUI apps which were wrapped in AppKit, the menus were in a storyboard that you could edit. Now you add commands to the app’s WindowGroup to alter the menus.


With menus and toolbars, there is a heap of extra code added to certain views. I would love to be able to extract that into its own function or view modifier. I was able to extract the toolbar, but I am not sure how to do this with menus yet.


iOS 14 Pasteboard Notifications


If you thought the new API -[UIPasteboard detectValuesForPatterns:completionHandler:] on iOS 14 is designed to avoid privacy alerts when accessing pasteboard, no, it is not. It still triggers privacy alerts.


Testing result in beta 1: even if the pasteboard content doesn’t match the pattern.

I would have expected that with no matches there would be no notification. I guess you are expected to first call the detectPatterns API and then, depending on the result, call detectValues.


The WWDC Format

Benjamin Mayo:

The technical sessions were also all pre-recorded this year … and they should keep them that way. It was brilliant. The seminar format conveyed the information with more detail and more clarity. For learning materials, that’s exactly what you want.

I enjoyed the new format, too, and I like how it allowed each session to be its natural length. But I really miss the PDFs of the slides and the transcripts. I hope they’re just not ready yet.