Archive for November 7, 2019

Thursday, November 7, 2019

Apple’s New Privacy Page

John Voorhees:

With Apple’s update to its privacy page today, the company has created a site that explains how privacy drives the design of its apps in clear, concise language. However, for anyone who wants to understand the nitty-gritty details, Apple has also published white papers and linked to other materials that provide a closer look at the issues that the main page addresses.

I’m not thrilled with the Safari section and white paper:

Browsers are more convenient to use when information is synced across a user’s different devices. For example, being able to access their history across devices means users can easily find the places that they’ve been on the web, regardless of whether they’re on their phone or their computer. Safari provides a secure way to keep information in sync across devices while protecting privacy. Unlike other browsers, Safari doesn’t have a browser-level sign-in that automatically signs the user in to all the browser vendor’s online services.

Instead, macOS continually badgers you to sign into iCloud, and unless you specifically opt out using the checkbox that merely says “Safari,” it sends your entire browsing history to Apple. Nowhere in the app’s interface does it say that it does this, and you can’t opt out without also losing bookmark syncing. Whereas, Chrome does not badger you to log in, does not enable history syncing by default, and does let you sync bookmarks without syncing history.

It also fails to mention that the Safe Browsing feature sends, from your IP address, information about the sites you visit to Google or Tencent.


RunningBoard in Catalina

Howard Oakley:

Normally, assertions are used during development and debugging, then switched off when software is released. In macOS 10.15 and 10.15.1, at least, the subsystem for handling assertions, RunningBoard, is fully active in release versions, which suggests a substantial change in software practice by Apple.

This subsystem consists of a small service, /usr/libexec/runningboardd, and two Private Frameworks, RunningBoard.framework and RunningBoardServices.framework. There is also an AssertionServices.framework still, as in Mojave. Minimal access is provided from the public macOS interface, in the form of the NSAssertionHandler class and a few calls such as the NSAssert() macro. At present, RunningBoard and assertions are largely the preserve of macOS and don’t appear to be intended for direct third-party use, except in some Objective-C code.

Update (2019-11-08): I’ve received a tip that RunningBoard is not related to NSAssertionHandler. It’s intended for resource assertions, e.g. keeping the device alive during a download or temporarily using more memory.

Limits to Apple’s Butterfly Keyboard Repair Program

Michael Peterson:

Unfortunately, there appear to be limits to how many times you can get a MacBook repaired under that keyboard repair program. Notably, that is something that’s fairly unknown among the Apple community.


According to a post they made back in October, Reddit user spgremlin brought recently their 2016 MacBook Pro in for service for the third time. Under the Apple keyboard replacement, the user’s first two repairs were completely free. As they should be.

But when the Redditor brought their MacBook Pro in a third time, the Genius Bar staff there told them it wasn’t covered under the repair program.


Apple Notes and iCloud Syncing

Warner Crocker:

Recently, (and I sadly can’t pin this on recent iOS or Mac OS system updates because I just wasn’t paying close enough attention), I’ll create a note on one device and it may indeed show up on all three, or perhaps two, and sometimes it won’t sync off of the device it was created on until some random time down the road.


I had spent a morning creating a number of notes on the MacBook in preparation for a production meeting. I walked to theatre, opened up the iPad Pro and none of those notes appeared. I checked the iPhone and some of those notes appeared.


At the end of that testing period I ended up with four different note counts on three devices and the web.


Further, it appeared that some of the notes, not all, I created that morning were gone from all devices and the web.

And it happened again after the Apple Senior Advisor reset his iCloud database.


Update (2019-11-09): Ivan Pavlov:

I can only confirm that since iOS 13 Notes syncing has become much less reliable. It is a pity since it was so good before. Apple is aware of that, my bug report FB7267359 has more than 10 similar reports with no visible actions since September.

Michele Galvagno:

Wow! Thank you for this!

At least I’m not alone in this!

How are you (people affected) facing this?

I’ve not had my sync for one month now... that’s a lot!

Cameron Ehrlich:

This has been driving me nuts!

They Might Never Tell You It’s Broken

Maxime Chevalier-Boisvert:

The more important lesson, that I didn’t understand until that point, is that you can’t count on the people trying your project to quickly and reliably signal bugs to you. Most of the time, if it doesn’t work, they won’t report the problem.


It’s a horrifying thought, but it could be that for every one person who opens an issue on GitHub, 100 or more people have already tried your project, run into that same bug, and simply moved on. So, what can you do? You can encourage people to report bugs.


Twitterrific iOS Windows

Ryan Christoffel:

Twitterrific has become the first Twitter client to add multiwindow support, enabling creating separate windows for different accounts or different views within the same account. The first-party Twitter app, meanwhile, has recently added extensive support for external keyboards, likely as a side benefit of the app making its way to the Mac. In both cases, the Twitter experience on iPad has been meaningfully improved in ways that power users will appreciate.


If you have more than one Twitter account, such as one for personal use and another for business, multiwindow is a compelling way to avoid needing to switch back and forth between them constantly.

Craig Hockenberry:

This review that covers a both a third-party and first-party Twitter app shows how important the former is.

Third parties are always first with platform features like multi-window on iPad. And we’ve had keyboard support for several years.

Sean Heber:

I did quite a lot of work to retain support for iOS 12 while adding iOS 13 multi-windowing, but it’s kind of looking like we probably could have just dropped iOS 12 and saved myself a lot of effort. 😛

A particularly nasty implementation detail when adding multi-window to Twitterrific was that our previous theming system assumed a single global setting. When you send a window to the background on iOS 13, it snapshots it for the app picker a bunch of times.

While it’s taking snapshots for the app picker, it changes the appearance mode for that window between light/dark so it has snapshots ready if your system appearance changes. This caused the whole app to flicker between light/dark whenever any window was being snapshotted.

I had to pull a LOT of stuff apart and rebuild it just to get this all to work per-window so any other visible windows you might have had open didn’t flicker between light and dark.

Another wrinkle here is that we allow custom themes to be loaded from iCloud Drive - but you can’t rely on a file in iCloud Drive to be immediately available (it might have to be downloaded first, for example).


There are just countless little things like this to consider when implementing something as fundamentally disruptive as adding multi-window. People have no idea.