Archive for February 4, 2021

Thursday, February 4, 2021

Apple Wants Developer Transition Kits Back

Filipe Espósito (Hacker News, MacRumors, tweet):

In an email sent to developers today, Apple says that soon developers will have to return the Developer Transition Kit (DTK) as it was only designed to test the apps on the Apple Silicon platform.


As developers had to pay $500 to get the custom Mac mini with A12Z Bionic chip, Apple will offer a $200 credit for each DTK returned. This credit can be used as a discount to buy a new M1 MacBook Air, MacBook Pro, or Mac mini.

On the one hand, the DTK served its purpose, and I was able to get all my apps working with the M1 Macs by the day they were released. I think it was worth $500 to me in marketing/reputation, as well as personal piece of mind. (Of course, this also benefited Apple’s platform and hardware sales to some extent.) On the other hand, Apple’s e-mail is a bit disappointing for several reasons.

First, although the contract didn’t say that there would be any credit, a lot of people were expecting to get the $500 back, or more, based on the precedent Apple had set.


During the Intel transition, Apple offered Mac Pro (cheese grater design) for $999. In exchange for returning Intel Developer Transition Kit, Apple offered 17-inch iMac, which I think retailed at $1699.

Or was it $1,299? In any case, developers were able to keep the Intel DTKs until the end of 2006, i.e. about 18 months, by which point the iMac, 15-inch MacBook Pro, and Mac Pro had all been released.

This time around, the agreement said that we could keep the DTKs for 13 months (12-month term plus 30 days), but then it also said that Apple could ask for them back whenever it wanted:

You agree to promptly return the Developer Transition Kit to the Apple address designated by Apple no later than thirty (30) days after the end of the Term, or as otherwise earlier requested by Apple (including via email or announcement by Apple on At the end of the Term, You agree to immediately cease all use of the Developer Transition Kit and the Universal App Quick Start Program. Failure to return the Developer Transition Kit may result in the suspension of Your Developer account or termination of Your Developer Agreement.

A few weeks more for Apple to e-mail us, plus 30 days, would be mid-March. Apple started taking applications for the program last June, and some developers didn’t receive their DTKs until July or August. So that’s much less than a year of actual use.

The main issues for me are:

I had been hoping to keep my DTK for the full year, until I could replace it with the actual M1 Mac that I plan to use. But it looks as though I’ll need to buy a temporary M1 Mac just to maintain the ability to test Apple Silicon apps. Others have already bought an M1 Mac and won’t be able to use the credit unless they buy another.


Update (2021-02-05): Tom Harrington:

Apple dev support confirmed to me that the DTK return credit is not transferable, so if you can’t use it, you can’t give it to someone who could.

Update (2021-02-08): Juli Clover (tweet, John Gruber):

Apple has now reversed course and upped the credit, and will now be providing developers with $500 to put toward an M1 Mac or any other Apple product. The time limit to spend the credit has also been increased, with Apple giving developers until the end of the year to use it.

Great news. I’m surprised that Apple responded, and so quickly. It also remains surprising that Apple didn’t announce this back in November when the first M1 Macs shipped, like it did when announcing the first Intel Macs. That would have worked out better for the developers who purchased M1 Macs right away. The three-month delay makes it seem like Apple hadn’t thought about what it wanted to do, then abruptly decided that it wanted the DTKs back, stat.


Note that the DTK will no longer receive publicly available software updates after macOS Big Sur 11.2. We encourage you to return it as soon as possible so that your development work is not interrupted. And once you return the DTK, you’ll receive your Apple credit.

Mr. Macintosh:

Just because you can update the DTK to 11.3 Beta, doesn’t mean you should🤣

Upgrading to 11.3 will disable both USB-A ports with firmware update 6723.100.321😳

This pretty much eliminates the incentive to hold onto the DTK as long as possible for testing purposes. I guess I’ll send mine back and cross my fingers that nothing breaks before Apple announces new Macs. In a pinch, MacStadium has monthly rentals. AWS is still limited to Intel-based Macs.

Update (2021-02-19): John Gruber:

I think it’s exactly what Apple’s second email states: someone at Apple thought $200 credit was a generous offer, the offer went out, Apple realized they made a mistake based on developer reaction, and they issued a new offer — 2.5× more costly in dollars, but clearly worth it to Apple in goodwill — within one day. My quibble isn’t that Apple made a mistake with the amount of the “appreciation credit”, but with why it took them so long to make the initial offer. Why not have it ready in December — especially given that the DTKs really are sort of crummy machines, and the M1 Macs are vastly superior in both performance and reliability? Apple should have done whatever it could to get developers to move from DTKs to production M1 Macs as soon as possible.

Make few mistakes, but recognize the mistakes you do make quickly, admit to them, and fix them. That’s the recipe.

Update (2021-03-09): Phil Dennis-Jordan:

Falsehoods the people at Apple running the Universal App Quick Start/DTK Programme believe[…]

Deleting DerivedData the Right Way

Jeff Johnson:

Finder is good about automatically unregistering apps with Launch Services when you put them in the trash and empty it (but not before emptying the trash). However, the rm command-line tool bypasses the trash, and thus also bypasses Launch Services. This means that any registered apps in the removed folder remain in the Launch Services database, effectively forever


I know that a lot of developers like to use a command-line tool to delete DerivedData. So the question is, how do you do this the right way? The answer is, of course, to do it like Finder! You can use AppleScript to control Finder, and you can call AppleScript from Terminal with the osascript command-line tool.

Presumably, -[NSWorkspace recycleURLs:completionHandler:] can also be used to do this programmatically.


Update (2021-02-08): Thomas Tempelmann:

NSWorkspace recycleURLs creates a unique thread for each file to be deleted pre-10.15. And if you delete > 8200 items at once, you get a crash in 10.12 and 10.13 due to thread exhaustion.

But I think that only refers to top-level items passed as parameters, so it should be fine for this purpose.

Ali Rantakari’s trash is a command-line tool that uses Apple events to tell Finder to move a file to the trash.

SwiftDtoa v2

tbkka (via Steve Canon):

SwiftDtoa is the C/C++ code used in the Swift runtime to produce the textual representations used by the description and debugDescription properties of the standard Swift floating-point types. This update includes a number of algorithmic improvements to SwiftDtoa to improve portability, reduce code size, and improve performance but does not change the actual output.


Parsing the decimal form will yield exactly the same binary floating-point value again.


Among all accurate forms, this form has the fewest significant digits.


Algorithms that can produce this “optimal” output have been known since at least 1990, when Steele and White published their Dragon4 algorithm. However, Dragon4 and other algorithms from that period relied on high-precision integer arithmetic, which made them slow. More recently, a surge of interest in this problem has produced dramatically better algorithms that can produce the same results using only fast fixed-precision arithmetic.

Tim Cook to Be Deposed for Epic Case

Tim Hardwick (tweet):

A judge presiding over preparatory hearings in the Apple vs. Epic Games court case has ruled that Apple CEO Tim Cook must attend a seven-hour long deposition to testify about how the company views App Store competition, reports Gizmodo.


Hixon ordered Apple to make “best efforts” to produce internal payment-processing documents, after it criticized the company as “frustrating and unsatisfactory” in its attempts to stall their release to Epic.

David Heinemeier Hansson:

Presumably Cook will have learned from the meltdown Gates famously had back in Microsoft’s antitrust case. But that’s still a long time to sit and answer questions on the logical pretzel that is your company’s monopoly stances.