Archive for September 12, 2024

Thursday, September 12, 2024

Xcode 16

Apple:

Xcode 16 RC includes SDKs for iOS 18, iPadOS 18, tvOS 18, watchOS 11, macOS Sequoia 15, and visionOS 2. The Xcode 16 RC release supports on-device debugging in iOS 12 and later, tvOS 12 and later, watchOS 4 and later, and visionOS. Xcode 16 RC requires a Mac running macOS Sonoma 14.5 or later.

It seems like this will be the second year in a row that the new Xcode ships with a showstopper bug where Mac apps targeting an older OS version crash at launch.

JD Gadina:

FB14667312 - Invalid Binaries for macOS Apps Using QuickLook in Xcode 16 Beta

Florian Heidenreich:

It’s still not fixed with the Xcode 16 RC — so every macOS developer who uses QuickLook and targets macOS 11 and earlier will have to stick to Xcode 15.4 for the foreseable future.

Peter N Lewis:

Apple’s whole “we are going to change the behaviour of functions you use based on the SDK you link against” combined with “you have to use the new Xcode/SDK if you use a new macOS” is really infuriating.

Often, they wait until you link to a new SDK before changing behavior, but that is not the case with path extension change in Sequoia, nor for this change with creating Decimal numbers:

We narrowed down the issue to a change to the initializer for Decimal: Decimal(sign:exponent:significand). Prior to Beta 5, the sign passed into the initializer would be the sign of the Decimal. Passing .plus would result in a positive decimal, and passing .minus would result in a negative Decimal. This is regardless of the sign of the significant. In Beta 5, it seems that the sign passed into the init, and the sign of the significand are now negated. This means that passing .minus for sign and a negative Decimal for significand results in an unexpectedly positive Decimal value in Beta 5 alone. This behavior does not seem to be explicitly documented.

Arnaud:

Ah, I see the “nah let’s not care about which SDK the app was compiled with” SwiftUI philosophy is leaking

Previously:

Update (2024-09-17): Xcode 16 was released yesterday, but I do not see anything in the release notes about fixing the invalid binaries problem. As Xcode 15.4 doesn’t run on Sequoia, this means I need to stay with Sonoma.

Update (2024-09-19): softmaus:

FB14667312 is now at least mentioned [as a known issue] in the Release Notes – not in Xcode‘s though, but in macOS Sequoia 15.1 Beta 4’s.

yonato:

withCheckedContinuation crashes when compiling on XCode 16 and running on Sonoma (My Mac Designed for iPad)

Christian Beer:

It seems Xcode 16 broke Storyboard-References 🤯 Works with Xcode 15 but crashes when built with Xcode 16 because it doesn’t take the bundle but tries in main bundle 😩

Update (2024-10-21): Toomas Vahter:

Xcode 16 introduces a new execution engine for Previews, enhancing project configuration support and improving performance by up to 30%. However, it wraps SwiftUI views in AnyView for debug builds, which can hinder optimization. Users can override this behavior with a custom build setting to maintain performance in debugging.

Age Verification and the App Store

Jeff Horwitz and Aaron Tilley:

Driven by the alleged risks of social media to teen mental health—as well as examples of social-media apps being used to sell drugs to minors and recruit child sex-abuse victims—a wave of states have proposed or passed legislation to regulate platforms. The proposals restrict their ability to collect data on minors, serve them algorithmically targeted content or allow them to establish accounts without parental approval.

Before Carver’s bill in Louisiana, Apple had largely managed to stay out of the fray, but that is expected to change as lawmakers nationwide seek to confront the issue. Social-media platforms and many youth-safety advocates argue that effective content restrictions will require some form of age verification from Apple and Google, the duopoly that oversees operating-system software for the world’s billions of smartphones.

“Age verifying app by app is a case of whack-a-mole,” said Chris McKenna, founder of advocacy group Protect Young Eyes, who also advises Apple on digital-safety issues for children. “Every device knows the age of its user. We give our devices an enormous amount of our identity.”

An Apple spokesman said that websites and social-media companies are best positioned to verify a user’s age and that user privacy expectations would be violated if the company was required to share the age of its users with third-party apps.

I get that Apple doesn’t want to be responsible for age verification, but it’s really a stretch to say that this is better for privacy. With payment processing, Apple is all about protecting customers by only giving the App Store their billing information. It’s too dangerous to give a random Web site your credit card number, we’re told. But when we’re talking about much more sensitive information, like proof of identity, we’re supposed to believe the opposite. You should upload your driver’s license to each individual service because Apple collecting the information once and then sharing a Boolean would violate your privacy.

Ryan Christoffel:

Despite Apple’s opposition, however, the bill actually passed on the house floor. It was unanimous.

However, before the legislation could be voted on by the Senate, a key committee had to put it up for a vote. That committee is where Apple prevailed. Though no one on the committee would comment to the WSJ, it ultimately had its mention of app stores as responsible parties removed.

Ariel Zilber:

According to Carver, Apple lobbyists inundated him with messages “all day, every day.”

[…]

Louisiana was the first state to pass a law requiring age verification with IDs for sites that host adult content. Other states followed suit in approving similar statutes.

In May, The Post was the first to report that Google and Meta spent nearly $1 million on lobbyists who were hired to fight proposed legislation in New York that was aimed at protecting children online.

Previously:

Update (2024-09-17): It seems that Apple already has an API for age verification, but it only works with certain US states and only apps in certain categories can request the entitlement.

CodeEdit 0.3.1

Rui Carmo:

CodeEdit is a fully native macOS editor heavily inspired by Xcode UX conventions that is very interesting to me as an alternative to Visual Studio Code on the Mac.

Austin Condiff:

It might sound crazy, but we are determined to build an editor native to macOS written in Swift, by the community, for the community. Completely open source and free forever.

CodeEdit:

CodeEdit is a code editor built by the community, for the community, written entirely and unapologetically for macOS. Features include syntax highlighting, code completion, project find and replace, snippets, terminal, task running, debugging, git integration, code review, extensions, and more.

It sounds and looks very promising, but I couldn’t get it to work like in the screenshots. All I was able to do was open individual files and see them with syntax highlighting. Is there some trick to being able to create a workspace to access the multi-pane interface or use find/replace?

Previously:

Swift Build Times and Module Verification

Paulo Andrade:

Secrets’ build time must have gotten slower and slower without me really noticing it… until Xcode’s 16 betas, where I felt I really needed to understand what was going on.

[…]

The compiler is clearly spending most of the 3.5 minutes it took to build Secrets on verifying modules[…] This all sounds good and dandy, especially if you’re distributing a framework, but I clearly don’t want to be doing this in Secrets on every build!

[…]

This tweak brought down the build time from 3.5 minutes to 52 seconds 😮!

Previously: