Tuesday, April 1, 2025

Xcode 16.3

Apple (security, downloads):

Clang now defines TARGET_OS_* conditionals as built-in macros based on the provided target triple.

[…]

Searching in the documentation viewer may start an indexing process which makes no progress. This may result in missing search results and increased CPU usage.

[…]

Fixed: Foundation encoders/decoders user info dictionaries now require Sendable values. This may cause build errors even in the Swift 5 language mode in small edge cases where the userInfo property is set to a value like init(myCustomInitializer:) where the initializer is defined in an extension on Dictionary with a Value == Any constraint.

[…]

Instruments 16.3 includes a new Processor Trace Instrument which uses hardware-supported, low-overhead CPU execution tracing to accurately reconstruct execution of the program.

[…]

In Xcode when you are in a test context you are now able to query for your test plan name and scheme name in the environment with the keys XCODE_TEST_PLAN_NAME and XCODE_SCHEME_NAME.

[…]

xcodebuild supports constraining the tests run through tests actions by tags. Use -only-testing-tags to include tests identified by a tags and -skip-testing-tags to omit tests identified by tags.

There are also lots of C++ and Swift/C++ improvements. It does not look like the issues with linking to certain frameworks on older versions of macOS (FB14667312) or calling async functions bridged from Objective-C (134442168) have been fixed yet.

Xcode Releases:

It is identical to RC2 that came out a couple of days ago.

Matt Massicotte (via Christian Tietze):

No, dynamic isolation is not bad.

But, I think we can also agree that static isolation is preferable. If you find yourself using dynamic isolation solely because it is a familiar pattern, that’s something to think about more deeply. Static isolation is a safer, clearer way to express what you need. That doesn’t mean you can always or even should start with it. Adopting concurrency will be a long process. Dynamic isolation is a very handy tool for getting there, I just don’t think it should typically be an end-state.

Rob Napier:

I’m wondering if there are changes to how DynamicActorIsolation works in Xcode 16.3. I’m seeing crashes due to running on a background thread that I don’t have with 16.2. The closure in question isn’t intended to be MainActor even though it’s defined in a View. With DynamicActorIsolation turned on, it seems to be getting MainActor assertions added, even if I mark it Sendable.

Paul Hudson:

If you upgraded to Xcode 16.3, be warned: there appears to be a simulator bug that causes network access to fail regularly. It doesn’t affect devices, just the simulator. You can work around it by using URLSession(configuration: .ephemeral) rather than URLSession.shared.

Previously:

Update (2025-04-02): Sean Heber:

Xcode 16.3 is seemingly refusing to remember the width of the canvas panel where SwiftUI previews live between tab switches and it is driving me bonkers and I’ve only had this version of Xcode a few hours.

Update (2025-04-21): Tom Lokhorst (Mastodon):

When switching from Xcode 16.2 (Swift 6.0) to Xcode 16.3 (Swift 6.1), I suddenly got a bunch of crashes in a Mac app.

It’s related to try await as [Any?].

Update (2025-04-22): Foxy:

Xcode 16.3 has some serious issues with the Preview.

When it actually works, it doesn’t remember the Preview window/pane’s size. So you have to reset it all day long.”

But half the time Preview fails anyway, on even the simplest “Hello World” example.

Update (2025-04-25): Some developers are getting spurious errors about Apple Push Notification service entitlement (via Douglas Hill).

Christian Tietze:

Uggghh so it’s time to update macOS for #Xcode 16.3 soon

Saagar Jha:

Can someone tell the Xcode people that instead of shipping with its own statically-linked Brotli decoder that has been patched to log “Needs flush!” incessantly in the background they can just use the one that’s been bundled with the system for half a decade.

Marcin Krzyzanowski:

🤕 lost 30 minutes wondering what’s wrong with me, only to learn that assets literals are broken in SwiftUI

Craig Hockenberry:

Today on Developer Jeopardy!

Answer: 1,965,231

Question: How many times have I resized the SwiftUI Canvas in Xcode 16.3?

Dave DeLong:

All I want for #WWDC is for Xcode to correctly report build status.

[…]

Other fixes would be nice too, but the #1 thing an IDE needs to do is show correct information. If it can’t do that, it doesn’t matter what else it can do; it’s not trustworthy.

I’m still seeing the same old spurious build errors, but new in Xcode 16.3 are “real” errors (conflicts between Swift-generated Objective-C enums in different frameworks) that make incremental builds fail so that I have to clean and rebuild the whole project after making a minor change.

Update (2025-05-07): Peter Steinberger:

GitHub CI still has no Xcode 16.3 on their machines. What are my options? What are ya’all using for fast Mac CI?

2 Comments RSS · Twitter · Mastodon



@Diggory Added above, thanks.

Leave a Comment