Archive for May 2025

Monday, May 12, 2025

Pasteboard Privacy Preview in macOS 15.4

Apple (via Jeff Nadeau):

Prepare your app for an upcoming feature in macOS that alerts a person using a device when your app programmatically reads the general pasteboard. The system shows the alert only if the pasteboard access wasn’t a result of someone’s input on a UI element that the system considers paste-related. This behavior is similar to how UIPasteboard behaves in iOS. New detect methods in NSPasteboard and NSPasteboardItem make it possible for an app to examine the kinds of data on the pasteboard without actually reading them and showing the alert. NSPasteboard also adds an accessBehavior property to determine if programmatic pasteboard access is always allowed, never allowed, or if it prompts an alert requesting permission. You can adopt these APIs ahead of the change, and set a user default to test the new behavior on your Mac. To do so, launch Terminal and enter the command defaults write <your_app_bundle_id> EnablePasteboardPrivacyDeveloperPreview -bool yes to enable the behavior for your app.

The Swift and Objective-C APIs are different.

Miguel Arroz:

Long ago when I was still at Apple I filed a radar suggesting something like this when I found out the Facebook iOS app would look into the pasteboard as soon as it was brought forward and suggest posting any URL the user might have there.

This is incredibly hard to get right since there’s no straightforward way for the OS to know if a paste op is legit.

Previously:

AI and Google Search Volume in Safari

Hartley Charlton:

Apple is looking at reworking Safari to directly support AI-powered search services, Bloomberg’s Mark Gurman reports.

[…]

Cue said that searches on Safari dipped for the first time in April 2025—a change which he attributed to users switching to AI services. He added that he believes AI services such as ChatGPT, Perplexity, and Claude will eventually replace conventional search engines like Google. As a result, Apple will need to add them as options in Safari in the future. Cue said the company had already held discussions with Perplexity.

Juli Clover (Reddit):

“You may not need an iPhone 10 years from now, as crazy as it sounds,” Cue said. He was referring to the way that AI is likely to evolve in the coming years, and how wearables combined with intuitive AI functionality could replace traditional smartphones.

M.G. Siegler:

This comment is obviously going to get headlines on its ownApple Exec: The iPhone is Doomed – but I read this more as someone making an almost off-handed comment about the theoretical future of AI. And actually, it seems more directed at the court to maybe take it easy on Google with these remedies – you know, such as maybe not ending their default search agreements. Because the market will do its thing in the end.

John Gruber (Primary Technology):

If they can pay, Apple will listen. And I don’t think it’s bullshit, at all, that traditional web search is actually going into decline now because of AI. Honestly at this point it would be weird if it weren’t.

But. Let’s say Apple would prefer for the current arrangement between Apple and Google to continue as is. But it’s under threat as a remedy in Google’s monopoly case. Is this not the perfect testimony?

Federico Viticci:

Perplexity’s iOS voice assistant isn’t using any “secret” tricks or hidden APIs: they’re simply integrating with existing frameworks and APIs that any third-party iOS developer can already work with. They’re leveraging EventKit for reminder/calendar event retrieval and creation; they’re using MapKit to load inline snippets of Apple Maps locations; they’re using Mail’s native compose sheet and Safari View Controller to let users send pre-filled emails or browse webpages manually; they’re integrating with MusicKit to play songs from Apple Music, provided that you have the Music app installed and an active subscription. Theoretically, there is nothing stopping Perplexity from rolling additional frameworks such as ShazamKit, Image Playground, WeatherKit, the clipboard, or even photo library access into their voice assistant. Perplexity hasn’t found a “loophole” to replicate Siri functionalities; they were just the first major AI company to do so.

Google (MacRumors):

We continue to see overall query growth in Search. That includes an increase in total queries coming from Apple’s devices and platforms.

M.G. Siegler:

Given that Google’s stock fell 7.5% yesterday on the testimony of Apple exec Eddy Cue at the remedies portion of Google’s search antitrust trial, the company probably had to respond.

[…]

While there is no transcript of what Cue actually said, reading dozens of reports on the matter would seem to paint a pretty clear picture that he noted that search queries fell in the Safari browser for the first time ever last month. “That has never happened in 22 years,” is his direct quote many publications are citing.

So how do we square that with Google’s response above? In particular, the notion that: “We continue to see overall query growth in Search. That includes an increase in total queries coming from Apple’s devices and platforms.”

To resolve the contradiction, it’s possible that Google users have switched to other browsers or that Safari searches are down in China, where Google isn’t available.

Previously:

iPhone 16 Bluetooth Issues With Toyota RAV4

Adam Engst:

Lauri returned her iPhone 16 Plus, replacing it with an iPhone 15 Plus. She was driven to such a seemingly nonsensical move by insurmountable problems getting the iPhone 16 Plus to pair via Bluetooth with her 2019 Toyota RAV4. The iPhone would initially pair with the RAV4 with no problem, but when she turned the car off and back on, the iPhone would connect and disconnect repeatedly. It continued that for a few minutes each time, sometimes managing to keep the connection and other times failing. Toggling Bluetooth off and back on sometimes helped, but not reliably.

[…]

On the other side of the equation, the Toyota technician told Lauri that this is a known issue between the iPhone 16 and the RAV4 in particular, and said that Apple would have to address the issue before Toyota could update its system.

Others have experienced similar problems when pairing an iPhone 16 with RAV4 models from 2016 and 2022. A Reddit thread identifies conflicts between the iPhone 16 and several other Toyota models that presumably share a similar head unit.

Note that this is when using Bluetooth audio, not CarPlay.

Previously:

Apple Appeals Epic Anti-Steering Injunction

Under the Radar (David Smith):

I maintain a sense of optimism that this situation could ultimately lead to a meaningful reset in the developer relationship. Maybe that is naive optimism but I think it is the best chance we’ve had in a while.

Bruce:

This situation could ultimately lead to a meaningful reset. But reading the Apple lawyers’ latest arguments is infuriating.

Tim Hardwick:

Apple has filed an emergency motion asking the Ninth Circuit Court of Appeals to pause key parts of a recent ruling that dramatically changes how the App Store operates, following a contempt finding in its long-running legal battle with Fortnite maker Epic Games.

In court documents filed Wednesday, Apple called the district court’s order “extraordinary” and argued it unlawfully forces the company to permanently give up control over “core aspects of its business operations.”

[…]

Apple is specifically seeking to halt two major provisions while its appeal moves forward: a ban on charging any commissions for purchases made through external links, and restrictions on Apple’s ability to set conditions for how those links appear in iOS apps.

Kevin Purdy:

A certificate (PDF) accompanying the emergency filing states that the order “fundamentally changes Apple’s business and creates destabilizing effects” for App Store customers.

The restrictions, “which will cost Apple substantial sums annually,” are not based on the company’s conduct, Apple claims, but “were imposed to punish Apple for purported non-compliance” with the 2021 injunction. In her ruling (PDF), Gonzalez Rogers described Apple as conducting an “obvious cover-up” and said that Apple “at every turn chose the most anticompetitive option.”

[…]

Apple argued in its emergency motion last night that its appeal would show that it complied with the 2021 injunction “by allowing iOS app developers to convey information to users about alternative purchase options.” Apple argues that the original injunction “says nothing about commissions or pricing,” nor about conditions for link placement and language.

John Gruber:

So 34 was the number in May last year. But did the number go up in any significant way since then? I was thinking about it this week, and I’ve not only never seen an app that used these link-outs, I’d never even heard about one that did.

[…]

But it really makes you wonder how anyone at Apple thought the court would see this plan as compliant.

Matt Stoller:

In its appeal of the ruling, Apple says that allowing developers to label their own buttons on the App Store is a violation of Apple’s First Amendment rights.

Sarah Perez:

The firm’s estimates indicate that U.S. App Store revenue from commissions more than doubled between 2020 and 2024. In 2020, Apple’s share of App Store commissions was approximately $4.76 billion, growing to over $10.1 billion by 2024.

[…]

In the report, Apple calculated the portion of an app’s total revenue that is facilitated by the App Store, even if the purchase was made elsewhere. For instance, if a user buys a subscription to Hulu on the web, but then spends 60% of their time streaming Hulu on Apple devices, Apple credits itself with facilitating 60% of that user’s spend.

John Gruber (Mastodon, Dithering):

Apple’s argument here might go along the lines of Ben Thompson’s theory (in a subscriber-only post last Friday) on the “Takings Clause” of the 5th Amendment.

Tripp Mickle:

Mr. Cook sided with Mr. Maestri, and Apple set out to justify that choice. It “manufactured” an independent economic study to legitimize its decision, a federal judge said in an angry ruling last week. It withheld thousands of documents under attorney-client privilege claims. And at least one of its executives lied on the witness stand.

The judge’s ruling, as well as witness testimony this year and company documents released on Thursday, shows the extraordinary measures that Apple took to keep every penny it collected in the App Store. The decision by Judge Yvonne Gonzalez Rogers, who heard the initial lawsuit brought by the video game company Epic Games in 2020, could cast a shadow over Apple’s business for years, weakening its credibility as legal scrutiny of its operations intensifies.

Ian Betteridge:

It is really hard to see how Tim Cook can remain as CEO of Apple on the back of this mess. Even if he hadn’t been directly involved with some of these decisions, the right call would be to resign. That he was the one taking them makes it even worse.

One of the most shocking things is that the estimated loss from implementing a link with no revenue was only about a billion dollars - a lot of money, but pocket change to a company the size of Apple.

For that, they have burned a huge amount of credibility with judges in the future, as well as taking a massive hit to their brand credibility – and losing control over how the App Store works in a pretty fundamental way.

And that, of course, leaves aside the lying under oath and creating fake reports to justify its prices! This is a company that feels out of control.

John Siracusa (Mastodon):

Despite making my living by criticizing Apple, I tend not to get caught up in the controversy of the moment. When Apple ruined its laptop keyboards, I wasn’t calling for Tim Cook’s head. I just wanted them to fix the keyboards. And they did (eventually).

But success hides problems, and even the best company can lose its way. To everything, there is a season.

As far as I’m concerned, the only truly mortal sin for Apple’s leadership is losing sight of the proper relationship between product virtue and financial success—and not just momentarily, but constitutionally, intransigently, for years. Sadly, I believe this has happened.

The preponderance of the evidence is undeniable. Too many times, in too many ways, over too many years, Apple has made decisions that do not make its products better, all in service of control, leverage, protection, profits—all in service of money.

[…]

Every new thing we learn about Apple’s internal deliberations surrounding these decisions only lends more weight to the conclusion that Apple has lost its north star. Or, rather, it has replaced it with a new, dark star. And time and again, we’ve learned that these decisions go all the way to the top.

Matt Birchler:

Like I said in that piece last year, I still think Apple makes a lot of great products that are best-in-class and I’ll continue enjoying for years to come, but the vibe has definitely shifted. I’ve been using Apple products since 1995, and Siracusa has been here at least a decade longer than me. Neither of us are prone to hyperbole “for the clicks”, so I think it’s notable when people like us are like, “hmm, things haven’t been like this before.” But like John, I don’t think all is lost.

Joan Westenberg:

It’s not the mistakes that matter. Apple has made them before. The Newton, MobileMe, the butterfly keyboard. What matters is the posture. A company once defined by joyful provocation—by thinking different—is now defined by its defensiveness. Its leadership acts not like inventors but like stewards of a status quo. They protect margins like relics. They fear dilution. They optimize at the expense of surprise.

Charles V believed the Church could not err. Apple believes its operating procedures cannot be wrong. Both relied on closed systems enforced by powerful institutions—canon law or App Store guidelines, pick your poison. Both found themselves increasingly out of step with the forces swirling around them.

Adam Engst:

More so than any other tech giant (Google’s fading “Don’t be evil” slogan notwithstanding), Apple has built its brand over the years around being a good corporate citizen. Apple has long espoused a commitment to user experience, privacy, environmental stewardship, and social responsibility, touting its attention to detail in product design, its sustainability efforts, and its focus on accessibility.

[…]

The problem here isn’t just recalcitrant legal compliance. It’s one thing for Apple to exert tight control over the App Store ecosystem in ways that legitimately serve users, such as by detecting and rejecting malicious apps. However, it’s difficult to see how users benefit when Apple charges high fees and restricts how developers can communicate. Those are just a few of the complaints developers have with the App Store, many of whom feel trapped in a system that prioritizes Apple’s profits over collaborative partnership.

[…]

I’m disappointed in Apple’s behavior throughout the Epic case. Rather than come off as truculent and money-grubbing, Apple could have—and still can—extend the culture of excellence and care that’s so evident in its hardware and interface design to the people who make the apps that power its devices.

John Gruber:

I think this is also why Phil Schiller has a different perspective on the App Store than Tim Cook or Luca Maestri. Schiller has been involved with developer relations at Apple for decades, since long before the iPhone even existed. In the mid-1990s, Schiller left Apple for a few years and was a senior executive at Macromedia, maker of then-essential design tools for the Mac. He knows that developers need to be treated as partners by Apple, that that’s the only way a platform can thrive. Games are different, but for all other apps, Apple should view developers as a precious resource to be cultivated, encouraged, and protected — not as a profit center to be squeezed. The only benefit from developers to Apple that Apple should be concerned with are the first-class apps those developers are creating to enrich and broaden Apple’s platforms. Especially apps that are exclusive to Apple’s platforms. (Why doesn’t Apple offer a lower App Store commission for platform-exclusive apps? What if the split were 70/30 for cross-platform apps but 90/10 for iOS/Mac-exclusive apps?)

Apple actually does the opposite: multi-platform apps get special treatment for payments.

Nilay Patel:

That’s the context for the other major theme here that you’ll pick up on in this conversation: Apple’s major shift toward digital services and whether that’s fundamentally changed the company’s culture. You see, as Apple kept selling newer and better iPhones, it simply ran out of people to sell them to. So, in order to keep growing revenue and keep Wall Street happy, it started squeezing more money from its existing customer base, including the very developers that put apps on the App Store.

[…]

All of that combined with Apple’s scale created a kind of hubris and, as you’ll hear Gruber say, a major blind spot for Apple that has pushed it toward these high-profile and public legal defeats that could reshape its business.

Previously:

Friday, May 9, 2025

Apple Acquires Mayday Labs

Joe Rossignol:

Apple acquired Canadian startup Mayday Labs in April 2024, according to a European Commission listing, spotted by French blog MacGeneration.

[…]

Mayday Labs founder Jeremy Bell confirmed that his company had been acquired in a since-deleted April 2024 blog post, but he did not mention Apple at that time.

[…]

Mayday Labs had developed an AI-powered calendar, task manager, and scheduling assistant for the iPhone, iPad, and Mac. The all-in-one app used AI to automatically schedule your events and tasks at ideal times, and it could learn your scheduling preferences and daily patterns over time to further optimize your calendar.

Previously:

The Macintosh Repository

Davo:

The Macintosh Repository is a community driven effort to preserve old software from the classic Mac OS era.

It has ~18k entries of software images from floppys & cds, scans, fonts, icons and everything in between.

The Macintosh Repository:

If you’re planning on running the treasures of the past you’ll find here on real old Macintosh hardware from the 90’s, you sir/madame, deserve to win an Internet for doing it THE ONLY CORRECT WAY! But for others, there’s QEMU, a PowerPC emulator capable of (slowly) running Mac OS X 10.5 down to Mac OS 9.1, SheepShaver, a fake PowerPC emulator capable of running Mac OS 9.0.4 down to Mac OS 7.5.2, Basilisk II, a 68040 emulator, capable of running the 68040 version of Mac OS 8.1 down to 7.0. Finally, for everything older than System 7, there’s Mini vMac II (which emulates 68020/color Macs) and Mini vMac which emulates the original B&W 68000 Macs.

Previously:

Update (2025-05-09): Matt Sephton:

Macintosh Repository paywall/request donations for the content they lifted pretty much wholesale from macintoshgarden.org

Mac Themes Garden

Damien Erambert (via Hacker News):

Mac Themes Garden is dedicated to showcasing schemes made for Kaleidoscope and celebrating the customization and expressiveness it enabled on Classic Mac OS.

[…]

What I call “recording” here involves taking “live” screenshots of the themes being used on a Mac OS 9.2 installation running in UTM and combing through each archive to properly record every scheme’s informations (author and release year).

This process is, to put it bluntly, a bit bonkers because it’s mostly manual, but I feel it is worth it.

See also: John Siracusa and GUI Junkie.

NSCache and LRUCache

Christian Tietze:

Is NSCache still a thing we like to use?

I’ve discussed this several times, but I don’t think I ever blogged about it. The problem I have with NSCache is that its eviction strategy is not defined, and it’s definitely not LRU. When I tried to use NSCache, it would destroy the performance of my app because I would fetch objects from the database, put them in the cache, and then find them immediately evicted, with the cache remaining full of older objects that I didn’t care about. I guess it could be useful as a threadsafe dictionary if you know that you won’t be exceeding the capacity. But often when I want a cache it’s because I need to limit the memory consumption, and in that situation NSCache just doesn’t work for me.

I ended up writing my own LRU cache, combining a Swift Dictionary with a linked list that tracks which keys were accessed most recently. Nick Lockwood made an open-source solution called LRUCache, converging on a similar design. (There were some interesting discussions in building it that have unfortunately been deleted.)

The main thing to be aware of if you’re writing your own is that if you let ARC deallocate your linked list nodes automatically it will explode. ARC uses recursion to follow the references, so if your list is too big it will overflow the stack. You can fix this by manually deleting list nodes using a loop. Or, if your list is only used by the cache, you can make the list pointers unowned and let the dictionary do the retaining.

Matthias Maurberger:

Recently, I needed to add caching to one of the iOS apps I’m working on. While researching a few possible ways how to go about this I came across a great article written by John Sundell (a pretty common occurrence when searching for Swift topics on the web, thanks John!). While the basic concept he describes in the article worked quite well for my needs, there was one major problem with the approach: NSCache will drop your objects like hot potatoes as soon as your app gets backgrounded.

[…]

So if you don’t want the system to evict all objects from your cache when your app gets backgrounded, make sure your objects implement the NSDiscardableContent protocol.

Previously:

Thursday, May 8, 2025

Optional Values in SwiftData Predicates

Fatbobman:

In the process of creating predicates for Core Data, the predicate expressions do not have a direct link to the type code. The properties used in these expressions correspond to those defined within the model editor (data model), and their “optional” characteristic does not align with the concept of optional types in Swift, but rather indicates whether the SQLite field can be NULL. This means that when a predicate expression involves a property that can be NULL and a non-NULL value, its optionality usually does not need to be considered.

[…]

However, the advent of SwiftData changes this scenario. Since the construction of SwiftData predicates is based on model code, the optional types therein truly embody the concept of optionals in Swift. This necessitates special attention to the handling of optional values when building predicates.

[…]

Although predicate construction in SwiftData is similar to writing a closure that returns a boolean value, developers can only use the operators and methods listed in the official documentation, which are converted into corresponding PredicateExpressions through macros.

He shows some examples of what you can do: somewhat surprisingly, introducing a new variable with if let works so long as you produce a single expression.

I really like optionals in general, but this is a case where I’m not sure we’re getting much value for the complexity. My recollection is that with Core Data the predicates just did the right thing without having to worry about this or to obscure the code with nil checks.

Even if a developer is certain a property is not nil, using ! to force unwrap in SwiftData predicates can still lead to runtime errors.

[…]

As of now (up to Xcode 15C500b), when the data model includes an optional to-many relationship, the methods mentioned above do not work. […] SwiftData encounters a runtime error when converting the predicate into SQL commands.

[…]

While there is no need for special handling in equality comparisons when an optional chain contains only one ?, situations involving multiple ?s in the chain, even though the code compiles and runs without errors, SwiftData cannot [prior to iOS 17.5] retrieve the correct results from the database through such a predicate.

Keith Harrison:

One other caveat. The #Predicate macro doesn’t handle accessing properties via a keypath.

[…]

The workaround is to introduce a temporary variable, outside of the macro, when constructing the predicate.

Previously:

curl Takes Action Against AI Bug Reports

Connor Jones:

Stenberg said the amount of time it takes project maintainers to triage each AI-assisted vulnerability report made via HackerOne, only for them to be deemed invalid, is tantamount to a DDoS attack on the project.

Citing a specific recent report that “pushed [him] over the limit,” Stenberg said via LinkedIn: “That’s it. I’ve had it. I’m putting my foot down on this craziness.”

From now on, every HackerOne report claiming to have found a bug in curl, a command-line tool and library for transferring data with URLs, must disclose whether AI was used to generate the submission.

If selected, the bug reporter can expect a barrage of follow-up questions demanding a stream of proof that the bug is genuine before the curl team spends time on verifying it.

Daniel Stenberg (Hacker News):

We still have not seen a single valid security report done with AI help.

AltStore PAL 2.2

Riley Testut:

Guess what — you can now self-publish your apps on AltStore PAL completely FREE!

Just connect your Apple Developer account with PAL and make an AltStore source. Then you can distribute notarized apps by simply uploading them to your web server like the good ol’ days 👌

AltStore:

The only major difference is that your apps will only be available in the EU.

[…]

You do not have to be located in or have a business in the EU to distribute your apps with AltStore PAL.

Brian Webster:

Welp, looks like today I get a taste of what it’s like not being able to ship an update to the App Store.

Blocked by a notarization outage, so not quite like the good old days.

Previously:

Update (2025-05-12): Manton Reece:

I don’t think I realized that you didn’t need to be in the EU to distribute apps via AltStore PAL. If Apple relaxes their notarization review in the future, I might use this to ship early iOS builds to the EU.

Pure Sweat Basketball v. Apple

Thomas Claburn:

A developer of mobile sports apps has filed a proposed class-action lawsuit against Apple, seeking to recover commissions iBiz allegedly collected in violation of a federal injunction intended to allow developers to use alternative payment systems.

The complaint [PDF], filed on May 2 in California Northern District Court by law firm Hagens Berman on behalf of Pure Sweat Basketball, seeks class-action status to represent other affected iOS developers.

[…]

“Had Apple complied with the injunction as issued, Apple’s own studies show that developers would have saved potentially billions in in-app purchase commissions,” the complaint says. “These are ill-gotten gains and Apple should not be permitted to retain them.”

Juli Clover:

Due to Apple’s anti-steering implementation, only 34 developers of 136,000 took advantage of the external payment link option before the terms were changed last week, and the lawsuit is seeking restitution for all U.S. developers who offered in-app purchases for non-zero prices between January 17, 2024 and when Apple fully complied with the original injunction.

Hajj.david:

Our app cannot use in app purchases because Apple does not offer metered billing, in addition IAP are limited to $999 whereas some of our clients are paying 3k-5k a month. So by every account IT IS IMPOSSIBLE for our business to use in app purchases. We fought with apple for MONTHS to even allow our app on the app store. Finally they agreed IF and only IF:

  1. We do not allow users to sign up in app, they have to sign up from our website.
  2. We DO NOT LINK our website ANYWHERE within the app
  3. We cannot allow users to manage their license (cancel, change, etc) within the app NOR can we send them a link to show them WHERE to do this.

This forced us to have to call customers or have them call us to resolve super simple things like changing a credit card. Apple’s rules were ridiculous, abusive (imagine taking 30% of 5k!) and to add further insult to injury Apple took FORTY-FIVE days to pay out. Stripe pays in 1-3 business days and takes 3%, and they have a better built in SDK that Apple.

Previously:

Wednesday, May 7, 2025

Free With In-App Purchase Is a Sham

Jeff Johnson:

The problem is that what Apple means here by “free” as opposed to “paid” is simply that you don’t have to pay before downloading the app, but Apple’s counterintuitive definition tends to obscure what is most important to consumers: how much you have to pay to use the app. The range of allowed use can vary drastically among apps that are free with IAP. Some apps can be used forever for free with no apparent limitations, and the IAP merely unlocks bonus content or features. Some can be used for free in “reader” mode, with the ability to open and read documents, while an IAP is required to edit and/or sync documents. Some apps are free to use fully for only a limited time; in other words, they have a time-limited free trial. At the end of the trial, various outcomes are possible. Time-limited trials are especially popular with auto-renewing subscription apps, which start charging you automatically at the end of the trial. And ironically, some so-called “free” apps don’t allow any use at all unless you first pay the IAP.

At this point, I think the way the store represents this information is obscuring more than it’s helping.

You might be shocked to learn that the window is actually floating. That is, it floats above and covers every other window on the Mac, even if you switch to a different app. And Apple approved this. You can close the floating window, but that quits the app.

By default, the lifetime $39.99 license is selected. It’s labeled “Best choice - no subscription”. The 3 day free trial is available only if you select the $19.99 yearly subscription option. The subtitle of the subscription option says, “Only $5.00/month”, the math of which is way off and would add up to $60 per year if accurate. I don’t know how that window got approved by Apple.

Apple is so picky about payment screens in some cases, but then it approves stuff like this.

Apple is supposed to protect users by making refunds and subscription cancelations easy, but Apple doesn’t actually make it as clear and easy as claimed. Why aren’t there refund and cancel buttons directly on the app’s product page? Such buttons could be right above the Ratings & Reviews section! For that matter, why don’t app developers have to ability to offer refunds directly to customers?

I recently had two cases where customers encountered problems related to Apple’s Bluetooth API and asked Apple for refunds. Even though the purchases were recent, Apple refused and told them to contact the developer instead—even though we can’t offer refunds. Luckily, I was able to work around the bug.

Previously:

External Payments From the Patreon App

Sarah Perez:

Creator platform Patreon has rolled out an updated version of its app that now allows users to make purchases via the web, in the wake of the Apple-Epic court ruling that forced Apple to allow app developers to include links to alternative forms of payment without being subject to Apple’s commission.

Previously, on version 125.4.1 of Patreon’s iOS app, users who wanted to subscribe to a creator’s membership plan would have to do so using Apple’s in-app purchases.

[…]

The option to use Apple’s own in-app purchases method, meanwhile, is shown only in very small text below the larger, bold “Join” button.

Jess Weatherbed:

The new Patreon web payment option supports Apple Pay, credit cards, Venmo, and PayPal. The alternative checkout options are currently limited to fans purchasing new memberships and creators using the subscription billing model, which charges fans based on their sign-up date, according to Patreon. The company is working to include alternative checkout options for one-time payments “in a future update.”

Matt Birchler:

This post from last year remains relevant today. Apple’s logic around “safety and security” for allowed payment methods was:

- it’s safe enough to enter your credit card in an app to buy physical goods

- it’s safe enough to enter you card into an app to buy digital goods you enjoy on other devices

- it’s unsafe to enter your card in an app to buy digital goods you enjoy on that device

Not entering your card info and just using Apple Pay: also not allowed.

Via Nick Heer:

This nonsense remains true outside the U.S. and the other regions that have mandated, to varying degrees, a revision to Apple’s payment terms. It makes no sense at all — but, of course, nothing about this really does. It is all reverse justification — a way for Apple to absorb a slice of an economy it feels it is owed for little reason other than because.

Jeff Johnson:

It’s nonsensical!

If a purchase occurs in Safari—which is Apple’s app—then Apple is NOT owed a cut, but if a purchase is made in Amazon’s app, then Apple IS owed a cut???

Previously:

Fortnite Coming Back to the App Store?

Juli Clover:

Epic Games CEO Tim Sweeney said over the weekend (via The Verge) that Epic will use its Epic Games Sweden account to submit Fortnite to the App Store in the U.S. Apparently, Sweeney has spoken to Apple about the issue, and based on his wording, it sounds like Apple could allow the plan, but he did not say that he has explicit approval from Apple.

Tim Sweeney (last week):

We will return Fortnite to the US iOS App Store next week.

Tim Sweeney:

Not Monday or Tuesday. Beyond that, we’re working as hard as possible and aren’t certain what day it will be ready.

John Gruber:

If Apple were going to allow Fortnite back into the App Store they could have done so at any point in the last four years. And there’s nothing, not a word, in Judge Yvonne Gonzalez Rogers’s decision last week that says Apple needs to reinstate Epic Games. I think Apple just stays the course and Fortnite remains persona non grata as far as the App Store is concerned.

Juli Clover:

It has cost Epic Games more than $100 million to challenge Apple’s App Store rules in the ongoing Apple vs. Epic Games legal battle, Epic CEO Tim Sweeney said today in an interview with Business Insider.

Sweeney said that Epic Games has paid “legal bills” in excess of $100 million, but that the dispute has cost the company a lot more.

But if you look at lost revenue, that’s another story. We can’t predict exactly how much we would have made on iOS, but in the two years that we were on the platform, Fortnite had made about $300 million on iOS. So you could have projected hundreds of millions of dollars of lost revenue as a result of the fight.

Previously:

Update (2025-05-12): Juli Clover (CNBC):

As promised, Epic Games today submitted Fortnite to the U.S. App Store, and if approved by Apple, it will mark the first time that the Fortnite app has been available in the United States since 2020.

[…]

Epic Games’ U.S. developer account has been banned since the initial Apple vs. Epic Games battle in 2020, so Epic Games is using the developer account that it established in Sweden to submit Fortnite to the App Store. Epic Games created a Swedish App Store account last year in order to create an Epic Games app marketplace in the European Union, as allowed by the Digital Markets Act.

Epic Games CEO Tim Sweeney said that the company has “conversed” with Apple about the plan, and that Apple is aware that Epic Games is submitting Fortnite using the Epic Games Sweden subsidiary that it established for the EU. Sweeney has not confirmed whether Apple said that’s okay, and it’s not clear if Apple will approve the App Store submission.

John Gruber (Mastodon):

I too asked Apple for comment on this earlier in the week, and they had nothing to state. Maybe Apple will just allow this. I don’t know. But if I were a betting man, I’d wager that Apple does not allow Fortnite back. That last week’s injunction was a big loss for Apple doesn’t make it a win for Epic. If all were forgiven or forgotten, Epic wouldn’t need to submit this through their Swedish subsidiary, which has an Apple developer account only because the EU forced Apple to grant them one.

Jeff Johnson:

I’m sad to say that I continue to think Gruber is right that Apple doesn’t need to and indeed won’t let Fortnite return to the App Store.

Attached are some key passages from the court ruling. It affirms that Epic was guilty of breach of contract, and moreover that Epic’s standing in the case depends on being an industry competitor and not on having apps in the App Store.

I remain confused about how the Swedish subsidiary fits into this. On the one hand, it’s obviously still controlled by Epic, the company that Apple banned, and the courts said that was OK. On the other hand, given that the account exists and already has another app approved, what would be the legal rationale for rejecting Fortnite if it follows the guidelines? Does it come down to whether the EU wants to stand up for the rights of one of its companies to submit apps to the US store?

Francisco Tolmasky:

Apple has personal beef with Epic so they won’t let you play one of the most popular games on Earth on their devices that you spent thousands of dollars on. […] An Apple that cared about customer experience would be working towards a resolution that gets the most popular game on Earth back on their platforms.

Reminder that Epic’s stunt didn’t endanger customers in any way. Rather, it demonstrated that a nefarious developer could trivially get through App Review and cause actual harm. And, of course, the real sin was bypassing the 30%, which was a problem for Apple but actually good for customers (who could still choose IAP instead of a discount if they wanted). What Uber did was worse, and not only did Apple not ban them, but it gave them a special entitlement to record the user’s screen.

Previously:

iOS 19 More Like macOS?

Joe Rossignol:

Bloomberg’s Mark Gurman today said that iPadOS 19 will be “more like macOS.”

Gurman said that iPadOS 19 will be “more like a Mac” in three ways:

  • Improved productivity
  • Improved multitasking
  • Improved app window management

Previous discussion of the rumored redesign had focused on fears of macOS becoming more like iOS or iOS becoming more like visionOS, but this sounds more promising.

Jason Snell:

This report is intriguing, but frustratingly vague. Apple wanting to tinker with iPad multitasking and app window management is dog-bites-man stuff at this point.

Stephen Hackett:

That certainly sounds like what our anonymous commenter was describing, and while it would be great for the iPad to gain a more Mac-like windowing system, I don’t think the people who want macOS on their iPads will look at iPadOS 19 and be truly satisfied.

Window management doesn’t address the core issue that has haunted the iPad since the beginning.

Joe Rossignol:

When an iPad running iPadOS 19 is connected to a Magic Keyboard, a macOS-like menu bar will appear on the screen, according to the leaker Majin Bu.

That makes sense.

Joe Rossignol:

A leaker known as Majin Bu today claimed that iOS 19 will enable support for at least a limited version of Stage Manager on iPhone models with a USB-C port.

Ryan Christoffel:

According to Jon Prosser, there’s a change coming that will impact users of large iPhones especially.

iOS 19 will reportedly move apps’ search bar to the bottom of the app—a big change from its current location.

Previously:

Update (2025-05-08): John Gruber:

One of the reasons why Apple’s own apps are always better — and more capable — on MacOS than on iOS or iPad is that they’ve got more commands, better organized, because there’s a menu bar. Apple Notes, Apple Mail, the whole iWork suite — they’re all better on Mac, and they all have way more features on the Mac.

Reading a menu is also far more humane than scrutinizing icons.

[…]

I know iPadOS today already supports a menu-bar-like HUD thing when you have a keyboard attached and hold down the Command key. I find that to be far less usable and far more distracting than a Mac-style menu bar. There’s a reason the Mac only shows you one menu at a time. Focus.

[…]

Why shouldn’t users be able to access all menu commands when they’re just using the iPad via touch? It’s unnecessarily restrictive that the full list of commands in an app is only available when a keyboard is attached — especially for a device that many users never attach a keyboard to.

Tuesday, May 6, 2025

External Purchasing From the Kindle App

Andrew Liszewski:

Contrary to prior limitations, there is now a prominent orange “Get book” button on Kindle app’s book listings.

[…]

Before today’s updates, buying books wasn’t a feature you’d find in the Kindle mobile app following app store rule changes Apple implemented in 2011 that required developers to remove links or buttons leading to alternate ways to make purchases. You could search for books that offered samples for download, add them to a shopping list, and read titles you already own, but you couldn’t actually buy titles through the Kindle or Amazon app, or even see their prices.

Hartley Charlton:

This is the first time since the enforcement of Apple’s in-app purchasing restrictions that Kindle users on iOS have had a direct route from the app to Amazon’s store. Previously, the lack of in-app purchasing or even external linking meant users had to manually search for titles in a separate browser session.

I’ve discussed the iOS-Kindle timeline before, but as a refresher: Apple used to allow non-IAP purchasing directly within the Kindle app, with no fees, even though Tim Cook told Congress that, “since the App Store debuted, we have never raised the commission or added a single fee.” After all these years and court hearings, the situation is still a regression because Apple no longer allows the purchase to happen within the app.

Dan Moren:

Honestly, I’m not sure I ever thought I’d see the day. I confirmed this for myself: clicking the Get Book link takes you out to Safari to the page for the book on Amazon’s site. No muss, no fuss.

Notably, this is the Kindle app, not the Amazon app. In the latter, you still—for the moment—see a note that “this app does not support purchasing of this content.” I’m intrigued as to why Amazon chose to do one but not the other—I rarely open the Kindle app unless I already have a book I’m reading; it’s the Amazon app I turn to for shopping.

Out of curiosity, I checked Kobo’s app as well, which acts as both the reader and storefront for that site, and there’s now a Get Book link there as well, though it pops up a separate panel and shows Apple’s (now prohibited) scare screen about leaving the app and going to an external website.

Ruffin Bailey:

Kindle iOS kicked me to Safari, which I keep in private mode, and the “Buy with one click” button is activated.

Okay, well shucks. Upon further review, apparently I don’t usually pay much attention to that button, because it’s always active, even if you’re not logged in. Click it and it asks you to sign in.

But I wouldn’t expect that to last long. Right now it looks like Amazon is only adding ref_=rekindleDP&nodl=0 to the URL, but they could add a unique, one-use GUID to the link and, with only a little risk to themselves (oh no! we gave away 200k worth of bytes to the wrong person!), make the button “live” immediately.

Adding a one-use, unique “buy now token” would make it easier to buy using Kindle than Apple’s own Books.

John Voorhees:

I expect other companies will follow Amazon and Spotify’s leads in the coming weeks. Although Apple has appealed Judge Gonzalez Rodgers’ contempt order, the Judge declined to stay its enforcement during the appeals process. It’s always possible an appeal could force Amazon and others to undo changes like this, but I think a more likely outcome is that an appellate court allows Apple to charge a fee where Judge Gonzalez Rodgers wasn’t – one that’s lower than the 27% that got Apple into trouble in the first place.

Previously:

Update (2025-05-07): See also: Hacker News.

M.G. Siegler:

It sounds like I’m making fun of Amazon, but really, I’m making fun of Apple. Because while Amazon did make a choice not to include such a button in their app, Apple really gave them no choice. Given the agency model used in this particular category, there was simply no way for Amazon to make the economics work. Even raising prices would just send more money to the publishers — and to Apple.

[…]

Apple should obviously — obviously — have made the change that Judge Gonzalez Rodgers forced upon them years ago. But why would they? There was money to be made and there was no indication that such stupidity from a pure product perspective was harming iPhone sales.

John Gruber (Mastodon):

But really, this whole situation with e-books has been the best argument against Apple’s App Store policies for at least the last 15 years. […] Apple’s App Store policies therefore make it impossible for a third-party bookseller to sell e-books and make even a penny of profit.

[…]

Apple’s obstinance on this has created nothing but friction, confusion, and hassle for users for 15 years. It makes no sense for anyone.

[…]

But at some point Apple should have just considered their own users. If their users are using the Kindle app looking to buy Kindle e-books on iOS devices, Apple should have just let it happen on the web — and used that as motivation to make Apple Books better so that maybe more users would prefer it to the Kindle ecosystem. What’s the word? Oh yeah ... competed.

PayPal Contactless iPhone Payments

Juli Clover:

PayPal today announced that it is planning to debut contactless payments in Germany, allowing German iPhone users to make tap-to-pay purchases in stores using their PayPal accounts.

PayPal is able to offer this feature because Europe’s Digital Markets Act has forced Apple to open up the NFC chip in its devices to third-party apps. NFC payments are available in apps without the need for Apple Pay or the Wallet app, allowing third-party payment services and banks to offer their own tap-to-pay solutions on Apple devices.

Previously:

Retrospective on Reverse-Engineering a Tiger Bug

Rosyna Keller (Mastodon, tweet):

At the time, Apple only allowlisted specific menu extras by class name (checked in -[SUISStartupObject _canLoadClass:]). Any attempt to load a menu extra that advertised a different class name in its Info.plist’s NSPrincipalClass entry would fail. Menu extras were first-class citizens. You could hold the Command (⌘) key down to move or quit them. They loaded automatically and needed no backing application. This sent lots of developers looking for workarounds to Apple’s allowlist, as they wanted these features for their own menus.

Some developers would steal one of the allowlisted class names for their menu extra plugin. This was unwise. The Objective-C runtime only allowed one class instance with a specific name to be loaded at a time. When it found duplicates, the one it chose was an implementation detail that could cause unexpected crashes. Favorite choices of class names to hijack included AppleVerizonExtra or IrDAExtra, i.e., something a user isn’t likely to have enabled. In the rare case someone did enable these, or if more than one developer chose to steal the same class name, all hell could break loose.

This was the impetus for Menu Extra Enabler. It was an old-style InputManager plugin that automatically loaded into SystemUIServer when installed and overrode the -[SUISStartupObject _canLoadClass:] instance method to return YES unregardless of what class name was used for the menu extra’s principal class.

[…]

I’m desperately looking for any assistance that can be provided. Specifically, I need some temporary help to afford the health insurance and rent. […] My ultimate goal is to find some contracting work for macOS/iOS where I can use my reverse engineering and bug fixing/finding/working around skills. I miss figuring out how things work, something I could do in spades while working on macOS Notarization at Apple.

Previously:

Sharon Zardetto Aker, RIP

Adam Engst:

Sharon started writing professionally about the Macintosh at its inception in 1984, with articles in the earliest issues of Macworld and the premiere issue of MacUser. She contributed to The Macintosh Bible for its second edition in 1989, served as the lead author/editor for the third edition in 1991, and reprised that role for the 1,000-page seventh edition in 1998. In between, she also wrote The Macintosh Companion: The Basics and Beyond, collaborated on two editions of The PowerBook Companion with her husband Rich Wolfson, edited The Macintosh Dictionary, and penned The Mac Almanac. Throughout the 2000s, she continued as a columnist for Mac magazines, ultimately writing nearly a thousand articles, including one in the final print issue of Macworld.

Although mentions of Sharon in TidBITS date back to when I first read The PowerBook Companion (see “Travels with Charley,” 16 November 1992), we began working together around 2006, when she wrote Take Control of Fonts in Mac OS X and its companion volume, Take Control of Font Problems in Mac OS X. She thrived as a Take Control author, writing books about Safari, iBooks, and Numbers, and contributing TidBITS articles on similar topics.

[…]

I’ve never met anyone as insatiably curious and communicative about software as Sharon. She didn’t just want to know how an app worked; she wanted to tell everyone about it. She couldn’t open an app without poking at every menu and every button, and then asking, “What happens if you hold down the Option key while…?” Sharon never met a keyboard shortcut she didn’t like, and she lived to unearth those that didn’t reveal themselves in the interface or the app’s manual.

Previously:

Monday, May 5, 2025

MailMaven Public Beta

Scott Morrison:

For a number of years we have been working on MailMaven: A new macOS email client that picks up where we left off after Apple killed Mail Plugins.

Today we are opening access to a wider audience than our small group of private beta testers.

Apple made it impossible for MailTags (and SmallCubed’s other plug-ins) to keep working with Mail, and the Mail extensions API remains quite limited, so they wrote a whole new mail client. It’s $75 for one year of updates, with the first year currently discounted to $45 and more discounts if you had already purchased their other products. SpamSieve integration is built-in, and MailMaven really lets you customize how spam messages are handled.

Joe Kissell:

Through six editions of Take Control of Apple Mail, the current title, I said that I used Mail because—and this qualification is crucial—with a long list of customizations and, in particular, the addition of the MailSuite plugin from SmallCubed, it was the best Mac email client I could find (and I’ve tried pretty much all of them). MailSuite added essential filing, automation, and tagging features that made Mail bearable. On its own, however, Mail is so-so at best, and it has been getting progressively worse for a number of years.

[…]

If you used Mail along with the MailSuite plugin in the past, you can picture that combination as a very rough approximation of MailMaven. If you’re unfamiliar with MailSuite, here’s a quick summary of some of its main features that have migrated into MailMaven[…]

[…]

If you’re the sort of person who loves tweaking things and squeals with delight every time you uncover another checkbox in Settings, you’ll be thrilled. Every aspect of the windows and message display, every keyboard shortcut, tweaky attachment options, and even the color, shape, and position of the unread message badge on the icon can be adjusted to your heart’s content.

However, AppleScript support is currently very limited. You cannot get the selected messages, and most of the message properties don’t work.

One of the interesting design decisions is that searching happens in a separate window rather than just filtering what’s displayed in the main window. This was more common pre-iTunes. MailMaven can automatically set the search scope based on what you were looking at, so this doesn’t really add any extra steps. On the plus side, I like being able to easily open multiple searches at once and to adjust the view options to explore the search results without disturbing the view settings for the main window. On the other hand, sometimes it would be handy to be able to just quickly filter the current display in situ [Update: This feature already exists.].

(Apple Mail does make it easy to create new viewer windows, which would seem to offer the best of both worlds. But it’s awkward because new windows don’t retain the context of which mailboxes you had selected. Recent versions of Mail are kind of the worst of both worlds because starting a new search in the existing window no longer filters the current mailbox, either—it jumps you to an All Mailboxes view.)

Scott Morrison:

We’ve toyed with the taglines:an email client for people who remember what email clients are supposed to be like.

An email client for people who think email client should be email clients.

In other words words, it’s not trying to reinvent e-mail, you don’t give their server access to your mail, and they’re not sprinkling AI everywhere. I also appreciate the old school release notes that actually tell you what the changes were. They are also open about the known issues and roadmap.

Previously:

Hyperspace 1.3

John Siracusa:

The first release of Hyperspace mitigated these risks, in part, by entirely avoiding certain files and file system locations. I knew lifting these limitations would be a common request from potential customers. My plan was to launch 1.0 with the safest possible feature set, then slowly expand the app’s capabilities until all these intentional 1.0 limitations were gone.

With the release of Hyperspace 1.3 earlier this week, I have accomplished that goal.

[…]

Apple’s APIs for wrangling cloud-backed files mostly seem to work, with only a few oddities. And if Hyperspace can’t get an affirmative assurance from those APIs that a file is a valid candidate for reclamation, it will err on the side of caution and skip the file instead.

[…]

There’s more to come, including user interface improvements and an attempt to overcome some of the limitations of sandboxing, potentially allowing Hyperspace to reclaim space across more than one user account.

The main new feature in 1.3 is support for Library folders, where the files are likely to be in use by running apps but also (surprisingly to me) are likely to be duplicates. It also improves handling of files that change in the middle of a scan.

Previously:

Folder Preview 1.6

Anybox:

Quick look extension for folders.

[…]

USD$1.99 to get the app and all of it.

[…]

Preview ZIP files as folders.

It does what it says on the tin. This is a new-style Quick Look extension, so it uses a real outline view and a real path bar, rather than trying to make HTML look-alikes, as was necessary with the old Quick Look generator system.

It works not only in Finder’s sidebar and Quick Look inspector window, but also in other apps that support Quick Look previews. In addition to archives of my own files, I store the original archives of all the software that I download in EagleFiler, for searching and verification purposes. The Folder Preview extension makes it possible to look inside those archives from the main EagleFiler window without having to expand them first. The Folder Preview app, which houses the extension, lets you configure view options: icon size, showing hidden files, and the preview depth (for performance reasons). It’s a bit frustrating that the previews are not keyboard-navigable. I assume this is due to limitations of Quick Look.

Trying out Folder Preview highlighted some other shortcomings of the current Quick Look system. First, there doesn’t seem to be a way to handle conflicts. I have BetterZip’s Quick Look extension installed alongside Folder Preview. It supports more archive formats than Folder Preview, but I prefer Folder Preview for ZIP archives. However, macOS forces me to choose. If I enable BetterZip for other file types, it will override Folder Preview for ZIP archives.

There are also a variety of problems with using System Settings to manage Quick Look extensions:

Previously:

Xcode + Claude

Juli Clover:

Apple is working with Anthropic on an updated version of Xcode that will support AI code writing, editing, and testing, reports Bloomberg. Anthropic is best known for its “Claude” large language model and chatbot that competes with OpenAI’s ChatGPT. Claude is well-known for its coding capabilities, beating out other LLMs on programming tasks.

The new version of Xcode integrates the Claude Sonnet model, and Apple is slowly rolling it out internally for employees to use.

Peter Steinberger:

Wrote a nice Mac menu bar app complete with CI in ~3h vibe coding. Claude is currently checking CI and fixing itself.

Yeah lies, ended up working all day on it and making it wayyyy better. The last 5% always take as long as the first 95%.

Previously:

Friday, May 2, 2025

App Review Guidelines Updated for Epic Anti-Steering

Apple (e-mail, Hacker News):

The App Review Guidelines have been updated for compliance with a United States court decision regarding buttons, external links, and other calls to action in apps. These changes affect apps distributed on the United States storefront of the App Store, and are as follows:

3.1.1: Apps on the United States storefront are not prohibited from including buttons, external links, or other calls to action when allowing users to browse NFT collections owned by others.

3.1.1(a): On the United States storefront, there is no prohibition on an app including buttons, external links, or other calls to action, and no entitlement is required to do so.

3.1.3: The prohibition on encouraging users to use a purchasing method other than in-app purchase does not apply on the United States storefront.

3.1.3(a): The External Link Account entitlement is not required for apps on the United States storefront to include buttons, external links, or other calls to action.

I’m still not really sure what this all means, but it seems to be in line with what I suggested yesterday: it’s US-only, and there are still many places where you have to use IAP. External links are allowed for digital content and services. I take this to mean not apps themselves or feature upgrades. (The exception is that if you support Android or Windows and track the user via an account, Apple lets you avoid its fees by unlocking via that account.) So I think it’s not a big change for most indie developers, but it is potentially a big deal for Apple because most of the App Store (and thus services) revenue comes from cross-platform game content. (On the other hand, maybe a lot of the sketchy purchases wouldn’t happen without IAP, so Apple will keep that revenue.) It’s not clear to me whether Kindle and Patreon are allowed if they don’t also support IAP.

Here are some parts of the App Review Guidelines that have not changed (emphasis added):

If we can’t understand how your app works or your in-app purchases aren’t immediately obvious, it will delay your review and may trigger a rejection.

[…]

3.1.1 In-App Purchase: If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. Apps may not use their own mechanisms to unlock content or functionality, such as license keys, augmented reality markers, QR codes, cryptocurrencies and cryptocurrency wallets, etc.

[…]

3.1.1(a) Link to Other Purchase Methods: Developers may apply for entitlements to provide a link in their app to a website the developer owns or maintains responsibility for in order to purchase digital content or services.

[…]

3.1.3(b) Multiplatform Services: Apps that operate across multiple platforms may allow users to access content, subscriptions, or features they have acquired in your app on other platforms or your web site, including consumable items in multi-platform games, provided those items are also available as in-app purchases within the app.

[…]

3.1.3(d) Person-to-Person Services: If your app enables the purchase of real-time person-to-person services between two individuals (for example tutoring students, medical consultations, real estate tours, or fitness training), you may use purchase methods other than in-app purchase to collect those payments. One-to-few and one-to-many real-time services must use in-app purchase.

[…]

3.1.3(g) […] Digital purchases for content that is experienced or consumed in an app, including buying advertisements to display in the same app (such as sales of “boosts” for posts in a social media app) must use in-app purchase.

[…]

3.1.4 […] App features that work in combination with an approved physical product (such as a toy) on an optional basis may unlock functionality without using in-app purchase, provided that an in-app purchase option is available as well.

[…]

3.2.2 Unacceptable (i) Creating an interface for displaying third-party apps, extensions, or plug-ins similar to the App Store or as a general-interest collection.

Graham Dawson:

But note still not even the slightest largess from Apple - US storefront only. So additional complexity and hence disincentive for the vast majority of us who of course sell worldwide.

Peter N Lewis:

They are really going to fight this until the last drop of developer blood is spilled…

Teflo:

How are they going to differentiate between storefronts? Are they going to ask for separate IPA’s? Are they going to have it where it’s a feature flag based on region? Is it going to be up to the app developer?

Ryan Jones:

At least how this is written right now, it seeeeems like there is no mandate to link out.

  • in other words, a Stripe Apple Pay button can be directly in the app
  • or the entire paywall could be a webview, with the button right there in it

John Gruber disagrees (Mastodon):

This does not mean apps can now use alternative payment processing in-app. It doesn’t even mean apps are no longer required to offer Apple’s IAP in-app for purchases and subscriptions. All it means is that apps (in the US for now, but Apple really ought to make this worldwide, but I suspect Tim Cook wants to fight this on appeal in federal court) are free to inform users about offers available on the web, and to link to those offers on the web. Those links must open outside the app, in the user’s default web browser.

The guidelines are not very clear. One interpretation is that you still need to use the ExternalLinkAccount API; the only difference is that it’s not gated by an entitlement. But I don’t think it can be that simple because that API relies on a single predefined URL in the Info.plist, which Judge Gonzalez Rogers found to be too restrictive. Another interpretation is that the API associated with the entitlement is what’s no longer required; you can just use the regular URL APIs. Guideline 3.1.1 would seem to still prohibit non-IAP purchasing within a Web view in the app.

Khaos Tian:

lol this doesn’t make any sense. The only reason the link out requirement was there is to create friction to minimize revenue impact… now the friction is gone, if they keep that, it’s only about making iOS customer experience worse, which would be weird.

It’s not weird: it’s maintaining as much friction as legally allowed, which has been the goal all along.

Rik Haandrikman:

Bookmark that thread – it’s becoming the running logbook of clarifications and edge-case discoveries as the news settles

[…]

Relying less on Apple’s IAP can simplify development and testing. You won’t need to deal with Apple’s sometimes laggy review process for price changes or new IAP products, since web purchases can be adjusted server-side. Bug fixes or improvements to your external purchase flow can be deployed instantly on the web.

If you support countries other than the US, it complicates development because now you have two parallel systems to maintain and test.

John Voorhees:

These moves by big players aren’t surprising, and I’m sure we’ll see more companies explore ways to take advantage of Wednesday’s ruling. Over time, though, the more interesting consequence of Wednesday’s ruling will be whether and how it changes the business models of indie developers and other small businesses that offer apps.

Jeff Johnson:

My current plans are to sit tight and see how the App Store changes play out.

I doubt that Apple would win on appeal, but who knows. Also, my business model is upfront paid, which would mean I’d have to go through the ordeal of switching to IAP in order to take advantage of the new App Store rules.

It’s not clear that I’d even benefit, because I’m already in the small developer program with the lower 15% fee.

Greg Pierce:

My initial thought for indies on App Store Guideline changes:

Don’t rush into anything. Watch the market and give it six months to shake out tweaks to the guidelines and App Review process, and for possible other payment options to stabilize their integrations, options, and fees.

If you jump on something, you may just create a lot of headaches and migration work in the coming months that distracts from delivering value to your customers.

Previously:

Apple’s Q2 2025 Results

Apple (transcript, MacRumors):

The Company posted quarterly revenue of $95.4 billion, up 5 percent year over year, and quarterly diluted earnings per share of $1.65, up 8 percent year over year.

[…]

The board of directors has also authorized an additional program to repurchase up to $100 billion of the Company’s common stock.

Jason Snell:

Revenue was $95.4 billion, up 5% versus the year-ago quarter. Mac revenue was up 7%, iPad revenue up 15%, iPhone revenue up 2%, and Services revenue up 12%. The Wearables/Home/Accessories category was down 5%.

Jason Snell:

Things are weird in Apple-land. Legal judgments are piling up in unexpectedly bad ways. Tariffs threaten large parts of Apple’s business. This year’s banner Apple Intelligence features got delayed indefinitely.

[…]

Speaking of doldrums: iPhone revenue was up 2%, and that qualifies as good news, given that it was down one percent last quarter. But the truth is that iPhone revenue has been essentially flat for the last three years. Not since fiscal 2021 has there been multiple quarters of double-digit growth. To be sure, the iPhone is still a money machine—it’s generated $200 billion in revenue while spending the last year in the doldrums. But if you’re a growth-obsessed investor, it’s a little troubling.

Benjamin Mayo:

In fact, Apple recorded a new all-time high for gross margin on services this quarter, at 75.7%. That figure is based on costs of $6.46 billion on sales of $26.64 billion.

[…]

The Services business includes revenues from things like iCloud, Apple Music, Apple TV+, AppleCare, and more. However, a big chunk is also derived from Apple’s cut of App Store in-app purchases, which ranges from 15-30% on digital goods purchases and subscriptions.

It also includes Google’s TAC payments for searches initiated in Safari.

Jeff Johnson:

Show me a retail store with a 76% gross margin.

Otherwise, people can STFU about App Store being like a retail store.

John Gruber:

No one even asked about the material impact of Apple being required to immediately change the App Store guidelines (in the US) to allow unfettered link-outs to the default web browser to make purchases and sign up for subscriptions. You’d think that would be a question.

Previously:

MacUpdater for Sale

CoreCode (via Jeff Johnson):

CoreCode Ltd., the developer behind the award-winning MacUpdater software, today announced that it will be discontinuing active development of MacUpdater after January 1, 2026. With the core technical challenges of the macOS app-updating space fully solved, CoreCode is now inviting interested parties to either license the underlying technology or acquire the entire MacUpdater project.

[…]

Over the past 8 years, MacUpdater has become a trusted solution for tens of thousands of users, enabling seamless updates for over 6,700 macOS applications. However, despite strong user loyalty and technical excellence, CoreCode has decided to wind down the project due to a lack of sustainable monetization under a non-subscription model.

Previously:

Update (2025-05-05): IwuvNikoNiko:

I wish they had charged $1 a month or $10 a year sub. I would’ve subscribed easily for the amount of time this app saves me.

[…]

Similar thing happened with Windows (SUMo) and there’s been no replacement other than using softpedia to get RSS updates for updated software. Unfortunately they don’t support Mac apps, so we’re screwed.

See also: Hacker News.

Update (2025-05-08): See also: TidBITS-Talk.

YouTube at 20

Alex Weprin:

Twenty years ago today, YouTube co-founder Jawed Karim uploaded a 19 second video titled “Me at the zoo” to the platform. As anyone who follows YouTube knows, it was the first video hosted by the platform.

On its 20th anniversary, YouTube now says that since Karim’s video was posted, more than 20 billion videos have been uploaded (and no, that isn’t a typo).

Google:

To mark YouTube’s 20th anniversary, we’re offering you a look at some of our features, statistics, hidden gems, and easter eggs to accompany us throughout the festivities.

David Pogue:

Today, it doesn’t need explaining. YouTube is the second most-visited website on Earth, after Google, which bought YouTube for $1.65 billion in 2006.

Every single day, we collectively watch more than a billion hours of YouTube videos. Funny videos … how-to videos … cat videos.

[…]

The most-watched of all? “Baby Shark Dance,” with about 16 billion views.

[…]

Nobody’s monetized it better than Jimmy Donaldson, better known as MrBeast, whose videos of colossal giveaways and physical challenges have made him the most-followed YouTuber of all, with 380 million fans.

Rene Ritchie:

I’ve been on @YouTube for 17 years as a creator and 2.5 as an employee. To say it changed my life — and the world — would be a profound understatement. To share your voice, to build a career — careers! — with no gatekeepers, just the willingness to press the upload or go-live button and the creativity to connect with an audience is an every-moment miracle.

Previously:

Thursday, May 1, 2025

Swift Proposal: weak let

SE 0481:

Currently, Swift classes with weak stored properties cannot be Sendable, because weak properties have to be mutable, and mutable properties are not allowed in Sendable classes[…]

[…]

In fact, wrapping weak references in a single-property struct is a viable workaround to the var restriction in both properties and captures[…] The existence of this simple workaround is itself an argument that the prohibition of weak let is not enforcing some fundamentally important rule.

[…]

An explicit weak capture is now immutable under this proposal, like any other explicit capture. If the programmer really needs a mutable capture, they must capture a separate weak var.

Court Orders Apple to Comply With Anti-Steering Injunction

Juli Clover (Hacker News, Jay Peters, Zac Hall):

In a victory for Epic Games, Apple was today found to be in violation of a 2021 injunction that required it to allow developers to direct customers to third-party purchase options on the web using in-app links.

Yvonne Gonzalez Rogers:

Apple’s response to the Injunction strains credulity. After two sets of evidentiary hearings, the truth emerged. Apple, despite knowing its obligations thereunder, thwarted the Injunction’s goals, and continued its anticompetitive conduct solely to maintain its revenue stream. Remarkably, Apple believed that this Court would not see through its obvious cover-up (the 2024 evidentiary hearing). To unveil Apple’s actual decision-making process, not the one tailor-made for litigation, the Court ordered production of real-time documents and ultimately held a second set of hearings in 2025.

[…]

In stark contrast to Apple’s initial in-court testimony, contemporaneous business documents reveal that Apple knew exactly what it was doing and at every turn chose the most anticompetitive option. To hide the truth, Vice-President of Finance, Alex Roman, outright lied under oath. Internally, Phillip Schiller had advocated that Apple comply with the Injunction, but Tim Cook ignored Schiller and instead allowed Chief Financial Officer Luca Maestri and his finance team to convince him otherwise. Cook chose poorly. The real evidence, detailed herein more than meets the clear and convincing standard to find a violation. The Court refers the matter to the United States Attorney for the Northern District of California to investigate whether criminal contempt proceedings are appropriate.

This is an injunction, not a negotiation. There are no do-overs once a party willfully disregards a court order. Time is of the essence. The Court will not tolerate further delays. As previously ordered, Apple will not impede competition. The Court enjoins Apple from implementing its new anticompetitive acts to avoid compliance with the Injunction. Effective immediately Apple will no longer impede developers’ ability to communicate with users nor will they levy or impose a new commission on off-app purchases.

[…]

Mr. Onak suggested the warning screen should include the language: “By continuing on the web, you will leave the app and be taken to an external website” because “‘external website’ sounds scary, so execs will love it.” […] From Mr. Onak’s perspective, of the “execs” on the project, Mr. Schiller was at the top. […] One employee further wrote, “to make your version even worse you could add the developer name rather than the app name.” […] To that, another responded “ooh - keep going.” […] Again, Apple decided on the most anticompetitive option, that is, the “even worse” option[…]

[…]

Apple also argues that the question of whether Apple’s commission appropriately reflects the value of its intellectual property is not an issue for injunction compliance, and that it is legitimate for a business to promote the value of its corporation for stockholders. […] Apple misses the point. The issue is that Apple flouted the Court’s order by designing a top-down anticompetitive system, in which its commission played a fundamental role. […] For the same reasons, the Court disagrees that requiring Apple to set a commission of zero constitutes and unconstitutional taking. […] For instance, as described infra Section IV, in the trademark context, “a party who has once infringed is allowed less leniency for purposes of injunction enforcement than an innocent party.” […] Apple does not have an absolute right to the intellectual property that it wields as a shield to competition without adequate justification of its value. Apple was provided with an opportunity to value that intellectual property and chose not to do so.

[…]

Apple willfully chose not to comply with this Court’s Injunction. It did so with the express intent to create new anticompetitive barriers which would, by design and in effect, maintain a valued revenue stream; a revenue stream previously found to be anticompetitive. That it thought this Court would tolerate such insubordination was a gross miscalculation. As always, the cover- up made it worse. For this Court, there is no second bite at the apple.

David Barnard:

If you read the ruling, don’t skip the footnotes, there are some bangers…

Tim Sweeney (Hacker News):

NO FEES on web transactions. Game over for the Apple Tax.

Apple’s 15-30% junk fees are now just as dead here in the United States of America as they are in Europe under the Digital Markets Act. Unlawful here, unlawful there.

Riley Testut:

It’s hard to overstate how massive this is. Turns out when you flagrantly break the law, there are consequences!

Jeff Johnson:

So, uh... does this mean we can sell our apps outside the iOS App Store now?

My read is that very little has actually changed for most developers. You still have to use IAP. The only difference is that if you were already eligible to activate some app content via an external purchase, you’re now allowed to mention this in the app and link to it. And you don’t have to track the customer for a week and then pay Apple 27% (even if they purchased on Android). So this is big news for a company like Epic or Netflix or Spotify. For an indie developer selling apps, not content, it’s nice but not “game over” for Apple. (Of course, our revenue is almost irrelevant to them, anyway.)

The Omni Group currently uses IAP, but you can also buy on the Web and then activate by logging into your account within the app. I think the ruling means that they’ll be able to tell you about this option within the app, but I don’t think it means they get to avoid the tax. Nor would they necessarily want to because customers like IAP. For developers that aren’t multi-platform, I’m not sure there’s even an option to do external payments. And smaller developers, who are paying Apple 15% instead of 30%, might not find it worth their while, in any case.

It remains to be seen how Apple will update the guidelines and whether external links will still be more restricted outside of the US.

Marcin Krzyzanowski:

🤔 Apple still may freely reject any app with external links from the AppStore. It always has been like this.

R.M.:

I would be careful here. Apple still controls the AppStore algorithm. I won’t be surprised if apps that promote the web payment option, will see a decline in their ASO performance…

John Voorhees:

Unnamed sources at Apple have told 9to5Mac that the company disagrees with the Court’s decision, but will comply and appeal. I doubt that appeal will go anywhere. The Court made it clear that it expected Apple to comply with its contempt order immediately, so an appeal won’t delay that, barring intervention by the Court of Appeals. Given the deference higher courts afford to lower courts enforcing their own orders and the extensive evidentiary record, overturning it on appeal is a long shot.

In the meantime, Apple is prohibited from:

  • Imposing any commission or any fee on purchases that consumers make outside an app, and as a consequence thereof, no reason exists to audit, monitor, track or require developers to report purchases or any other activity that consumers make outside an app;
  • Restricting or conditioning developers’ style, language, formatting, quantity, flow or placement of links for purchases outside an app;
  • Excluding certain categories of apps and developers from obtaining link access;
  • Interfering with consumers’ choice to proceed in or out of an app by using anything other than a neutral message apprising users that they are going to a third-party site; and
  • Restricting a developer’s use of dynamic links that bring consumers to a specific product page in a logged-in state rather than to a statically defined page, including restricting apps from passing on product details, user details or other information that refers to the user intending to make a purchase.

He also asks a good question: where Apple’s internal lawyers were in all of this?

Christina Warren:

My position for close to 15 years has been that it’s unconscionable for Apple to collect a commission off of purchases made outside the App Store. I’m glad the court had enough too. This is good for the ecosystem. There are still valid reasons to use the built-in IAP model. But as I railed about the Patreon situation last summer, enough is enough.

I’m not sure this really fixes the Patreon situation, but I guess we’ll see.

Tim Sweeney:

We will return Fortnite to the US iOS App Store next week.

Epic puts forth a peace proposal: If Apple extends the court’s friction-free, Apple-tax-free framework worldwide, we’ll return Fortnite to the App Store worldwide and drop current and future litigation on the topic.

When did Epic gets its US developer account back? I thought they already lost that battle in court, and I don’t see anything about it in the new court order. Even if they do, it seems like Epic’s victory falls short of what they originally tried to do with Epic Direct Payment because the customer will be sent out of the app to make the purchase.

John Gruber (Mastodon):

Apple won the original case. It was like a sidenote on that original case that Judge Gonzalez Rogers issued an injunction that Apple was required to allow developers to just freely link to alternative payment offerings on the web, outside the app.

[…]

None of this, as far as I can see, has anything to do with Epic Games or Fortnite at all, other than that it was Epic who initiated the case. Give them credit for that. But I don’t see how this ruling gets Fortnite back in the App Store. I think Sweeney is just blustering — he wants Fortnite back in the App Store and thinks by just asserting it, he can force Apple’s hand at a moment when they’re wrong-footed by a scathing federal court judgment against them.

[…]

If there’s a single sentence in Gonzalez Rogers’s ruling that suggests Apple needs to reinstate Epic Games to the App Store, I missed it.

Dave B.:

Two viewpoints:

  1. Create the best possible ecosystem. Build a walled garden aimed at improving the experience for customers. Make premium devices and a premium UX. Do that, and you can charge a lot of money for devices, keep lifelong customers, and make massive long term profits.

  2. Squeeze every penny from every product and every service. Make massive profits today, but piss everyone off, annoy your customers, push developers away, and cause regulators to come after you. Sacrifice your future brand equity to appease Wall Street today.

Phil, like Steve, seems to support #1, while Tim and many others support #2.

Dan Moren:

The thing that Apple used to be so good at understanding is that the bottom line isn’t just about how the numbers add up. Apple has long been a company that prides itself on its image and its brand, and marring that, whether it be via contentious relationships with developers or seemingly bending over backwards for authoritarians, does have an effect in the long term.

John Gruber (Mastodon):

Schiller comes across as Apple’s sole voice of reason, fairness, and dare I say honesty in this entire ruling. The only people in the world who seemed to think Apple could or should comply with the 2021 injunction (that apps be permitted to steer users to the web to make purchases) by charging a commission — any commission, let alone a 27 percent commission — on those web transactions were Apple’s finance team members, led by Luca Maestri and Alex Roman, and Tim Cook.

[…]

With this ruling and Maestri’s central role in Apple’s decision to forge ahead with a compliance plan where they “allowed” steering to the web by charging the same effective commissions on web transactions as they do for in-app transactions, I now have to wonder whether Maestri retired or “retired”.

Matt Stoller (Hacker News):

But this time, the judge accused Apple Vice-President of Finance, Alex Roman, of having “outright lied under oath,” and referred the matter to the U.S. Attorney for a criminal contempt investigation. She also went out of her way to blame Apple CEO Tim Cook directly.

However, it looks like Cook got away with the statements he made to Congress.

Steve Streza:

First: the only considerations Apple executives made were for revenue and control. At no point did the user’s experience enter the picture, except as a hand-wavey gesture towards “safety” when leaving an app. Apple gave up treating developers with decency a decade ago, knowing they have them by the throat and can make them do whatever they want. Legal compliance was asked to be as close to the line as possible, and to stick a toe over if their arrogance made them believe they could get away with it. Beyond that, in every decision, money and power were what they chose, and the ruling includes evidence that this is how they thought when no one was looking.

Second: the hubris is overwhelming. Apple could’ve chosen a number that was similarly high, but not SO high that would’ve made it look obvious. They could’ve allowed for buttons, or toned down the ridiculous scare screen, or cut down their 7-day commission carryover, or any number of things. But they made it so easy to see their intentions, and they left a paper trail. They really could not have more thoroughly engineered a situation that would make them look as deliberately anticompetitive as they have been here.

Third, and arguably most important: the rot went all the way to the top. Tim Cook signed off on all of this, and but for Schiller’s protest over the 27% commission, so did the executives involved. This wasn’t something that was caught up in a committee and escaped the vision of the CEO. He was giving the thumbs up on all of it. If you think any of this is as offensive as the judge did, there are many people to point fingers at, but they all directly lead back to Team Cook.

Jason Snell:

Apple also attempted to engineer the directive to allow external links in apps by creating new barriers and requirements that would similarly defang those orders. It created full-page “scare screens” (I referred to them as “This App May Kill You” screens), demanded that all links be to static URLs (neutering their utility), and kept editing the warning labels to dissuade users as much as possible from ever agreeing to follow the link.

Nick Heer:

To all those who have said Apple’s regulatory and legal responses have amounted to malicious compliance, you appear to be correct. Stripping more formal language, as the judge has done here, reveals how fed up she is with Apple’s petulant misconduct.

[…]

Throughout this filing, Phil Schiller comes across very well, unlike fellow executives Luca Maestri, the aforementioned Alex Roman, and Tim Cook. In internal discussions, he consistently sounds like the most reasonable voice in the room — though Rogers still has stern words for him throughout. (For example, Schiller claimed external purchasing links alongside in-app options would make users more susceptible to fraud, even though under Apple’s rules it must review and approve those links. The judge writes “[n]o real-time business documents credit that view”.)

Stephen Hackett:

The document directly addresses Apple’s tight control over how links to external payment methods appear. When I read this part of the injunction, I whistled out loud, to the surprise of my wife who was in the room with me:

For button styles, Apple limits developers to what Apple calls the “plain” button style — essentially just a hyperlink — because Apple does not want the developers to use the more effective “button.” A more effective button would increase competition. Similarly, Apple limits calls to action to five, narrowly cabined templates. Nowhere does the Court authorize those limitations. At a minimum, the Court need not decide whether these restrictions alone violate the Injunction, because Apple has violated the central mandate of this Court’s orders: that Apple not foreclose competitive alternatives to IAP.

The document reveals that those screens were at the behest of Tim Cook:

After the June 20, 2023 meeting regarding this Court’s Injunction, Apple decided that it would implement a full screen warning after users click on an external link, regardless of which commission option was ultimately selected. At the meeting, Mr. Cook “asked the team to revise the customer warning screen . . . to reference the fact that Apple’s privacy and security standards do not apply to purchases made on the web.” The team updated the warning screen, sent it to Mr. Schiller for approval, and returned the revised copy to Mr. Cook on June 23, 2023. The updated warning screen changed a sentence from “You will no longer be transacting with Apple” to “Apple is not responsible for the privacy or security of purchases made on the web.” As Ms. Goldberg’s notes reflect, the idea discussed was that this “[i]nterstitial . . . tells ppl its dangerous and they are leaving the app store.”

I guess he’s a product guy after all.

Benjamin Mayo:

The only interference Apple is currently allowed is a simple alert notifying the user they are going to the web. Amusingly, the endorsed design was an early iteration Apple considered before they went full on scare sheet.

Jacob Eiting:

this is pretty wild. you can put IAP buried on a settings page and have the web offering be shown exclusively

will come down to conversion rates vs Apple take rates as to what people do.

Which I suppose is the point, force Apple to compete on the merits of the tech.

Michael Luo:

You can now accept payments with @stripe outside of your app, with no iOS app store commissions.

The Stripe team cooked up a quick guide walking you through how.

Juli Clover:

Epic Games today announced plans for Epic Games Store Webshops, a feature that will allow developers to launch digital storefronts that are hosted by the Epic Games Store. With Apple’s mandated App Store rule changes in the United States, developers will soon be able to direct customers to web shops to make out-of-app purchases, bypassing the in-app purchase flow.

The Epic Games Store will charge developers a 0 percent fee for the first $1,000,000 in revenue they collect per app per year, and after that, developers will need to pay Epic a 12 percent cut.

Ryan Jones:

🤯Honestly, a brilliant strategic move by Apple would be immediately drop their rate to 10-15%.

Majority of apps wouldn’t bother with linking out. They take the same revenue hit but keep control.

Rob Jonson:

They have a bit of a quandry. If they instantly frop their rates in the face of competition, then it’s harder to argue that their rates were always competitive.

Which exposes them to suits on past charges for competitive abuse.

M.G. Siegler:

For now, I just want to focus on the Epic and Sweeney element. Mainly because I think I was right, and damnit, people thought I was crazy for reading it this way three-plus years ago.

[…]

And it wasn’t just that specific moment in time, there continued to be many examples that indicated Sweeney might be playing a different game here – ever since he first started his campaign nearly five years ago. At first, I thought Epic may have misjudged how Apple would respond to their clever trolling, “1984"-esque viral moment and all. But actually, that’s what led me down the path of thinking this was all a part of the plan, in an almost crazy Joker way.

Steve Troughton-Smith:

I’m glad we wasted the past six years going through this instead of embracing it from the outset and being on the right side of history.

Oskar:

So it only took the legal system 16 years(!) to figure out that the core business model of the App Store is illegal… right around where the golden era of apps is ending.

Ryan Jones:

We said for 5 years “do it yourself or gov will make you and that’ll be shit for us all”!

Saagar Jha:

Nobody is really talking about the Epic side today but the court does confirm that they breached the DPLA and need to pay attorney’s fees (which I don’t think they really care about at this point)

Previously:

Update (2025-05-02): Mike Masnick:

The company just had to make one small change: let developers tell users they could make purchases elsewhere. Simple enough.

Instead, Apple apparently decided that the best response was to design elaborate schemes to make that “elsewhere” as scary and expensive as possible, hide evidence of those schemes from the court, and then lie under oath about all of it. This strategy has worked out about as well as you’d expect, leading to what may be one of the most scathing judicial opinions you’ll ever read.

[…]

Unfortunately for Apple, the notes for that meeting noted that a reason to reject the first proposal was that it would “create competitive pressure.” As the judge notes: that was exactly the point of the injunction, to create competitive pressure. So, Apple’s meeting to figure out how to minimize competitive pressure can be seen as seeking to get around the injunction.

[…]

Even more damning, Apple’s internal notes reveal that Apple (most likely correctly) predicted that the 3% discount on commissions wouldn’t be economically viable, because the cost to run your own payment setup would likely exceed that 3%. And, Apple already knew that no one would sign up for this because they had used similar off-site commission programs in Korea and the Netherlands[…]

Lina Kahn:

For years Apple has charged an exorbitant tax on Americans who use its App Store, while thwarting developers who want to offer lower-cost options.

Apple continued these tactics even after being ordered by a judge to stop.

Yesterday’s decision is a long-awaited win for innovators, consumers, and the rule of law.

Congratulations to everyone who helped ensure fair competition would prevail.

Paul Haddad:

Will Apple be forced to refund the 27% fees it collected? Hell maybe even the 30% since lots of people didn’t bother with external links because of the 27%…

Tim Cook:

The case yesterday, we strongly disagree with. We’ve complied with the court’s order and we’re gonna appeal.

Ryan Jones:

So the hard line continues.

Dave DeLong:

One of the most damning things about the Apple ruling yesterday is how basically every developer I’ve talked to is overwhelmingly happy with it.

The amount of goodwill that Apple has squandered is breathtaking. Actions have consequences, and this feels like the beginning of Apple’s “Finding Out”.

Filip Radelic:

As a developer who has been hurt by Apple’s gross overreach repeatedly for over 17 years, I am happy out of pure pettiness. As a user, I am absolutely terrified of what this kind of freedom will bring to popular apps. If they just made the fees like 5%, no one would ever bother to poke the bear and everyone would be better off.

Kyle Hughes:

I can think of no better time to cash in on Apple’s third-party developer goodwill than this summer with the largest visual refresh in 12 years.

Joe Rossignol:

As planned, Spotify has updated its iPhone app in the U.S. with out-of-app pricing and subscription options for its Premium plans.

David Pierce:

On this episode of The Vergecast, we talk about what just happened and why it matters. After some very important party speaker updates, Nilay, David, and The Verge’s Jake Kastrenakes walk through Apple’s years of closed-door meetings about app commissions, and the ways in which Gonzalez Rogers found she’d been misled throughout the process. (Nilay also takes a victory lap on the whole “buttons and links“ thing.) We talk about how developers are responding to the news, as well as what new things you might be able to buy in the App Store, which new apps might suddenly be possible, and whether Apple has any moves left in this case.

Matt Birchler, quoting Nilay Patel:

You can just see that they picked the finances over the product over and over again. And if they had just figured out a way to make in-app purchases worth more to developers than leaving the ecosystem, developers, I think, would have picked in-app purchases every single time. It’s just easier. And they didn’t. Instead, they punished the ability to compete.

[…]

And I know some people will read this and say, “Matt, Apple has always existed to make money, you just finally noticed,” and honestly, I find this to be an extremely reductive way to look at companies and how they make decisions.

[…]

It’s a shame because, despite all of the issues we have with the company, in my opinion, Apple still makes the very best computers, tablets, phones, watches, and more. I’m writing this on my Mac, and I love this computer. My iPhone is in my pocket, and it’s an outstanding piece of consumer technology. These things are amazing, and it’s so frustrating to have this anti-competitive App Store thing lingering over all of it.

Previously:

Update (2025-05-07): Upgrade:

We break down Apple’s failure in U.S. District Court and what it means for the future of Apple’s policies, corporate culture, corporate executives, and bottom line.

Update (2025-05-08): See also: Accidental Tech Podcast.

David Smith:

What drew me to Apple and gave me such affection for them was their professed desire to make wonderful, delightful, exquisite products that surprise and delight their customers. That ethos is both the implied and explicit brand promise. Because their products were so exquisite, they cost more, but that cost was justified by their quality and in an open market customers would choose their products because of their inherent excellence.

[…]

I am honestly not all that interested in following Epic, Spotify, Amazon, and others in changing their apps to take advantage of what this injunction allows. I currently don’t have any plans to offer payment outside of IAP.

However, what worries me most is reading the internal discussions at Apple and the posture and thought process that led Apple to this place.

[…]

Where I see Apple’s biggest mistake in their current line of thinking is that while I pay Apple huge sums of money each month, they don’t view me as a customer to be served. They don’t seem to see the benefit of making my experience and offerings better and better. They aren’t trying to win me over by being excellent; they are assuming my loyalty through strong-arm tactics and intransigence.

Mario Guzmán:

I miss the days when Apple was more about just creating “insanely great” products that “just worked” and people wanted to buy. They wanted to buy them because Apple was amazing at storytelling and creating a lifestyle people wanted to be a part of. As a result, they saw the cash just flow in as reward for making wonderful products.

I’m an Apple Fan in 2025

Dan Moren (Mastodon):

Stay Foolish debuted ten years ago, almost to the day, but I’ve been writing regularly for Macworld for nearly twenty years. When I first started out, we were all excited about what the latest in technology—Intel-powered Macs—would mean for Apple’s long-term prospects for survival. Two decades later, nobody ever even whispers that Apple is doomed anymore, because to suggest it would mark you as somebody divorced from reality.

It’s difficult to overstate just how different the Apple of today is from the Apple of 2015 or 2006. In taking a retrospective look at Apple, we most often find ourselves comparing the enormously successful behemoth that Apple now is to the company’s nadir in the mid-90s, when it was just steps from going out of business. But the truth is that even in just the last decade or two the company has reached heights that seemed previously unattainable.

And somewhere along the way, I think the relationship of the company to its customers—and vice versa—changed as well.

Jeff Johnson:

Dan distinguishes between a fan of the company and a fan of the products, but I’m not a fan anymore of the products, which are now poorly crafted compared to 20 years ago. Apple products have become, at best, the lesser of two evils, and the company itself is no longer special.

I think this is a bit too harsh. There’s a lot of stuff that’s not objectively bad, and much that is good, too. Apple is still special relative to most other companies. But clearly the tenor has changed. For me, the two big things are, first, that Apple used to be the company that tried to do things the right way, even in minor areas that were overkill; but, now, much of the time they just don’t care, even about things that users and developers find to be quite important. And, second, my default assumption is now that new things will be broken. The magic is gone.

Dimitri Bouniol:

If anything, Apple’s lack of interest in what I have to bring to their platform is what is pushing me to the web, forcing me to work with shittier languages on a rendering engine far more performant than SwiftUI.

[…]

Do I mind paying the 15-30%? No, not really. Does Apple do anything that benefits me (and by proxy, them) with that money? No, not really. Maybe my app is a bust, but so far, I’ve gotten way more interest and support from non Apple users organically than anything the App Store has offered me.

Apple has done everything they could possibly do to erode their platforms. They stopped investing in what makes their platforms great to use. They stopped supporting their biggest fans that make software for those platforms. They stopped caring about what makes their platforms so easy to develop for. Once they were successful, they acted like no one else took part in helping them reach that success.

Previously:

Apple v. Optis Cellular Technology

Reuters (via Ric Ford):

Apple must pay a U.S. patent holder $502 million for the use of 4G patents in devices including iPhones and iPads, London’s Court of Appeal ruled on Thursday, in the latest stage of a long-running legal battle.

Texas-based Optis Cellular Technology LLC sued Apple in London in 2019 over its use of patents which Optis says are essential to certain technological standards, such as 4G.

Andre Revilla:

Apple has unsurprisingly responded by promising to appeal the court’s decision, to which Optis insisted it will fight to defend its intellectual property.

Optis provided Engadget with the following statement:

“We’re pleased the UK Court of Appeals has recognized and corrected a clearly flawed prior ruling and has made meaningful progress toward affirming the true value of our patents to Apple devices. In addition to ordering payment that exceeds $700 million with interest and fees, the Court has judged that ‘Apple’s significant negotiating strength leads some parties to agree lower rates than would be agreed between a willing licensor/willing licensee’ thereby gaining an unfair advantage. We will continue to ensure fair compensation for the Optis intellectual property that enables high-speed connectivity for millions of devices around the world.”

See also: Patently Apple.

Previously: