Archive for August 6, 2025

Wednesday, August 6, 2025

Xcode 26 Beta 5

Apple:

Xcode 26 beta 5 requires a Mac running macOS Sequoia 15.5 or later.

The download is back to being a .xip file, and there’s a slightly smaller Apple Silicon–only version. Again, the release notes don’t actually show what’s new in this build.

The span property of UTF8View does not support the small string representation in beta 1, and traps for small String instances. A future version of the Swift standard library will lift this restriction. (137710901)

This scary warning is still there at the top, and it was looking to me like “future version” meant “after OS 26.0,” but actually it was apparently fixed “a few betas ago.”

Sean Heber (Marcin Krzyzanowski, Der Teilweise):

What the heck? These icons are a blurry mess in my dock and the simulator icon just looks like a black blob.

Sean Heber:

Holy cow.. they actually fixed this in Xcode b5?! I ran into this when I was playing around with SDL and GLFW and some other OpenGL/Metal things (checks notes...) over two years ago! Even then it had already existed for some time prior because I found a forum thread about it.

Even though I don’t use Swift Concurrency, I had to update my Core Data code due to the changes documented for macOS Tahoe 26 Developer Beta 5.

First, it wants NSManagedObjectContext subclasses to be marked @unchecked Sendable, i.e. restate what they inherit.

Second, and more seriously, I got a ton of errors like this:

'nonisolated' is not supported on lazy properties; this is an error in the Swift 6 language mode

None of these errors showed line numbers, and they supposedly originated from files that don’t even have lazy properties. The files that do have lazy properties had no errors shown—or maybe there were so many copies of these same errors that the actual relevant files didn’t make it through the truncation of the long error list.

My first guess was that the problem is that NSManagedObjectContext is now NS_SWIFT_NONISOLATED, and one of my classes has some lazy NSManagedObjectContext properties. After all, the error seems to be saying that lazy properties can’t be nonisolated. Isn’t that what the on means? But making those properties non-lazy didn’t help.

If I read the error “backwards,” that lazy properties aren’t supported on nonisolated types, it makes more sense. I changed the lazy properties on my NSManagedObjectContext subclasses to IUOs, and that helped, but I don’t really understand what’s going on here. I get that lazy could make it hard to guarantee which thread is doing the initialization, but isn’t it already using the annotations to opt out of that checking? I only access the context’s properties from within a perform block, and it’s only intended to be an unofficial actor, anyway. The error seems completely irrelevant, except that if I don’t satisfy it my code won’t compile. (I don’t want to turn off SWIFT_TREAT_WARNINGS_AS_ERRORS or try to selectively suppress this warning, as it will probably eventually be useful for other code.)

Changing to IUOs worked for one target, albeit at the cost of slower runtime performance and higher memory use for properties that often are not actually used. Then I ran into the same errors with another target. Again, Xcode couldn’t tell me which file they originated from. It turns out that NSManagedObject is now NS_SWIFT_NONISOLATED, too, so it can’t have lazy properties, either. Apple says that the changes are intended to “resolve compatibility issues,” and that they “might introduce new warnings while building source code that violates the longstanding CoreData concurrency guidelines,” but I was not violating the guidelines!

This whole situation is infuriating. I don’t mind adding some annotations for Swift Concurrency, but the compiler should tell me where the errors originate from, the error should say what the actual problem is, and the language shouldn’t suddenly make my longstanding code structure illegal when I’m not even using Swift Concurrency. And this is not the WWDC build of Xcode; it’s introducing big changes in probably one of the last betas before everything ships next month.

When I finally got my app compiling again, I found that the weak linking bug is still present in beta 5.

Previously:

Update (2025-08-07): I ran into a Swift compiler crash calling the AudioObjectGetPropertyData() API.

iOS 26 Developer Beta 5

Juli Clover:

Apple today provided developers with the fifth betas of iOS 26 and iPadOS 26 for testing purposes, with the updates coming a week after Apple seeded the fourth betas.

Juli Clover:

Apple is continuing to refine button placement, animations, and design in preparation for launching iOS 26 in September.

[…]

Apple added a toggle in the Camera app to allow users to toggle on Classic Mode, a setting that reverses the scroll direction when you swap from mode to mode.

[…]

There is now a dedicated Select button in the Mail app, instead of the button being tucked away inside of the “…” menu.

Benjamin Mayo:

Another subtle change to the tab bar’s implementation in this beta is that the glass lens actually renders a duplicate copy of the tab items. You can see here both magnified items are shown with the selected blue tint, but the actual items are unselected.

Steve Troughton-Smith:

Beta 5 feels a lot better put-together than previous betas, design wise. There have been a lot of subtle changes to how Liquid Glass works to maintain the effect but reduce the pain points. I think it’s going to ship like this.

Christian Beer:

Opening a menu reloads the whole SwiftUI Table and drops the selection…

Collin Donnell:

Why does everything bounce and have weird lighting effects? Why are all the controls so big? Why is the thing above the keyboard sometimes a search field and other times a regular text field?

Previously:

uBlock Origin Lite for Safari

PseudorandomNoise (Hacker News):

TLDR uBO Lite is available in Test Flight today for all the Cupertino OS’s

Jen Simmons (Hacker News, Reddit):

Over the years, I’ve heard a lot of developers & other people wish that uBlock Origin was available for Safari. Now it is! Download for Safari 18.6 and Safari 26 beta.

VastTension6022:

I searched using the exact full name, didn’t see it and assumed the store hadn’t been updated yet – but no! It was actually the sixteenth result!

tomalpha:

For the unquoted search, there are twelve different apps/items returned above it - you really have to scroll down to find it at number 13.

Even for the quoted search, it’s returned in fourth place.

It was also really far down in the App Store search results for me.

concinds:

People should be way more upset at the fact that Safari adblocking today is still inferior to even MV3 Google Chrome. Apple’s implementation of declarativeNetRequest was semi-broken until the very latest iOS 18.6.

Raymond Hill:

It’s very possible that the sites you visit do not require any of the filtering capabilities specific to uBO, in which case you won’t see a difference.

Also, mind that by default there is no generic cosmetic filtering in uBOL while this occurs by default in uBO. In uBOL, you will have to raise the blocking mode to Complete to benefit from generic cosmetic filtering.

In general, uBOL will be less effective at dealing with websites using anti-content blocker or minimizing website breakage because many filters can’t be converted into DNR rules (see log of conversion for technical details).

[…]

Because the declarativeNetRequest API does not support the ability to enforce rules according to the top context, i.e. the URL in the address bar, the following capabilities can’t be supported[…]

Previously:

Disk Utility: Erase Process Has Failed

Especially with macOS Sequoia, I get this error almost every time I connect a hard drive or SSD and try to erase it. Disk Utility reports:

The calling process or user lacks the proper privileges to perform this operation

The workaround is to quit and relaunch Disk Utility.