On Tuesday Apple surprised developers by issuing a new beta of its iOS 13 operating system, which will run on the upcoming iPhones expected in September. Unlike every single year that Apple has been releasing iOS developer betas for its x.0 version (a process that starts in early June, when the features are announced at its developers’ conference WWDC, and runs to mid-September when the new phones are shown off), this wasn’t a new version of 13.0. Instead, it was a beta of 13.1, which you wouldn’t expect to see until 13.0 had reached “GM” (gold master — a phrase from the old days when new versions of operating systems came on CDs, which were copied from a master version made of, yes, gold).
The last beta of 13.0 was thus beta 8, on 21 August.
There followed lots of post-facto rationalisation from various folks. “Aha!” they said. “Earlier betas of 13.0 were unreliable compared to those of 12.0, so Apple just took out some of the features promised at WWDC for 13.0, and it’s adding them back for 13.1!” By their logic, Apple had decided to go for “stability” in 13.0, and would then deploy the harder-to-do features in a later release. (In the past, the x.1 release typically follows about six weeks after the x.0 GM release.)
I don’t think so. What I’ve heard — third-hand, from someone reliable, who says they heard it from someone who works at a non-iOS part of Apple — is that Apple did this to preempt tariffs on iPhones that were due to be applied in the US from September.
Holy forking tarballs
Nobody at Apple is likely to confirm this one way or another, so we have to use the usual Occam’s Razor approach to all this — gathering all the available information to try to pick what seems the most rational explanation. Because the people at Apple are rational. Believe this above all else.
First, let’s try to make the “fork the iOS betas to make progress easier” explanation hang together. To believe this, we have to believe that Apple would do something it has never done before in its beta releases, without pre-announcement, in the middle of the beta cycle for its most important OS release of the entire year. iOS is Apple’s money machine, and we’re asked to believe that only this method, forking into a vanished x.0 and a visible x.1 beta, will fix features which are coming out a bit wonky in the beta testing. I don’t buy it, for the following reasons:
- Never done before: Apple doesn’t do things it hasn’t done before unless it’s got an absolutely terrific reason why. (For example, public betas for iOS only began in 2015, but the reason is excellent: it exposes the software to a far greater range of devices than developers use.) In the past, the x.0 goes GM (usually a few days before the new iPhones themselves ship) and then the first x.1 beta follows soon after. The first beta of iOS 12.1 came out on 18 September 2018, literally the day after 12.0 was released. iOS 11.1 beta 1 came out on Sept 27 2017; iOS 11.0 came out on Sept 19 2017, eight days earlier. iOS 10b1 came out a week after 10.0. For iOS 9, the GM and 9.1b1 came out the same day. For iOS 8b1, it was Sept 29 2014, just 12 days after 8.0 went public. Enough examples. (You can choose your own at the invaluable iPhone Wiki timeline.)
- No pre-announcement: The jump to 13.0 has left third-party developers puzzled: they don’t know if they should be building their apps against 13.1, or 13.0 — and they can’t actually find 13.0 to build against. (Update: iOS 13.0 beta 8 is still there on the developer platform, build 17A5572a; the new iOS 13.1 beta is build 17A5821e.) Confusing developers isn’t what you look to do as a platform.
- Holding back: Apple has previously held back features announced at WWDC from the x.0 release to the x.1 release, or even later. This happened with Group Facetime and AirPlay 2 in iOS 12 and iOS 11 respectively. Dig around: there are tons more examples.
None of that makes sense in the context of a goliath of an operation which is focussed on producing an updated OS for hundreds of millions of phones. Changing how you test that software — and creating a branch that has vanished from view—for no evident benefit doesn’t make sense.
Tweets, tariffs and timing
Now let’s see if the tariff explanation can make sense. Bear in mind that Apple is supremely focussed on the first half of September, when it shows off its new iPhones (10 September is the day this year) and later in the month releases them around the world, especially in the US which is its richest market. Millions of new iPhones are bought in the first week of release, enough to bump up the financial results of what would otherwise be a ho-hum quarter. Apple specifically aims to release its new phones in the last week of September to make sales carry over from the fourth fiscal quarter (ends 30 Sept) to the first quarter (ends 31 Dec, usually), boosting the revenues and profits of both.
To accomplish that, it will typically air freight millions of phones over from China, where factories work overtime to produce the new designs (whose hardware design was locked down a year ago). What the factories don’t have until just before they ship is the software: iOS isn’t installed until right near the end, before the phones are boxed.
Ideally, that final step is left as late as possible before the phones are flown over from China, because that gives iOS the maximum time to mature and for the beta process to work the kinks out.
Ending the beta phase for iOS on the new iPhones on 21 August is unprecedented. Typically, there are another four releases — almost a month — before the code goes GM. (Again, check this for yourself at the iPhone Wiki timeline.)
This means the code that’s shipped on these upcoming phones is going to be pretty shonky, even without the features that weren’t quite working. That’s just the nature of software.
Why do this? Because, as said above, Apple is a behemoth trying to get a gigantic number of new iPhones into the US to go on sale in September. Lately, though, it faces a hugely disruptive element: the US president.
A midsummer day’s nightmare
Imagine it’s mid-summer 2019 and you’re in charge of planning at Apple. You’ve been watching Trump’s tweets threatening more tariffs on Chinese-made goods for months now. And on Thursday 1 August, Trump tweets that he’s going to impose 10% tariffs on all of the $300bn of goods imported from China that don’t already have punitive tariffs on them. Smartphones would be among the products affected.
Neither China nor its exporters pay the tariffs. Trump says otherwise, but is either deluded or lying. They’re paid by the US. It might be the importer, the distributor, the retail customer, or some combination of those.
But you know Apple wouldn’t want to bear this cost. It protects its gross margins jealously, and the iPhone is its biggest single business. So, like many companies in the US, it would pass the tariffs on to its customers.
You might think Apple’s customers aren’t price-sensitive (ie that iPhone sales are price-inelastic), but the reality is that at the margin, a number of would-be customers will look at an elevated price tag and say “uhhh, maybe some other time.” If the iPhone price is pushed up by tariffs, there would be a ton of stories about that, and about Samsung not being affected by them because its phones are made in South Korea rather than China. Those are the sort of stories Apple doesn’t like around newly released phones.
(Pricing: the 10% tariff wouldn’t apply to the retail price, but to the “landed” price, ie what Apple pays the supplier — Foxconn — that supplies the phones. Typically, the “landed” (or wholesale) price of any retail item is 40% of the retail price. If you want to capture the same amount of revenue from the retail sale after the 10% tariff, you raise the retail price by 4%, because the landed+10% tariff price is 44% of the old retail price. If you want to capture the same gross margin percentage as before, you raise the retail price by 10% [100/L = new price/(L*1.1); so new price = 1.1*100], same as the tariffs.)
So how do you avoid losing those marginal customers who don’t want to pay 4–10% more for a phone? You get the phones onto ships or into the US before the tariffs come into effect. Or you can gamble that the tariffs won’t come into effect, knowing that a losing bet means billions of dollars of lost sales.
That’s the decision that Apple’s management must have faced on 1 August and the few days afterwards. No time to dither: factories, shippers, and the software team all need a decision. In particular, you have to set a date when you’ll declare iOS 13 ready to go on to the new phones, because that has be loaded before they’re boxed and shipped.
I think Apple went for the early shipment route, and chose 21 August as the freeze date for the 13.0 software to be loaded on the phones. (Incidentally, a crowdfunding project that I’m waiting on sent out an update this week saying “Amazon and Apple are pulling in their production so the output of the factory [we were hiring] has undertaken serious capacity constraint.” It’s not Foxconn, I don’t think, but that seems indicative.)
Apple’s management also knows it can just about find a win-win solution here. If 13.1 proceeds as if it were 13.0, then it will be ready roughly when the “normal” 13.0 would have been, roughly a week after the new iPhones are launched, but about a week before they go on sale. That means that it can be the “GM” when it’s announced. The first phones that arrive in the US will have the shonky 13.0 software, but there will be an almost immediate update available to 13.1, which will sort them out. And for everyone else, 13.1 will do the job that 13.0 was expected to do.
And in the end, it turned out that the effort wasn’t needed. On 13 August, Trump delayed the tariffs on smartphones, at least until December, or maybe longer. But by then, it was too late to alter course; the supertanker of Apple’s phone production was underway.
How will we know if I’m right?
Three things will tell us whether the scenario I sketched out above is correct:
- Reports of iPhones making landfall in the US earlier than expected, or ships with them leaving China earlier than usual (or not going by air freight, since they’ve got a longer transit; tariffs usually apply to when the product leaves its last port, not when it makes landfall in the tariffed country).
- Journalists at the launch of the new iPhones in early September noticing they are running iOS 13.0, and the version number matches (near enough) beta 8.
- iOS 13’s public GM — after the phones are announced, but before they go on sale — is version 13.1, or a later version than the new iPhones that were shown off, and roughly matching wherever iOS 13 has got to in the beta cycle.
How will we know if I’m wrong?
- iPhone transit dates will be on exactly the same dates and methods as in previous years, compared to the release date (which we don’t know yet).
- The GM version of iOS that’s released to everyone a week or so after the 10 September launch event is 13.0, not 13.1, and it’s the same version number as ships on the phones.
- 13.1 ships quite a lot later on — say, six weeks after the 10 Sept announcement of the new phones.
That’s it, really. Let me know your thoughts, rumours, and long explanations of why actually 13.1b1 makes total sense. But remember to test it against Occam’s Razor (and give ways we can predict whether you’re right or wrong). I’m charlesarthur on Twitter.