Tuesday, October 22, 2019 [Tweets] [Favorites]

Catalina Supplemental Update 2

Juli Clover:

Apple today released a new supplemental update for macOS Catalina, nearly one week after releasing the first supplemental update and two weeks after the launch of macOS Catalina.

Mr. Macintosh:

The patch notes for (19A602) are exactly the same as (19A603)

Howard Oakley:

It’s not yet another emergency update at all, but the result of Apple updating the security certificate on the original 10.15 Supplemental Update (or 10.15 Update as it seems to be called officially).

[…]

Not only that, but if you have already installed the first version of the update, you won’t be offered the second – there’s no point. The only value of the new version is for those Macs which haven’t had the original update applied yet.

If that’s the only difference, why is the new version a full megabyte larger?

Previously:

SwiftUI Is Still the Future

Brent Simmons:

We very much want to use SwiftUI, and we believe it’s the future of Mac and iOS development — but emphasis should be on future, because it’s not quite ready in the present.

Which should surprise nobody, given that it’s so new. But I thought it might be interesting to know exactly what issues we ran into when using it.

It’s no secret that the available controls and features are much more complete for watchOS than for iOS or macOS. But this post is an example of some limitations and bugs around areas that you would expect to work.

Overall, SwiftUI seems less suited than Swift itself to incremental adoption because, although you can make a hybrid UI that includes regular Cocoa views, it looks like you can run into a dead end where you have to back out and redo the container/controller as well.

Ordered to Type in an iPhone Passcode

Aimee Green:

Police wanted to search the contents of an iPhone they found in Catrice Pittman’s purse, but she never confirmed whether it was hers and wasn’t offering up a passcode. Her defense attorney argued forcing her to do so would violate her rights against self-incrimination under the Fifth Amendment of the U.S. Constitution and Article 1 Section 12 of the Oregon Constitution.

But a Marion County judge sided with police and prosecutors by ordering Pittman to enter her passcode. On Wednesday, the Oregon Court of Appeals agreed with that ruling -- in a first-of-its-kind opinion for an appeals court in this state.

Via John Gruber:

If you’ve got the password written down on a sticky note and the police get a warrant to search your home and find it, that’s evidence. But being compelled to produce something in your mind is the definition of self-incrimination.

Previously:

ExactScan Leaves the Mac App Store

Ashley Bischoff:

I ran into the same problem that you did with my ScanSnap no longer working on recent versions of macOS. And I ended up trying exactscan.com since it claimed to work with lots of scanners.

And not only does it work but I might even like it better than ScanSnap Manager!

ExactCODE:

With macOS 10.15 “Catalina” Apple introduced many incompatibilities and we where actually left with the impression that Apple will address some of them as well as some more bugs before releasing Catalina to the public.

After releasing the Catalina Golden Master build to developers on October the 3rd, we immediately finished fixing any new crash and issue we could find over the weekend. In our opinion, leaving developer just four (4!) days over a weekend with a public release on October the 7th is not very professional. While we still updated our applications in time, Apple did not review them for the AppStore, and instead rejected them first for a crash (sigh!), and later for requiring UI changes, including showing a Save As panel for each generated file. Now this may not sound like much, this is a serious issue for a document scan application which easily generates hundreds of files in an hour, and thousands of files a day, with file names automatically generated, either thru counters, or advanced auto-id features, such as barcodes.

It’s ridiculous for shipping a bug fix to be conditioned on making a major user interface change to an app that’s already had 100 updates approved. And, in this case, the proposed “fix” sounds like it makes the app much worse.

With seven years in the AppStore we were actually brainstorming how we could transition this to financially viable future. We would have preferred Apple to eventually support price reduced upgrades, which Apple to date did not. We could only start a completely new application, or transition to in-app purchases and subscriptions, e.g. for OCR, barcode or other features. Neither of which we are particular fans of, and it certainly does not help that Apple over the years was never really supportive, and usually only caused review drama and took 30% of our sales.

Previously:

Perfectly Cropped

Tyler Hall:

Why didn’t she know there were options further down the share sheet? Because she’s using an iPhone 8, which happens to be just the right height to perfectly crop the share sheet.

With invisible scroll bars, this sort of thing can happen with web pages and Mac apps, as well.

Monday, October 21, 2019 [Tweets] [Favorites]

How Kernel Prelinking Works on macOS Catalina (or Not)

Objective Development:

The kernel is the first component of the operating system to start. It has no other tools available. In particular there is no way to check code signatures, and all file system access is very hard at this point. Apple therefore decided to prelink the bare kernel with all kernel extensions every time the kernel or one of the extensions is updated, and to start only that prelinked kernel at boot time.

[…]

Since the prelinked kernel is on a read-only volume, it cannot be updated directly. Apple had to conceive a new mechanism for updates.

[…]

When you reboot or shut down your machine, launchd stops all processes. Then it remounts the system volume in read/write mode. This is possible because launchd has the entitlement com.apple.private.apfs.mount-root-writeable-at-shutdown. Then it runs /var/install/shove_kernels to copy the new kernel.

But apparently this doesn’t actually work. So to update a kernel extension you need to disable System Integrity Protection or manually trigger a kernel update after booting into macOS Recovery.

Safari Security Code AutoFill

kyro:

the pm at apple who came up with sms verification code auto-fill deserves a nobel prize

Dan Hill:

Yea this is hands down one of the most elegant features I’ve used. Solved a real problem, simply, with no effort on my part.

Ricky Mondello:

The idea for Security Code AutoFill came out of a small group of software engineers working on what we thought was a much more ambitious project. It wasn’t a PM, it wasn’t just one person, and it wasn’t what we set out to do initially.

It started as a small side idea we had while designing something very different. We jotted it down, tabled it for weeks, and then picked it up after the “more ambitious” project wasn’t panning out. It was hard, but I’m so glad we changed focus.

Even with a gem of an idea, it was still just an idea. Ideas are obviously super important — they’re necessary, but not sufficient. Here, the end result came from the idea, teamwork, and execution.

Years later, I’m still so proud of the team for making this feature happen. The team combined expertise from several areas to ship magic that worked on day 1, while asking nothing of app and website developers, without giving anyone your text messages. This still inspires me!

This is a really great feature, and it’s reliable. I wish there were a way to use it with third-party Mac browsers. As far as I know, they have no way to access SMS at all, except perhaps by snooping the Notification Center database.

Previously:

Font Substitution and Missing Text

Michel Fortin:

I recently found a bug in my work-in-progress-next-major-version of Counterparts Lite where text in certain languages was not showing up in the text editor.

[…]

It is important to know however that there’s a crucial difference between changing the font in willProcessEdting and in didProcessEditing:

  • willProcessEditing is called before font substitution. Any font you set while in willProcessEditing will get substituted with an appropriate font for characters not available in the font you choose.

  • didProcessEditing is called after font substitution. If you change the font while in didProcessEditing there will be no further font substitution, and thus you should make sure the font you set can display all the characters.

iTunes XML and Music in Catalina

Dani Deahl:

According to Apple, the new Music app, which replaces iTunes, removes support for automatically syncing playlists with third-party apps using XML. XML file support is a popular organizational feature for DJs who use it to sort tracks into playlists and utilize the “Share iTunes Library XML with other applications” option to seamlessly transmit data between apps.

[…]

Tons of popular DJ apps, like Rekordbox and Traktor, read XML files and relied on iTunes’ syncing feature.

[…]

A statement from Apple initially said XML would not be supported within the app. This story has also been updated to clarify that Music supports a new method for automatically syncing playlists that third-party apps can be updated to support.

Nick Heer:

I’d love to hear a good explanation of why XML music libraries are no longer supported in Catalina. This seems to be arbitrary.

Not even a preference or a way to script it.

Ewan Spence:

Since iTunes 11 Apple has offered an SDK to access the iTunes library without going through the iTunes XML file, and this sandboxed approach continues to work on Catalina. Yes there should be a cut-off point, but that should be communicated well in advance and any mitigating action is promised should be delivered.

Kirk McElhearn:

DJs don’t use iTunes to play music, but they do use its powerful organizational tools to manage and find music, which is then played by specific apps for DJing. Those apps accessed the XML file simply to find the locations of files and play them; with the ability to dump an XML file, nothing much should change, other than the need to do this manually.

[…]

The big problem here is that developers, aware of this change since the initial beta release of macOS Catalina, have not done the necessary work to update their software. Apple provides an iTunesLibrary framework, available since iTunes 11, which allows developers to directly access the .itl file used to store information about the Music app’s library. Some developers of DJ apps have already made the transition. It’s not that hard to learn how to use this instead of using the XML file.

Jamie Zawinski (tweet):

As someone who has used the various iTunes APIs extensively, I can make this authoritative statement:

Hahahahahahahahaha, no.

The XML files are the only way to make anything work.

Also note that the article appears to say that one of the features they removed was the ability to export and import playlists as XML files. The fact that there is an API that lets you interrogate the contents of the iTunes library does not change the fact that people out there have a lot of those XML files that they use on a daily basis, since that’s the interchange format between iTunes and various DJ software.

Also, ITLibrary is a read-only interface. So tell me how I use that write ObjC code to take my old XML files and then tell iTunes, “make a playlist from these tracks”?

Kirk McElhearn:

In the macOS Catalina Music app, you can no longer have this file created automatically, but you can create it manually.

[…]

To do this, choose File > Library > Export Library, name the file, and save it.

Peter N Lewis:

They changed iTunes bundle ID when they renamed it to Music. That seems unnecessary and annoying.

The bundle identifier for Contacts is still com.apple.AddressBook.

Matthias Gansrigler:

I love those optimized apps!

Peter Steinberger:

With the new iTunes-is-now-shoved-into-Finder there’s now no more progress indicator for a manual backup? Button is gray and you gotta wait. (Not that the progress was very accurate, but still).

Damien Petrilli:

The split of iTunes had one (overlooked) effect: the media keys / touch bar / AirPods play button only controls the music App and not the TV App if you are watching videos.

Damien Petrilli:

Another perk of killing iTunes I guess. Playing local videos used to be energy efficient, not anymore.

It’s even worst than Safari and Xcode cumulated.

Damien Petrilli:

After iOS, macOS Music App:

1. You barely see the difference between the active and disabled gray
2. The active gray is lighter than disabled gray.

Luna259:

I can’t right click on songs to get things like the metadata or file location, it sometimes refuses to close, the UI glitches (the pause button doesn’t change to play when paused) and the three dots menu doesn’t work for any of the songs or albums

Kirk McElhearn:

What Do You Think of the New macOS Media Apps that Replace iTunes?

Currently, 29% like them, 57% miss iTunes, and the rest don’t have a preference.

Ed Starkie:

After the Catalina update, all of my music in iTunes was gone except for 7 or 8 items from the iTunes store. Otherwise ~32 GB of music gone.

Grady Booch:

I truly loathe/abhor/execrate/abominate/curse/ahathematize and generally do not like the new @Apple Music app that comes with Catalina.

(It broke much of my album art, it is buggy with regard to sorting, and it is less customizable with regard to presentation.)

Previously:

FSF Missed the Cloud and Mobile

Stefano Maffulli (via Hacker News):

The point that everybody misses is that Stallman’s views on software don’t matter anymore. The FSF should have nurtured and grown new leaders a long time ago, leaders who looked into the future, understand cloud and mobile computing and their threats to a free society.

[…]

I had the first inkling that the Free Software Foundation and the free software movement was heading to for a crash when the GPLv3 was being drafted in 2005. At the time, I was leading the Italian chapter of Free Software Foundation Europe and it was clear to me that RMS didn’t have a grasp of where the industry was going. He was laser focused on closing the embedded device loophole, preventing what he called the TiVoization of free software. All around him, not a single voice could argue strongly enough about the Google issue that later would become the *-as-a-service loophole and cloud issue.

[…]

Right after the GPLv3 came out, Google was relieved they could continue doing business as usual, Linux kept its license and the FSF waged war against Debian and Mozilla. Stallman led the FSF out of the most important focus for the future because he wanted a pure free software operating system for his laptop? Definitely feels that way: he wanted zero binary blobs in device drivers, zero non-free Javascript. His dream of a pure operating system was there, almost close enough to touch. Meanwhile, the concept of computers evolved to include mobile phones and cloud. And those are just evil.

Much has been written lately about Richard Stallman the person, but what of his movement? I’m not sure whether it’s anyone’s fault, or what could have been done differently, but it definitely feels like the moment has passed. His concerns may be more relevant than ever, but the world has changed so that the avenues to address them seem increasingly futile. Open-source software is more widely used, but platforms and services are increasingly locked down. Free software didn’t bring the expected freedom.

Previously:

WKWebView Scroll Position

Brent Simmons:

In NetNewsWire, I use JavaScript evaluation with a WKWebView to get the current scroll position.

It broke in Catalina. I used document.body.scrollTop to get the y position, which appears to always return 0 now.

Workaround: window.pageYOffset seems to work.

Phil Dokas:

The workaround I found was document.documentElement.scrollTop. This one’s mutable where window.pageYOffset is read-only.

It’s a long road to replace the WebView APIs that worked for so long.

Matt Netkow (via Michael Love):

Recently, Apple introduced a new App Submission warning stating that they are formally deprecating UIWebView. We wanted to let the Ionic community know what this warning is all about and how the Ionic team plans to address it.

[…]

Sometime in the future, iOS apps may be blocked from release to the App Store when Apple decides to enforce blocking apps that use UIWebView.

[…]

The Cordova team is actively discussing a plan to move forward. This will take time as they plan the best way to move forward without severely impacting users.

Previously:

Friday, October 18, 2019 [Tweets] [Favorites]

Catalina Screen Time Isn’t Reporting Actual App Usage

Kirk McElhearn:

Screen Time was also added to macOS Catalina, with the same features. However, it doesn’t seem to work correctly. Rather than showing which apps are frontmost when you work, it shows how long apps are open[…]

I keep a number of apps open all the time: Mail, Messages, Fantastical, Omni Focus, Music, and a few others. So counting them as actual “screen time” makes no sense.

In the above example, all these apps were open all day – obviously, the Finder is always “open” – so the data is essentially useless.

[…]

Screen Time also records “Pickups.” While this makes sense for an iOS device – how many times you picked up your iPhone and woke it up – it really makes little sense on the Mac. A pickup on the Mac is the number of times you woke the device from sleep, or restarted it.

Mac remains a product in our lineup. But good news for all the prior art that remains un-Sherlocked.

Update (2019-10-21): John Gruber (tweet):

I can’t see the point of this feature on the Mac other than as a parental control. It seems like Apple just copied the design of iOS’s Screen Time without considering any of the many ways that the Mac is different from iOS.

John Voorhees:

If my Mac’s screen is unlocked for five hours, that means every one of those apps will log five hours of use, which isn’t very helpful if I was writing for three hours, messaging for 30 minutes, and away from my desk with my Mac awake for an hour and a half. I’d prefer if Screen Time on the Mac recorded only the time spent in the app that has the focus.

[…]

That said, there is still utility in having Screen Time built into Catalina. The app works as it does on iOS. Parents can set up limits from a Mac or iOS device, and because the feature works across OSes now, limits can be set for combined usage across all devices.

Beware Apple Security Certificates After October 24

Howard Oakley:

If you have macOS or other Apple installers, chances are that they’ll be signed, or use as an intermediate certificate authority, by a certificate which expires very shortly. If you were to try installing that package, macOS will report that it’s damaged, and can’t be used. The installers affected can be very recent: I’ve checked an Installer package for the Mojave 10.14.6 Supplemental Update 2, which shipped on 23 September, just a month from the date of expiration, and both its intermediate and user certificates expire on 24 October 2019.

[…]

This is unfortunate timing, as it’s when those migrating to Catalina are likely to be downloading Mojave installers to give them a safe way back if necessary, or to use in a VM provided by Parallels Desktop or VMWare, for instance. In a week or two you could discover that those installers can no longer run because of this expiration. The only real solution is to wait until after 24 October, then download all important Apple installers, which should have new certificates.

Previously:

PyObjC 6.0

Ronald Oussoren:

This is a major feature release, the two most important changes are the addition of support for frameworks and APIs introduced in macOS 10.15 (Catalina), and the removal of support for Python 2.7.

Catalina still ships with version 2.5.1. This can’t be because of the GPL, since it’s MIT-licensed.

Previously:

No Overview Available

Mattt Thompson:

It’s become a truism among iOS and macOS developers that Apple’s documentation is often incomplete or missing altogether.

But to what extent is this actually the case? With a bit of web scraping, I was able to come up with some numbers:

nooverviewavailable.com

It’s the new “Description forthcoming.”

You have to look beyond the colors, and even the numbers. For example, HealthKit gets 100% for documenting 7/7 symbols. But if you click through this seems to be just a bunch of error symbols. There are actually 55 header files for HealthKit, each containing many symbols. In other words, the denominator is the number of symbols that are admitted to be undocumented, rather than the actual number of symbols.

But that doesn’t mean there’s no documentation for them. Many of the symbols have good doc comments in the headers. Yet despite Apple releasing HeaderDoc 19 years ago, it doesn’t seem to have an automated way to get those comments into the published documentation.

Previously:

Update (2019-10-21): Mattt Thompson:

Source code for NoOverviewAvailable.com is now available on GitHub[…]

Catalyst in Catalina

Craig Federighi:

When we released the first set of apps using Catalyst [in Mojave], some of the concerns that were voiced placed a certain amount of focus on the technology, but that was really design decisions we made. There were pure design decisions that were different design teams pushing the bounds of what is the future of media oriented design. I think we’re finding our balance there, pulling back in some areas. And the underlying technology has improved.

Dieter Bohn:

iOS apps on the Mac [in the Catalina developer beta] are starting to feel like a pretty sweet solution.

I wanted Apple to go hard and show developers the right way to do these. This is not that.

Jason Hiner:

“Wait for the public beta. We’re still tuning everything up. That’s where it gets really good,” Federighi said.

Well, the public beta came in July, and Catalina shipped in October, but nothing seems to have changed. The state of Apple’s Catalyst apps, as well as the APIs and documentation available to developers, is just sad. We still have weird panels within windows, spinny date pickers, and buttons that don’t look like buttons. There are no APIs for making standard pop-up menus or table views. Developers who care about making their apps more Mac-like are having to reimplement AppKit controls and resort to private API. The Human Interface Guidelines have been updated to include iOS-style switches, which the News app goes on to use in the opposite of the prescribed way.

Steve Troughton-Smith:

Here we are, couple weeks from release, and it seems clear once again Apple can’t walk & chew gum at the same time. SwiftUI was announced a year too early to sabotage Catalyst on the Mac, and now neither are reliable. Catalyst completely undocumented and starved of dev resources

William Gallagher:

“Their quality varies,” says Andrew Madsen, Mac and iOS developer, “but none of them could be called a great Mac app. Apple has made some public commentary to assuage concerns around these apps, going so far as to say that they’d be majorly improved in the first public beta of Catalina.”

“Despite that public pronouncement,” he continues, “the apps have not seen major changes since the first Catalina beta, and seem on track to ship in a less-than-excellent state for another year. If Apple can’t make really great Mac apps using Catalyst, what hope do third-party developers have?”

Peter Steinberger:

Worked all day to implement “Open Recent” which you’d get for free on AppKit. Result: feature doesn’t work, two new radars filed[…]

Steve Troughton-Smith:

It’s more than a little frustrating that to access the full range of NSToolbar functionality in Catalyst you have to resort to using an AppKit plugin.

Steve Troughton-Smith:

Recreating AppKit controls in UIKit for fun and profit — vertically-resizable split views are an easy one.

[…]

It doesn’t take much to style UISegmentedControl more like a Mac app. Little tweaks like this make it far less obvious that you’re looking at UIKit on the desktop.

Konrad Kołakowski:

I don’t really understand why Apple won’t do it themselves, to style UIKit apps more like macOS apps.

Or at least share some code do allow it easily, without having to reinvent the wheel by every Catalyst dev

Peter Steinberger:

With the help of some Apple folks, I finally managed to get security scoped bookmarks working under Mac Catalyst!! You need to redefine some unavailable enum values (🙀) but hey, nothing’s perfect ;)

Colin Cornaby:

The guess that Catalyst was going to be a big driving force behind Apple Arcade? So far the games I’ve looked at all seem to be AppKit native builds from a game engine like Unity. Game engines make the build environment kind of irrelevant.

Steve Troughton-Smith:

I don’t expect a single game in Apple Arcade on macOS to use Catalyst in any form, but if you come across one do let me know!

Steve Troughton-Smith:

Catalyst can’t support any game on Apple Arcade, nor is there a path towards it doing so. It’s an incredibly bad fit for immersive game experiences right now

Steve Troughton-Smith:

I have a feeling Catalyst is gonna be the sole focus of my radars for a while… 😂

Jason Snell:

Mac Catalyst can be simultaneously

1- A source of a bunch of interesting new Mac apps
2- Limited and frustrating for developers
3- In a strange limbo state where it’s unclear how much more work Apple will put into developing it

Michael Love:

3) is the worst for my purposes because it’s hard to come up with a long term product strategy on desktops without knowing whether or not Apple is serious about this thing.

Apple:

For iPad developers, macOS Catalina makes it easier than ever to bring your apps to the Mac: The process starts by checking a single box in Xcode.

[…]

Whether you want to edit photos, learn a language, balance your budget, or play a cutting-edge game, these awesome apps offer the great Mac experience you’ve come to expect, while taking full advantage of the larger screen and powerful hardware.

Jeff Johnson:

They’re seriously advertising this.

Manton Reece:

Trying to resist judging Catalyst by the initial apps out with Catalina today. Most developers were surprised by Catalina shipping so soon, and porting apps is more difficult than “checking a single box in Xcode”. In 6 months we’ll have a better idea.

Mark Gurman:

So far, the reality has fallen short for some developers and is even leaving consumers paying twice for apps.

[…]

On day one of Apple’s new technology debut, the Mac App Store showed only about 20 compatible iPad apps, out of a possible library of more than a million iPad-optimized applications.

[…]

Many of the issues originate from Apple’s initial promise of checkbox simplicity. It is indeed that easy, but the resulting ported app still carries over vestiges of its iPad optimizations that don’t work as well on Mac computers.

James Thomson (Upgrade):

The “single check box” Catalyst version of PCalc is a single resizable window, with many tables and popovers that seem to me to be out-of-place on the Mac.

[…]

It became pretty clear to me that I would need to rewrite a lot of the user interface, to find a happy middle ground between the iPad and the Mac. Which would probably benefit both in the long run, to be fair. But with everything else that was going on this summer, I couldn’t justify that work, with no guarantees at the end of the day that I would have something I was happy to ship.

[…]

From the business side, there is also no way for somebody to get the Catalyst version of the app for free when they buy the iOS version. And no great way to share in-app purchases either if you have a free app. That generally means that somebody will have to pay a second time to get a copy. There is definitely an argument that building a Catalyst version is actual work, work that should be paid for, but I can equally see the side of consumers that have been told it’s just a simple check box. Apple said a shared store will come in two years, but that’s still a way off.

John Gruber (tweet):

I don’t buy the “ran out of time” excuse. Catalyst has had this particular problem — touch-based spinners in place of pop-up menus — since 10.14 Mojave last year. It’s madness. Has there ever been a GUI toolkit for any mouse-pointer-based platform that didn’t offer pop-up menus as a standard control? Mac, Windows, Motif, Amiga, all the various toolkits for Unix X11 systems — they all had pop-up menus.

John Gruber:

But Catalyst is a developer technology. Users have no idea what it is and shouldn’t need to. “You have to pay for iPad and Mac versions separately” doesn’t seem like a big deal to me because it’s been that way all along, regardless of Catalyst.

[…]

At WWDC in early June — four months ago — Apple showcased the catalyzed Asphalt 9 port on stage, with the following quote from Gameloft: “We had Asphalt 9: Legends for Mac running on the first day. It looks stunning and runs super fast using Metal on powerful Mac hardware.”

But it’s now been “slightly delayed.”

Steve Troughton-Smith:

Netflix won’t be making a Catalyst app ☹️ Also didn’t realize Apple had pulled their marketing for the only game they were promoting as a Catalyst app

Colin Cornaby:

I continue to be impressed at the whiplash of Catalyst is the future of Mac apps but it doesn’t work very well but it helps you write your apps without learning AppKit but you need to learn AppKit to make a good Catalyst app but the Mac UI is dead but make it more Mac like

Paul Haddad:

I got some test code running on Catalyst and the thing I found most glaring is how unatural it felt with a mouse. Trackpad was fine, but good luck if you don’t have one.

Steve Troughton-Smith:

Catalyst developers! What are you missing right now? What would you really like Apple to provide as soon as possible?

I’ll go first:

• a roadmap
• the ability to choose to use shared App Store records
• TestFlight

James Thomson:

Equivalent AppKit controls, like popup buttons and checkboxes, and the ability to switch off the scaling.

Peter Steinberger:

NSUIKitHostingView in AppKit. Then let me write my app in AppKit + load stuff as needed.

And performance + bug fixes.

Daniel Jalkut:

Hm, well obviously “native-feeling” isn’t an agreed, objective standard. But FWIW I’ve yet to see a Catalyst app that meets all my expectations of “native feeling” on the Mac.

Colin Cornaby:

Just to be clear on my position on Catalyst:

It’s something that seems reasonable for smaller, more contained applications that have heavy dependencies on UIKit.

That’s very different than building it up to be the replacement for AppKit or the environment for all Mac software.

Steve Troughton-Smith:

I think text editing in Catalyst apps is gonna be a huge point of contention for a while; there’s certainly a disconnect between the iOS editor and what it bridges to on the AppKit side that makes everything feel like it barely works in every app

Steve Troughton-Smith:

I expect the Twitter Mac team have had an incredibly stressful summer getting a Catalyst app of this complexity out the door. There are plenty of UI areas that are going to need another pass, for sure. The double-toolbar just isn’t a good fit for the Mac

Jane Manchun Wong (via John Gruber):

On Twitter for Mac, it’s easy to fix the small fonts issue

Colin Cornaby:

I think it’s also interesting how Apple is adjusting their user facing language on these applications in their marketing copy. They’re now usually calling them iPad Apps on the Mac, and not Mac apps. Which is a pretty accurate description and expectation for Twitter.

[…]

Sometimes I think Catalyst suffers from the hype of it’s own advocates. If you view Twitter as the iPad app on a Mac, it’s pretty decent. If you try and look at it as a full Mac app, then it’s kind of problematic.

Michael Love:

Obviously they’d keep some sensitive new hardware-related stuff secret, but with Catalyst/SwiftUI this year e.g. I can totally understand the argument for announcing them both at WWDC but there was no reason they had to actually ship this fall.

Ben Sandofsky:

I can spot flaws in Catalyst apps because I’m a Mac nerd. For normal people, Catalyst 1.0 apps are already better than web apps, and infinitely better than Electron.

Vidit Bhargava:

I’m sharing this design document to highlight some of the design considerations I made for bringing LookUp’s iOS App to macOS. And while I did use fall backs to AppKit in certain situations (Even though i had no prior knowledge to AppKit, the APIs were relatively easy to get to), I still feel that a lot of apps can design a good experience without having to use them.

Jason Snell:

Unfortunately, a few apps haven’t really improved much—the four apps sourced from iOS last year as a part of the Mojave update, via what we now call Mac Catalyst. They’re all still pretty rudimentary, and while it’s better to have them than not, they could be much better than they are. The Home app has added support for home automation shortcuts (but it’s so buggy as to be unusable), and setting time-based automations still requires you to spin an iOS-style date picker. That date-picker design should not ever appear on macOS, period—it’s a touchscreen interface that doesn’t work with a mouse or trackpad. I can’t believe Apple has left it untouched.

Steve Troughton-Smith:

Going searching for Catalyst documentation is fun. Doesn’t seem like any of the iPad Apps for Mac WWDC sessions have sample projects either

Steve Troughton-Smith:

Here's a fun one: Lotto Machine for macOS gets a blanket App Store rejection

[…]

To bring your iOS app to the Mac you battle your way through Catalyst without documentation, you lose months of progress with macOS SceneKit bugs, and then when you finally go to ship, Apple tells you they don’t think the app should be on the platform at all

Adam Overholtzer:

There’s a difference between “can” and “can but with a ton of work and lots of hacks”. Catalyst is buggy, undocumented, and requires AppKit hacks to get some of the most basic Mac features working. If a developer doesn’t have time for all that, it doesn’t mean they’re lazy.

Marvis App:

Sadly not, while Catalyst focuses on having common UI for Mac and iOS with some common frameworks, MediaPlayer framework that’s on iOS doesn’t work on Mac in my tests, that means the whole backend of the app wouldn’t work. So, I’m sorry to say, no plans. 😔

John Voorhees:

Less successful is Catalyst. I’ve had high hopes for Catalyst since it was previewed at WWDC in 2018. The realization over this summer that Apple wasn’t going to update its original four Catalyst apps was a big disappointment, as was the lack of documentation and sample code and the inability of developers to bundle Mac apps with iOS and iPadOS apps. Together with the workload imposed on developers by changes to iOS and iPadOS 13, many I’ve spoken to put their Catalyst plans on hold, which is understandable. That’s not encouraging because, in the short-term, it means we’re unlikely to see many of the sort of new ideas and competition that the Mac app ecosystem needs to be sustainable long-term.

Nick Heer:

Catalyst is a frustrating bridge between the entirely-discrete AppKit and UIKit worlds, and the ostensibly cross-platform SwiftUI model. It’s “frustrating” because apps built with it don’t feel like Mac apps, and it’s probably too early to start building with SwiftUI since it will likely change dramatically for developers over the next few years. It’s an awkward middle ground that isn’t as good as either. Apple’s promotion of it as “just a checkbox” in Xcode — and, weirdly, using that as part of its pitch to users — is overly optimistic.

That’s not to say that there are no good Catalyst apps. John Voorhees reviewed Lire for MacOS and was fairly impressed with its platform-specific customizations. But it’s a harder process than Apple promotes to developers, and I’m still not confident we’ll see truly great apps built with Catalyst.

John Voorhees:

So far, the most common path to releasing a Mac Catalyst app on the Mac App Store has been to adapt and release an existing iPadOS app as a first-time Mac app. However, that’s not the only route to the Mac App Store. Apple allows developers to use Mac Catalyst in a variety of ways, as Steve Troughton-Smith has demonstrated with HCC Solitaire, a Mac-only game built using Mac Catalyst. He and Brian Mueller, the creator of CARROT Weather, have also used Mac Catalyst to release new versions of Mac apps that were previously built with AppKit.

Corbin Dunn:

News.app on the mac is such a second class citizen. It is pretty easy to crash with keystrokes, and focus navigation is horrific. (Yeah, “Log a bug”)

Steve Troughton-Smith:

There is some new complex sample code (as of this week?) for creating menu commands and contextual menus in Catalyst apps, including spawning dropdown menus at will without needing to right-click, something I wasn’t aware was possible at all.

As of yet there’s no complex sample code for: using a Mac toolbar, using the Touch Bar, managing multiple titled windows & tabbing behavior, customizing your settings bundle to make a reasonable-looking Mac preferences window, or any further integration with AppKit

Maximilian M:

Catalyst has been quite the journey so far. Bringing over @instapdf for Mac to UIKit from AppKit has been difficult. I’ve started creating some OS code to bridge missing functionality[…]

Previously:

Update (2019-10-21): AppStories:

This week, Federico and John interview James Thomson, the creator of PCalc and Dice, for a developer’s perspective on Mac Catalyst[…]

Peter Steinberger:

We finally figured out how to get the system accent color on Mac Catalyst. UIButton gets it, so we use one to set it on the UIWindow subclass…

Thursday, October 17, 2019 [Tweets] [Favorites]

Core Data Derived Attributes

Scott Perry:

Documentation for Core Data’s new derived attributes feature is up!

It’s a really cool feature.

NSDerivedAttributeDescription (see also: derivationExpression):

Use derived attributes to optimize fetch performance[…]

[…]

Data recomputes derived attributes when you save a context. A managed object’s property does not reflect unsaved changes until you save the context and refresh the object.

That makes sense given that the derivation is implemented in the SQLite store using triggers. And you wouldn’t want every change to cause a fetch for properties that you might not need right away.

However, you have to be careful to manually refresh the objects that you care about because, since at least macOS 10.14, there’s a bug where NSFetchRequest’s shouldRefreshRefetchedObjects option doesn’t work (FB6161838). It fetches the right objects, but their properties may be stale. See, for example, this code:

import Foundation
import CoreData

class Entity: NSManagedObject {
    @NSManaged var attribute: String
}

let attribute = NSAttributeDescription()
attribute.name = "attribute"
attribute.attributeType = .stringAttributeType
let entityDescription = NSEntityDescription()
entityDescription.name = "Entity"
entityDescription.properties = [attribute]
entityDescription.managedObjectClassName = Entity.className()
let model = NSManagedObjectModel()
model.entities = [entityDescription]

let coordinator = NSPersistentStoreCoordinator(managedObjectModel: model)
// Also happens with SQLite store
try! coordinator.addPersistentStore(ofType: NSInMemoryStoreType, configurationName: nil, at: nil, options: [:])

let writeContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
writeContext.persistentStoreCoordinator = coordinator
let readContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
readContext.persistentStoreCoordinator = coordinator

let writeEntity = Entity(entity: entityDescription, insertInto: writeContext)
writeContext.performAndWait {
    writeEntity.attribute = "Old"
    try! writeContext.save()
}

var readEntity: Entity? = nil
readContext.performAndWait {
    let request = NSFetchRequest<Entity>(entityName: entityDescription.name!)
    readEntity = try! readContext.fetch(request).first!
    // Initially the attribute should be Old, and that's what's printed
    print(readEntity!.attribute)
}

writeContext.performAndWait {
    writeEntity.attribute = "New"
    try! writeContext.save()
}

readContext.performAndWait {
    let request = NSFetchRequest<Entity>(entityName: entityDescription.name!)
    request.shouldRefreshRefetchedObjects = true
    _ = try! readContext.fetch(request)
    // Now the attribute should be New, but it is still Old
    print(readEntity!.attribute)

    readContext.refresh(readEntity!, mergeChanges: false)
    // However, manually refreshing does update it to New
    print(readEntity!.attribute)
}

In this example, you could instead use notifications to merge changes from one context into the other. But that wouldn’t work with derived attributes since their changes aren’t reported in notifications.

Laptops Stolen From Cars

Merritt Baer:

Colleagues had a car broken into and laptops stolen in downtown Mountain View last night while we were at dinner. We wondered how they knew to break into the hatchback when it is not see- through.

They turn on bluetooth scanners and follow the beacon to find electronics.

There are probably Wi-Fi signals, too, if the Mac is in Power Nap. I guess it’s better to shut down instead of leaving it in sleep.

Mac-to-Mac Luna Display

Luna Display (via Matt Ronge):

But Mac-to-Mac is more than just taking your old Macs out of retirement — use it as a way to make yourself more mobile! Luna was made with nomadic workers in mind, and with Mac-to-Mac Mode, you can have even more freedom and flexibility to work on the go.

For example, if you have an iMac at your office, and a laptop that moves with you between work and home, pair your laptop with your iMac when in the office to make use of both devices. Or if you’re just working from home, pair your laptop to your iMac or Mac Mini and harness the power of those super computers from your comfy sofa.

Watch for Mac-to-Mac AirPlay in macOS 10.16. I’m only sort of kidding. In any case, this seems like it could be much better than using Screen Sharing.

Olivier Roux:

Boom! @siracusa’s dilemma solved: a new Mac Pro connected to an iMac through the LunaDisplay dongle. No crappy LG monitor, no horribly expensive XDR Display.

Previously:

Catalina Notarization

Rich Trouton:

This is not to say that you can hold up a “Notarized!” sign to the auditor, watch the auditor leave after just tossing the checklist aside and commence the post-audit party. But for those folks who have to undergo regular compliance auditing, I would recommend you examine your auditing requirements carefully to see which IT audit controls on your list now get handled automatically on macOS Catalina with its notarization requirements.

Gus Mueller:

“Your Mac software was successfully notarized.”

Thank god Apple finally changed the subject of the notarization email- it was driving me a little insane, one email at a time.

“You can now distribute your Mac software” was the previous subject. As if we weren’t doing OK before.

Rosyna Keller:

Now that macOS Catalina is live, I’m interested in any reports of users running into non-notarized software.

I’d really appreciate screenshots of the “not notarized” dialog and any information you have on the app or quarantined plugin that wasn’t notarized.

The most obvious example I ran into was Catalina’s own installer, which I copied from one of my Macs to the other via screen sharing.

Hayden:

Apple disabled the GUI option to allow unsigned apps in 10.15 and now users are passing around a sudo command on Twitter that disables all app security checks as the workaround to get things working again.

I think the “Anywhere” radio button in System Preferences was actually removed several releases ago.

Armin Briegel:

As with the previous Gatekeeper checks for a valid signature an administrator user can override the check by choosing ‘Open’ from the context menu instead of double-clicking to open.

[…]

When you install software using the installer command from the Terminal or a script, it will bypass quarantine and the Gatekeeper check.

This is also true when you install software using a management system such as Jamf Pro, Munki, Fleetsmith, etc.

[…]

There are some cases where notarization would be useful for MacAdmins but might not even be possible. I met a MacAdmin working at a university at MacSysAdmin last week. They need to re-package a VPN client with customized configuration files to be installed on student-owned machines.

There is really no solution without the students running into the notarization warning.

Howard Oakley:

From comments being posted on articles here, there’s still some confusion over whether macOS 10.15 Catalina will allow you to install and run old apps which aren’t notarized, or new ones which aren’t either. To clear this up, I’ve diagrammed the whole process in detail, to show you how you can work with Catalina’s new security rules.

Howard Oakley:

Using the Finder’s Open command doesn’t bypass the security assessment sub-system completely. It allows wider tolerance in the application of its rules, such as letting un-notarized apps run in Catalina, and unsigned apps run. Signature revocations and errors should still be detected and result in refusal to run, and XProtect should still check the app for known malware signatures.

Turn the whole sub-system off, and you going to be trying to force macOS to run something which is very likely to be malicious or damaged.

Removing the quarantine flag from a freshly-downloaded app or installer isn’t quite as bad, as signature checks still take place, and in Catalina (but not Mojave or earlier) the app should also be checked by XProtect.

ross tulloch (MacRumors):

I think Apple’s notarization server may have died under the Catalina induced load. I submitted a dmg 4+ hours ago. Still “in progress”.

I ran into delays as well, following Catalina’s release, and then performance returned to normal.

Jeff Johnson:

Don’t worry, they said. It won’t be a problem, they said. It just works, they said.

Frank Reiff:

Ok, so now that everybody is notarizing their apps at the same time.. it’s painfully slow. Who would have thought that Apple would build a required feature that does not scale?

Apple:

We will be conducting scheduled maintenance on Sunday, October 20, 2019 at 6:00 a.m. PT for up to 8 hours. App Store Connect on the web, the App Store Connect app, the App Store Connect API, and the Developer ID notary service will be unavailable during this time. We apologize for any inconvenience and recommend that you make critical deliveries or changes on another day.

All distribution of Mac software will be blocked for 8 hours. Apple’s servers are a chokepoint even if you aren’t using the Mac App Store. Hopefully no one needs to ship an emergency update.

Michael Love:

The big worry censorship-wise is that notarization still presents a single point of failure; in theory the PRC could mandate that Apple use different sideloading code signing certificates for them and that only apps that register w/govt and pass censors can get signed.

Previously:

Update (2019-10-18): Rosyna Keller:

The “Upload Your App to the Notarization Service” section of the Customizing the Notarization Workflow documentation has been updated to include descriptions of new features in altool 4.0 such as making a keychain entry, listing provider membership.

Mark Munz:

Also, the fact that I’m forced to agree to some new Paid Applications Schedule to NOTARIZE my app (not in app store) is absolute crap!!

Update (2019-10-22): Mark Munz:

Where do I go at Apple to get my entire lost morning back while waiting for Apple’s notary service to “bless” my app?

Wednesday, October 16, 2019 [Tweets] [Favorites]

Yahoo Groups Shutting Down

Yahoo (via Hacker News):

Yahoo has made the decision to no longer allow users to upload content to the Yahoo Groups site. Beginning October 21, you won’t be able to upload any more content to the site, and as of December 14 all previously posted content on the site will be permanently removed. You’ll have until that date to save anything you’ve uploaded.

“Uploaded” is referring to file attachments and the like. As far as I know, there’s no way to download the actual mailing list conversations, which are the bulk of most groups’ content. Lots of interesting and valuable information will be lost. Will anyone rescue it, à la DejaNews?

I love how the title of this announcement, “Understand what’s changing in Yahoo Groups,” downplays the what’s happening here. Unless you’re accustomed to these types of headlines, you might think that they’re just changing how avatars work, or something, and ignore it.

Groups.io seems like the best successor and is free for unlimited members, funded by premium features. It’s already being used by apple-dev and has instructions for transferring from Yahoo and Google. Another alternative is Gaggle, which is only free up to 20 members.

Update (2019-10-17): erincandescent:

Today it was announced that Yahoo! Groups is shutting down, and taking with it a piece of critical national infrastructure: the Oftel Yahoo Group which is used for managing UK phone number assignments.

Harry McCracken:

This is terrible news for the Internet’s collective memory, just as it was when Yahoo purged GeoCities and AOL purged Hometown.

Update (2019-10-22): Josh Centers:

I’ve received a lot of messages about Yahoo Groups today. “Yeah, they’re shutting the website down, but I can still use the email list, right?”

Take the hint. It’s time to migrate.

iOS 13’s Forced “Find My” Notifications

Casey Liss:

Interesting: in Find My in iOS 13, the subject of a notification is told you set up a notification.

In Find My Friends in the iOS 12 era, you could quietly notify yourself about a friend without them knowing.

[…]

So for example, I know my wife is returning home shortly, and I want to finish up what I’m working on before she arrives. I could notify myself when she leaves her current location.

I can see why they thought this was a good idea, but I don’t think it solves the problem very well. The person being tracked has already consented and can revoke the permission whenever they want. They can also already see in the app when they are being tracked. Some sort of notification may make sense to remind people who have forgotten that they enabled this feature years ago. But a notification for every single use is really annoying. Many people use this feature to avoid bothering the person.

You can control whether Find My notifications are shown in Notification Center, but it doesn’t really help. If I turn off notifications to avoid being bothered when my wife is tracking me, it also means I won’t get notifications when she’s on her way home.

If your worry is that someone will gain access to your phone and start tracking you without your knowledge, that person would likely turn off the notifications, leaving you none the wiser. And, of course, they could still track you simply by leaving the Find My app open, without using the geofence feature. So how is this really improving privacy?

Dr. Drang:

I noticed this last week. I’m sure it’s considered a privacy/consent issue, but you’d think consent had already been given when they allowed you to follow them.

Nick:

This will be annoying for my wife, I set notifications for when she get to a certain location for dinner prep on my end. She says this will end up pissing her off if she can’t turn these off for me.

Tony Scida:

Yeah, I used this all the time in 12 to know when my kids were on the way with my ex so I could be ready. Don’t use it anymore because it’s not important enough to send a notification!

Maik Musall:

I use this a lot with my wife to facilitate family coordination. Despite this new hint, she says she doesn’t get a notification if I set one up about her leaving a place or something. Works as it did in iOS 12. We’re both on 13.

Kyle Howells:

This basically kills the feature for me. I’ll just try to remember to check the app frequently. Nobody I know will use notifications anymore either.

Receipt Validation and AirPlay 2

Chris Liscio:

I hear rumblings about some App Store receipt validation issues relating to MAC addresses on macOS Catalina. The commonly-used Apple sample code has busted logic that—in the presence of a strange condition on a (small?) number of systems—will fail to return a value.

[…]

I don’t know yet, but it manifests on my machine as a service match for both en0 as well as IOTimeSyncEthernetModernInterfaceAdapter (see attached screenshot.) The latter causes a second go-around in the while loop, causing the MAC address to get overwritten with NULL.

It makes no sense for Apple to provide buggy sample code for getting the MAC address when every app in the store needs to do this. With some other aspects of receipt validation, one could argue that you want each app to do it slightly differently to make them harder to crack. But the point of checking the MAC address is that you want to match it with the address provided by Apple when it generated the receipt. So you want to use the exact same logic they did.

Paul Haddad:

BTW I don’t think this is a Catalina issue, have seen reports of what sounds like this for several OS versions. Also seems to work if tested right after reboot, but breaks if tested later.

Chris Liscio:

The plot thickens!

After a reboot, my system no longer exhibits this “strange condition”.

Immediately after playing audio over AirPlay 2? BOOM—“strange condition”! 🤯

The “strange condition” appears to be the presence of IOTimeSyncEthernetModernInterfaceAdapter in ioreg.

Previously:

Update (2019-10-22): Chris Liscio (tweet, James Thomson):

While playing audio using AirPlay 2, there are two devices that have a BSD Name equal to en0. Both the actual en0 interface, and a new device called IOTimeSyncEthernetModernInterfaceAdapter (or IOTimeSyncWiFiInterfaceAdapter, depending on your Mac) that is only present while AirPlay is active.

[…]

When copy_mac_address returns NULL, your receipt validation code fails, and probably results in your application calling exit(173) to ask the App Store for a new receipt. Unfortunately, a new receipt isn’t going to help, and you get stuck in a very strange loop.

For me, this resulted in the app repeatedly appearing & disappearing in the Dock for quite some time. Eventually, the system finally gave up and told me the app was “Damaged” and needed to be re-downloaded.

[…]

The keys to this alternate approach are as follows:

  1. It specifies the kIOEthernetInterfaceClass, which only matches network interfaces. (Before you ask—yes, this includes Wi-Fi adapters.)
  2. It also specifies that kIOPrimaryInterface is set to true, which matches the built-in, primary network interface.

Catalina Vista

Annoyances

Tyler Hall (tweet, Hacker News):

I completely realize and wholeheartedly own-up to the fact that I’m a geek and a Mac power user above and beyond what normal muggles will ever experience, nonetheless, this is the first-run experience I was greeted to this afternoon after upgrading to Catalina.

[…]

I only spent about ten minutes on that system today. But it was enough time to capture all of these papercuts and combine them into one truly-awful über screenshot.

I want to make clear that I’m not blaming the talented Apple engineers who obviously worked their butts off on Catalina just like they do every release.

My side-eye is squarely directed at the managers and Marketers who push for such an insane release cycle.

Sean Heber:

Just installed Catalina and logged in for the first time and have been hit with 6 permission prompts for various things so far.

Ben Sandofsky:

Your first time running Catalina:[…]

Razengan:

Apple seems to be forgetting their own credo against nag-based security

013a:

I’m astounded with some of the user security dialogs that Macs display. I got one today: “VSCode wants to make some changes. Deny or Allow.” That was the exact wording.

Matt Birchler:

Can Apple reimburse my company for all the time I’ve spent authorizing apps to perform basic functionality on my Mac today?

Joking of course, but man, this feels like Vista to me. Do a thing I do every day…“do you want to do this?”

I support the move to make the Mac more secure, but this is a rough first run experience.

Dave Wood:

Thanks for wasting more of my time #macOS #Catalina. Seems cron jobs don’t run anymore if they touch certain files/folders, including your ~/Documents folder (even if your script is stored there).

The system should be prompting for access to that now-protected folder but isn’t.

Dave Wood:

Solved the cron permission issue properly: drag /usr/sbin/cron into Full Disk Access in System Prefs.

Steve Troughton-Smith:

Everybody’s complaining about Catalina getting in the way of the command line and I’m like you know you can turn off SIP, right? Everything goes back to the way it used to be; I’ve never seen aaany of this. If you want the legacy security model, you can have it

Dave Wood:

The problem w/doing that is that I won’t see problems that my customers will run into. I need to swim in the same cesspool first so I can find out how to get them through it.

I bet a bunch of Apple engineers have done this exact thing & thats why we’re in the boat we’re in now.

Phillip Boushy:

There are so many other security controls that SIP implements that disabling it is overkill. Apple should have given a better UX for this. Make them entitlements if needed, pop up a single window during first load. Also an “allow all apps access to X” would be nice...

Benjamin Mayo:

Most of the privacy dialogs in Catalina are sane; patching holes in the permissions system that should have been there for years already. Nevertheless, Apple could have come up with a better policy where you don’t get bombarded with dialogs from every app all at once.

Jeff Johnson:

A good practical joke to play on someone running Catalina:

$ tccutil reset All

Mr. Macintosh:

This article will show you how to Manage Catalina’s New Application Notification Preferences with a Config Profile.

Craig Hockenberry:

If you think the Catalina permissions problem is bad from a customer’s point-of-view, it’s absolutely brutal for developers.

The security prompts are so half-baked that developers have to guess about permissions. And since we don’t know the internals, that guess can be wrong.

Rui Aureliano:

Dear macOS developers, recently for Catalina we see this window for Screen Recording permission. Has anyone found a way to check if it’s already granted?

Matthias Gansrigler:

this is how I do it in @ScreenFloatApp.

Broken

Tyler Hall (Hacker News):

But Catalina has been different in two particularly gruesome ways that get even worse when combined.

[…]

I’ll go through some of the highlights (lowlights?) I’ve run into below, but I guess this is my thesis: The final (well, first) Catalina release along with the outright awful public beta makes me think one thing. And that is Apple’s insistence on their annual, big-splash release cycle is fundamentally breaking engineering. I know I’m not privy to their internal decision making and that software features that depend on hardware releases and vice-versa are planned and timed years (if not half-decades) in advance, but I can think of no other explanation than that Marketing alone is purely in charge of when things ship. Why else would stuff so completely broken and lacking the attention to detail that Apple is known for and (ahem) markets themselves on have shipped if not than to meet an arbitrary deadline? Apple has so many balls in the air – and this metaphor doesn’t really make any sense now that I’m typing it – but they’re all interconnected now that Apple is a services company. And as a services company they must find a way to ship features, fixes, and updates outside of the run-up to the holiday season.

[…]

After upgrading to Catalina, macOS made me reauthorize every app that wanted to send me notifications. Ironically, the following alert appears every time I reboot despite always dismissing it using the most definitive option Apple provides and never giving whatever-process-is-showing-it permission to notify me of anything in the first place[…]

Thomas Claburn:

Since at least 2015, developers and other technically-savvy folk have fretted that Apple’s software quality isn’t what it could be. The gripes reached Apple executives and by 2018, there were reports that company technical leaders were focused on improving quality.

To judge by the reception of macOS Catalina, aka macOS 10.15, it appears Apple’s quality push was more aspirational than actual.

snapples:

Things are so broken here at Apple. I joined about 4 years ago.

I am awed by the fact that we manage to release any software at all, let alone functional software.

The biggest problem is communication. No one fucking communicates.

- No communication between orgs. Tons of bureaucratic tape to cut through just to get a hand on someone working on a different product

- Barely any communication between teams. Literally every group of 4 people is in a little silo with no incentive to go outside it

- Broken management structure. I have had many managers (a red flag in itself) but even worse none of the managers take suggestions from engineers. Everything is purely top down. If an engineer realizes there is a problem on a macro scale they cannot fix it. It is literally impossible to unite more than 1.5 teams to get anything done.

[…]

- Culture of secrecy means nothing gets fucking done. You file a bug report and you can’t even see it any more for some orgs

jarjoura:

When I worked there under SJ, the Mac OS org (then under Betrand Serlet), it was sort of open amongst the org itself. It was really easy to walk to someone’s office and strike up an interesting conversation. Many late nights were spent working through collaborative problems. Or randomly, I had a friend who would pop by my office and spend hours explaining how he figured out some complex Javascript compiler bug of the day.

It always felt like we were in a mission to ship Mac OS together. What Apple did do back then was create these special versions of the OS that had a few key hidden/secret products that SJ was going to demo, like iTunes or iPhoto. So while I could install the latest internal developer build of the OS, it would have a feature or two missing. You would then get radars that mentioned the code-name and explained a bug that you had to fix for the feature, but you had to fix the bug blinded and send the bug back to verify. (Radars could never be closed until the original creator verified them) The secrecy didn’t really get in the way and it made for an interesting culture.

Then it all started to change when Forstall was promoted to VP of the iPhone effort. He took what was probably meant to be a short term secret launch team culture and expanded it to create this massive secret island in the company. The program office and by extension, the original founding engineers were all promoted to management that expanded on the secret culture. I think if management meant to open the culture back up to the same level as Mac OS in 2009, they would have been burned by Samsung and Palm WebOS making exact copies of the software coming out at the time. So the hyper locked down culture persisted and SJ passed away. Then Forstall was fired and Federighi was promoted to replace him and merge both the Mac OS and iOS orgs finally killing off any of the remaining openness that once existed.

Then came all the ridiculous tools such as checking someone’s security clearance when you had a meeting with them.

snapples:

I should note that most developers here really do care, and that’s probably why products can be released in the first place. You have to have really dedicated people willing to cut through the organizational bullshit to get things done.

All of the engineers I’ve met here are smart and innovative. Only if we could organize, things would be much better.

Aftermath

Tyler Hall (Hacker News):

I fully stand behind every criticism I leveled at Apple. From the specific bugs, to the broader statements about detecting a lack of focus on the Mac in recent years, to my final thesis about their lock-step, annual release cycle hurting the company’s ability to maintain software quality.

But the part that wasn’t fair. The parts that I regret are my direct insults at those in charge.

[…]

Around 11am the next day, I received a Twitter DM from an Apple engineering manager who (I thought) had somehow stumbled across my post. And they very kindly asked if I could jump on a call to go into more details about my post and the bugs I identified. They were super awesome and I’m looking forward to working with them more this week.

They say that running to the press “never helps,” but the Mail bug that’s causing users to lose hundreds of thousands of e-mails was reported months ago via a bug report that was apparently ignored. Hall’s concerns are at least being heard.

Luc Vandal:

Really Apple, why bother with this yearly update cycle non-sense if it just adds more bugs that are annoying your users and prevents them to actually do some work? We need stable OSes, not full of bugs shipped because of some marketing-force deadline.

[…]

And I’m not blaming Apple engineers, which are doing their best. I think the issue is within high management.

Michael Rockwell:

Apple should just take the next year or two and Snow Leopard every piece of software they make. Fixing bugs and improving overall quality needs to be their number one priority.

thelittleone:

The position of Apple today reminds me a lot of Microsoft after they peaked (~2000?). Cocky to the point of arrogance because of market position, past innovations and brand loyalty (e.g., it is cool to own Apple). But loyalty and market sentiment can only endure so much amidst plummeting product quality, nonsensical pricing (e.g. dongles) and lack of any meaningful innovation (thinner doesn’t count). Apple doesn’t listen because they think they know better (and that used to be true).

These seem to be common sentiments, though I don’t understand the persistent claim that Apple hasn’t innovated lately.

Justin Blanton:

I genuinely can’t remember the last time I was even remotely excited about macOS/OS X. All I really care about these days is that the newest version doesn’t break shit. 🤷🏻‍♂️

Jeff Johnson:

Let’s not forget that Apple used to charge $129 for Mac OS X updates.

If they charged $129 for Catalina, it would be DOA.

John Gruber:

That’s an interesting measuring stick. A MacOS update (or iOS for that matter) should feel like something many users would pay for. If it doesn’t that’s a problem.

Joe Rossignol:

Apple shares are currently trading above the $234 mark on the intraday market, setting a new all-time high for the company.

Previously:

Update (2019-10-17): scott:

The selling point of Catalina is it will be the only version of macOS that runs on Macbooks with scissor switch keyboards.

Update (2019-10-21): David Shayer:

In a well-run project, features that are lagging behind are cut early, so engineers can devote their time to polishing the features that will actually ship. But sometimes managers play “schedule chicken” since no one wants to admit in the departmental meeting that their part of the project is behind. […] Apple could address this scheduling problem by not packing so many features into each release, but that’s just not the company culture.

[…]

When I worked on Apple products, we’d get a list of the top bugs driving Apple Store visits and support calls, and we were expected to fix them. […] Unfortunately, bugs that are rare or not terribly serious—those that cause mere confusion instead of data loss—are continually pushed to the back burner by the triage system.

[…]

But if you file a bug report, and the QA engineer determines that bug also exists in previous releases of the software, it’s marked “not a regression.” By definition, it’s not a new bug, it’s an old bug. Chances are, no one will ever be assigned to fix it.

[…]

No need to go into the details here, except to say that, apart from a few specific areas, Apple doesn’t do a lot of automated testing. Apple is highly reliant on manual testing, probably too much so.

Riccardo Mori:

What I want from a new version of an operating system, especially one as mature as Mac OS, is that it fixes or improves what was not working well in previous versions, and that it leaves tried-and-true features and functionalities as untouched as technically possible. I don’t need and I don’t want disruption for disruption’s sake on a yearly basis.

Update (2019-10-22): See also: Hacker News:

Colin Cornaby:

I feel like Apple needs to take an OS release cycle just to fix their internal process.

I know it’s a political problem and not a technical one that can’t just be solved by throwing a unit of time at it. But still. Makes it harder to fix actual bugs.

The repeated whispers of a lack of automated testing is concerning just because it’s so hard to ensure quality at the scale Apple is trying to ship at. Either you hire a lot of QA engineers (which Apple doesn’t seem to be doing) or you automate the heck out of things.

The challenge is that it’s a political problem and they need to throw a unit of time at it, which is also a political problem.

Tuesday, October 15, 2019 [Tweets] [Favorites]

Catalina System Issues

Patrick McCarron:

The (null) version of Mac OS Catalina is finally out!

Dave Mark:

And my Catalina install grinds to a screeching halt.

Logged in, got the “Find My” screen (see pic), tapped Continue, and I’ve been frozen for about 15 minutes.

Regret doing this? Why yes, yes I do. 😐

Peter Cohen:

Stuck in an endless iCloud authentication loop after upgrading to Catalina? This fixed it for me.

Christina:

Aaaand another edge case hit: If you are stuck in an iCloud Terms and Conditions loop after upgrading to #Catalina, go to System Preferences > Internet Accounts, click the “inactive” Apple ID used for iTunes/App Store, wait for Terms and Conditions sheet to appear and agree.

Matthias Gansrigler:

Wow, Catalina seriously f**** up Bluetooth connections. To Apple devices. Like the Magic Trackpad. Only reacts after a 1-2 second delay.

Never experienced that in the beta.

David Sparks:

Blasted through my flagged email this morning on my Mac. Interesting issue though. Apple Mail now has a different flag count on every device I own: Mac - 0; iPad - 90; iPhone - 29. All running latest (non beta) releases.

Ugh.

Chris W:

Love how Apple’s new Music app is so lightweight and free of bloat compared to iTunes

Gus Mueller:

In 10.15 AppleFileServer is sandboxed, and it’s unable to read any volumes that I have shared out to Kirstin since upgrading. I guess I can fix this, but how is anyone that’s not a developer supposed to handle this?

Tyler Hall:

My wife’s local account password (not iCloud) on her iMac is an all-lowercase, seven character, simple English word.

Upgraded to Catalina. No problem.

iMac went to sleep. Woke up. Will no longer accept her password. 🤷‍♂️

Corbin Dunn:

I upgraded my laptop to macOS Catalina. No problems, so I did my older iMac yesterday. That was a mistake...I’m now trying to figure out why my login won’t work and where my data went (ah...readonly volumes....)

I used to always relocate my home directory to another partition when I did development on macOS so I could install multiple versions and use the same home dir. Apparently this really confused the migration to Catalina, and really messed up stuff.

Mike Epstein:

Worse still, when you update a phone, tablet, or computer to the new version of Reminders, all of the updates you’ve created using that device will be deleted across all platforms, new and old.

Even if you’ve upgraded, though, there’s still a chance that you could lose your info. The new Reminders app asks you to confirm the update the first time you turn it on. If you’ve made Reminders on your iOS 13 or iPad OS device using a secondary app or process before opening the app, those reminders will get deleted when you open the app and press “upgrade now.”

Windows users are also getting hit especially hard by the change. The new iCloud web app supports the new version of Reminders, but Apple says the iCloud for Windows app “can’t see iCloud Reminders” after the update.

Armin Briegel:

System Image Utility is gone from macOS Catalina.

It is not possible to build a NetBoot or NetInstall nbi based on Catalina.

Steve Troughton-Smith:

Judging by the Catalina GM seed, macOS Catalina is gonna ship with nonfunctional SceneKit in Catalyst on older Nvidia GPU-powered Macs (like my 2012 iMac). If you have SceneKit in your app, it will just render as an empty scene on these configurations. No workaround for users

Simon Gredal:

I’m able to buy a $0.99 Catalina-incompatible 32-bit app from Mac App Store. It even lies to me and say that it will work on my Mac.

Dave DeLong:

Turns out that sharing Maps collections only shares a snapshot. Recipients can’t modify your collection. This leaves joint trip-planning as impotent as it was before. (FB7372447)

And of course, collections don’t exist on Mac. 🤦‍♂️ (FB7372437)

Michael Flux:

Gotta say, Catalina is without a doubt the most shitshow macOS update in years.

On a completely fresh install to eliminate any potential upgrade bugs, somehow everything from photos to iCloud Drive to system apps have large enough bugs to prevent basic usability.

Issues I’ve run into:

Previously:

Update (2019-10-16): See also: Mr. Macintosh’s macOS Catalina System Status.

Update (2019-10-17): LeeW (via Jeff Johnson):

Many [Mac mini users] are having issues getting a basic HDMI connection to work at all or only through weird and wonderful workarounds. Apple has confirmed to me they are aware of the issue and they advised it was an issue they could replicate when using HDMI -> HDMI.

Update (2019-10-18): Matt Henderson:

I wish I hadn’t upgraded to Mac OS X Catalina:

- iCloud Drive has been stuck permanently uploading two small files. (No idea what they are.)

- Safari bookmarks no longer syncing across my devices.

- Messages permanently reporting “Downloading Messages from iCloud”.

Update (2019-10-21): Howard Oakley:

There are several reports of problems getting Catalina to accept and load kernel extensions (KEXTs). This article looks briefly at how they can arise, and whether you can do anything about them.

See also: MacInTouch.

Martin Steiger:

For some OCR’d scanned PDFs, you cannot select the last page in the rewritten Preview.app, the selection jumps to the second last page

Christopher Moss (via Leo M):

Louis Rossman - better known for his hardware repair videos - has made a brief video describing an issue with Catalina bricking machines, and refers to a fix that Apple is assiduously removing from their support forums. [links added]

The issue and purported solution are not very precisely described and don’t make sense to me as written. The referenced file is not 32-bit, and I do not recommend deleting it.

Howard Oakley:

Every major upgrade to macOS brings howls of complaint. It’s the worst upgrade yet, many Macs are bricked by it, it’s full of bugs, and so on. But are those claims really true? What’s the evidence?

Last week I was surprised to see two main threads of complaint: one that Apple was advising internally that the latest Mac mini shouldn’t be upgraded to 10.15 at all because of serious issues, the other that 10.15 made an unholy mess of iCloud Drive for many users.

[…]

The document in question was a PDF, and its every aspect made obvious that it was fake.

[…]

Drilling down on the iCloud Drive problems, I noticed that quite a few of those reporting them mentioned using Catalina betas, and it occurred to me that, although some had clearly never let a beta near their Mac, a significant proportion of those now complaining of iCloud problems in 10.15 release hadn’t cleared up the mess which earlier betas had produced.

Update (2019-10-22): CogSci Apps:

When iCloud sync is enabled under Catalina (10.15), Notes’ AppleScript is almost completely useless. Even just accessing a note object can cause a -10000 error.

[…]

Catalina (10.15) Notes AppleScript is broken, lots of -1700 errors when interacting with note objects

Catalina Reviews

Catalina App Issues

Adobe:

Lightroom Classic 8.4.1 work with macOS 10.15 (Catalina) but have these known compatibility issues. You may want to remain on your current version of macOS until these issues have been resolved.

Adobe:

Photoshop 20.0.6 and later versions work with macOS 10.15 (Catalina) but have these known compatibility issues. You may want to remain on your current version of macOS until these issues have been resolved.

Dave Nanian:

As you might expect, the “new way” Catalina splits your drive into two parts makes things more complicated. The details are hidden from you by Apple for the most part, but SuperDuper has to know, and handle, all the various tricky cases that arise from that split (not to mention the technical details of tying the volumes together, which we figured out early in the summer). […] That beta works great for most users, but will have some limitations around images[…]

Keith Gugliotto:

One other thing – the Add iTunes button and menu item won’t work, and dragging directly from Music will also fail. Work around that by dragging the tracks you need directly from the Finder.

Noodlesoft:

As of this time, Hazel is not compatible with Catalina. Catalina introduces a number of changes and bugs which affect Hazel, many of which are still unresolved. It is strongly advised that you do not upgrade to Catalina if Hazel is an important part of your workflow.

Paul Kim:

Apple: We would like to contact you concerning a crash. Could you please file an FBA?
Me: You’re contacting me now, but sure. files FBA #1
Apple: marks FBA #1 as unactionable
Me: files FBA #2
Apple: crickets
Me: files DTS to look at FBA #2
Apple: crickets*

Motif:

There are two issues you will encounter if you upgrade to Catalina currently:

The first: Upon opening an existing project, all images on all pages are missing

[…]

The second: Images in the image tray appear pixelated

CoreCode:

Specifically, a bug in ‘Paddle’ may cause MacUpdater to ‘forget’ its license-information if you upgrade to ‘Catalina’. Therefore, please make sure that you know your license-code if you plan to upgrade to ‘Catalina’ soon.

tunabelly:

Since all of us developers have been given 3 days notice from Paddle to either update to the newest V4 framework or migrate from V3->V4 for every app, before macOS Catalina is released, they need to step to the plate.

It’s not realistic that we can all do this within 3 days, so I’m proposing that Paddle email everyone who’s purchased a Mac app telling them that they regret the situation and wish that the developers could have had more time. Explain that updates are coming from all developers and that each app will need the license key re-entered after upgrading to Catalina.

OskarGroth:

Seriously, does Paddle have anyone running the ship over there these days? How is it that Catalina has time to go public before you realise that your SDK is completely broken? […] I couldn’t believe it when I got the email saying “We have increased the number of activations for all end users who didn’t previously have any remaining. This way they can activate normally after installing Catalina without contacting your support team.”. Do you seriously not realise what an extreme hack of a temporary solution this is? Not to mention corroding the trust between Paddle and Merchants as you tamper with their activation limits to solve your own front-end bugs?

Matthias Gansrigler:

Since I’m having trouble with the macOS Catalina-compatible ScreenFloat v1.5.17 update getting through review, I thought it’d be best to publish a quick note about how to make sure ScreenFloat works for you on macOS Catalina. Otherwise, you’ll probably end up with screenshots of your Desktop, instead of the actual windows you’re trying to take a screenshot of.

Objective Development:

When you install Little Snitch on macOS Catalina, you may get an error message “Little Snitch version mismatch detected” after restarting your Mac. This is due to a new bug in the operating system.

Catalina sometimes refuses to perform the necessary boot cache update for the newly installed kernel extension. As a consequence, macOS still uses the previous version of the kernel extension from the outdated cache, which then results in a version conflict with all other updated components of Little Snitch.

Houdah Software:

macOS 10.15 Catalina bans third-party applications from searching the Mail.app Spotlight index. On macOS Catalina, HoudahSpot will thus no longer be able to find your Apple Mail messages.

Pilotmoon Software:

If you use the Alfred, Fantastical or TaskPaper extensions for PopClip, you’ll need to download updated versions of those extensions (by clicking the links in this sentence).

Dolphin Emulator:

macOS users: If you want to continue using Dolphin in macOS, please do not update to macOS 10.15! Every macOS release tends to break Dolphin in some way, but this year is especially problematic. We’ll have details on this in the future.

See also: known issues for my apps.

Previously:

Apps Lost With Catalina

Jim Dalrymple:

For those that have been following along, 64-bit is not that new. Apple has been talking to developers about the 64-bit transition for several years. Chances are your apps have already been updated to take advantage of the architecture.

However, if your apps haven’t been updated, they won’t run on the new operating system. You should be aware of that before you upgrade.

Peter Cohen:

Important macOS Catalina upgrade tip: Remember that checking your Mac hard drive for 32-bit apps only reveals the apps that won’t work which you have installed. It won’t show you anything about the state of apps you have in the cloud, via app stores like the MAS, Steam, etc.

A. Lee Bennett Jr.:

Not that I’m updating from macOS 10.12 to 10.15 super soon, but I’m looking at the non-64-bit apps and worrying[…]

TLA Systems (previously):

DragThing is written using the 32-bit Carbon APIs that Apple have now removed in macOS 10.15 Catalina. It will no longer run if you update to Catalina, and there are no plans to make a new version that will.

We are sorry to say, DragThing has launched its last app.

John Gruber:

I haven’t used DragThing in many many years, but for a long time it was essential to my workflow, and I firmly believe it was a much better launcher than Apple’s own system Dock ever has been. DragThing had features — like the ability to create custom palettes that only appeared in a certain app — that I don’t know how one would replicate today.

Fetch Softworks (previously):

Apple had made it clear that 32-bit apps like Fetch 5.7 weren’t long for this world, so it looked like the time had come to lay Fetch to rest for good. But I wasn’t quite ready to say goodbye, and it occurred to me that there was a third option, something between finishing Fetch 6 and letting Fetch die: I could port Fetch 5.7’s Carbon user interface to Cocoa and make a 64-bit Fetch 5.8. […] Fetch 5.8 is now in beta testing; you can sign up to test it here. It currently implements about 90% of Fetch 5.7.7’s features with about 50% of Fetch 5.7.7’s reliability.

AccountEdge:

While AccountEdge is currently a 32 bit application, we have been hard at work on a 64-bit version.

[…]

We do not have an update and we still strongly encourage you to delay your upgrade to macOS Catalina until we have released a compatible version of AccountEdge.

Nilay Patel:

Every late-2000s tech blogger take a moment of silence: the legendary Turbo.264 HD video encoding dongle will never get a 64-bit app and so is now officially dead

Fujitsu (previously):

The 64 bit application for macOS is not provided for the old scanner models such as ScanSnap S1500, S1500M, and etc. because their support periods have already expired. If you wish to have the 64 bit application for macOS, please consider purchasing ScanSnap products that are currently available on the market.

Brent Simmons:

It’s not my intention, and it’s not what I want to happen — but NetNewsWire 3.3.2 apparently does not launch in the next version of macOS (10.15, Catalina).

[…]

NetNewsWire 3.3.2 was the last release of the full version that I worked on, before selling NetNewsWire to Black Pixel, and I’ve heard from lots of people that they’ve been using it ever since. They never switched.

That version is still unequaled, in certain respects.

Stickshift Software:

Mailsmith is no longer under active development. It will not be upgraded for 64-bit macOS compatibility.

PowerMail also looks like it will not get a 64-bit version.

rolleiflex (John Siracusa):

I know there is a contingent of people who are stuck at Adobe CS6, whose certain critical components are 32 bit. Since Adobe no longer sells permanent licenses, opting to only rent their software instead, it’s impossible to get these updated. And these expensive and still-in-use licenses are going to die the moment people update to Catalina.

Toon Boom (via Ben Juwono):

If you have Harmony 16 or Storyboard Pro 6 (or prior versions), they will not open in Catalina. Harmony 17 and future versions of Toon Boom’s software will be compatible with macOS Catalina.

Casey McDermott (Hacker News):

Sadly, we just decided to abandon the Cocoa update for our app. It’s not easy to walk away from 3 years of work, but better 3 years lost than 5. Time will be better spent on our Windows version.

TurtleSoft started Mac-only with Excel templates in 1987. The first prototype of our current stand-alone accounting app was in the early 90s. Since then, programming for Mac has gone through four primary programming languages (Pascal, C++, Objective C, Swift). Three, soon to be four chip architectures (680x0, PPC, Intel, ARM). Four frameworks (MacApp or Think Class Library, PowerPlant, Carbon, Cocoa).

Casey McDermott:

The plan was to subcontract the Cocoa conversion in parallel. We assumed there would be tons of experienced Carbon->Cocoa programmers so late in the game who could whip it out in a year or less. The bigger offshore subs would only touch it on an hourly basis, estimated $100K to $200K. One QT guy quoted $30K for both platforms, which was pretty much our maximum budget. He took the first draw payment then failed. 3 others tried pure Cocoa for a similar price, but got nowhere.

In 2015 we finished the 64-bit prep, and started work on Cocoa in-house. Based on past updates, 4 years seemed like plenty of time. Now, after 2 or 3 programmer-years, a realistic guess is another 2 or 3 needed to finish. Our app has a lot of interface code. Running a construction business is complicated. We do a lot more than QuickBooks.

Casey McDermott:

Yesterday I checked up on a few other companies we know who have Mac software in the AEC market. Most died off years ago. Two are now Windows-only. Three will have 64-bit apps “soon”. So far, nobody is ready for Catalina yet.

TextWrangler:

PSA: with macOS Catalina coming soon, you’re going to need a 64-bit TextWrangler. @bbedit is it. (Seriously: you’ll feel right at home.)

Tyshawn Cormier:

What I missed is with 32-bit support gone, iPhoto and Aperture no longer launch. That’s a little strange. System Information definitely reported both of those apps as 64-bit.

Howard Oakley:

If you need to retain access to key 32-bit apps, or anything else which won’t run in Catalina, a VM running Mojave or earlier is a highly practical solution, and very straightforward to set up using the latest Parallels Desktop 15.

My brother has had trouble even getting Aperture to work in a macOS 10.14 virtual machine. See also: Capture One.

jessamyn:

Super disappointed in @OverDriveLibs decision to not create a 64 bit app so Mac users could listen to audiobooks with their existing app. Instead, their whole system silently fails and we have to dig around in help files to figure out wtf is up.

Joe Fabisevich:

Apple deprecating 32-bit support is completely reasonable but I can’t believe I’m going to have to run a VM to download library books now. Gotta have my library books.

Kyzrati (via Steve Troughton-Smith, Hacker News):

Clearly I was already on the fence about the whole Mac thing before, otherwise it might’ve happened earlier (I did spend a while researching and testing the potential for a solution on Macs, in preparation for a potential future public release), but Apple has time and again taken actions which are clearly hostile to developers as they continue the trend of building and reinforcing their own walled garden.

Among their latest moves, Apple’s newest OS drops support for 32-bit applications, which will unnecessarily render a huge library of software and games unusable on Macs, compared to Microsoft which does a great job of maintaining Windows backwards compatibility in that area even as most modern software tends to be 64-bit. This makes it far easier to hold together Cogmind’s existing tech so I can focus on things players actually care about, like more features.

Aspyr (Hacker News):

Any 32-bit Aspyr games not listed above will be incompatible with MacOS 10.15.

jasper:

in a few days with the launch of the new 64 bit-only mac os, millions of games will no longer work, including my own. how are are other developers approaching this? will you remove your 32 bit games from Steam etc?

The Tape Drive (via Hacker News):

A bundle called IncompatibleAppsList.bundle found in /Library/Apple/Library/Bundles/ in macOS Catalina contains [a list] of 235 apps that are incompatible with Catalina. This list is used by the Catalina installation process to show the user a list of currently installed apps that are incompatible. Many of the apps listed are included only because older versions of the apps are incompatible as noted by the strings included with the bundle.

Previously:

Update (2019-10-17): Rob Griffiths:

With the release of Catalina, though, we’ve decided to remove Witch 3 from the Mac App Store, effective today. Why? Because Witch 3 is 32-bit code, and it will not run in macOS Catalina. Unfortunately, the App Store will lie about this if you look at the Witch 3 listing in the Mac App Store[…] In addition, it’s been three years since we released Witch 4, which is a very generous “sunset period” for the prior release. Hence, it’s time for Witch 3 to retire from the Mac App Store.

Update (2019-10-21): Qdea:

Because Synchronize! Pro X is a 32-bit application, it is not supported by Apple on MacOS 10.15 Catalina and later operating systems. A 64-bit version of Synchronize! Pro X is not planned.

Catalina Supplemental Update

Eric Slivka:

Alongside iOS 13.1.3, Apple today also released a supplemental update for macOS Catalina, addressing several bugs from the initial public release version, including a problem with Setup Assistant hanging during Catalina installation.

Presumably, if the Mail issues were fixed they would have been called out in the release notes.

masterleep:

Wish they would call it [macOS 15.0.1] and dispense with unversioned “supplemental updates”.

Who knows which version you’ll get if you specify “10.15” when downloading an installer.

Howard Oakley:

It’s just under a gigabyte in size, which is quite substantial for such an early update before the first full update to Catalina.

Update (2019-10-16): Jeff Johnson:

The “Supplemental Update” supplemented my Desktop with this.

Mine, too. Slightly worrying to find system stuff in there, not just the expected files.

See also: MacRumors.

Catalina “softwareupdate” Can Download Old Installers

Armin Briegel:

The softwareupdate command has gained a new option in Catalina:

% softwareupdate --fetch-full-installer

Will download the latest ‘Install macOS’ application to this Mac’s /Applications folder. This is extremely useful for many admin tasks.

The --fetch-full-installer flag has a sub-flag: --full-installer-version which allows you to download a specific version.

% softwareupdate --fetch-full-installer --full-installer-version 10.14.6

Oddly, specifying either 10.14 or 10.14.0 works, but to download Catalina you need to specify 10.15 or else it will fail with an “Update not found” error.

These installers can be used with DropDMG’s Create macOS Install Disk command.

Previously:

Update (2019-10-16): There are some questions about which old versions this works for.

Twitter for Mac Returns

Twitter:

The new Twitter for Mac app is here! We’re rolling out an updated Twitter experience made especially for those of you on Mac. Available in the App Store.

Christopher Wong:

The new @Twitter for Mac app is truly one of the funniest (read: worst) pieces of software I’ve ever used. Screenshot below of the full screen compose window.

Project Catalyst seems like an unmitigated disaster

Mario Guzmán:

I mean, naturally, you drag a slider with your finger or holding down on the mouse... Well, that’s what I was trying to do with the slider in the Twitter iPad app for Mac... didn’t go so well. LOL #Catalyst

Ben Sandofsky:

Twitter’s new Mac app uses less than half the memory of the website, and the experience is way better.

Owen Williams:

Wait so Twitter made a Mac app using Apple’s ‘Catalyst’ tool for converting iPad apps.... and it’s...worse than their Progressive Web App? Color me surprised, the iPad app sucks too.

Matt Birchler:

Text selection in the new Twitter app for Mac is insane.

Nolan O’Brien:

A lot of engineering went into bringing the full iOS feature set over to Mac in a very tight timeframe.

There are definitely areas to follow up and improve. We’ll keep iterating and making things better, but in the meantime, check out some of the great features Twitter for Mac offers

Photo uploads get a real boost on Mac. WebP, HEIC and TIFF images now supported in addition to PNG, JPEG and Twitter for Mac supports up to 4096x4096 photo uploads, that’s 16 megapixels!

You can view those UHD images on Twitter for Mac too, of course!

We’ve added support for multiple composition windows at the same time with the ability to resume them if you quit Twitter before you Tweet.

Drag & Drop of photos and GIFs feels very natural on Mac too. We have some work to do for copy & paste of images into composer, so look for that improvement in future iterations too.

[…]

And lastly, don’t forget all the great features that Twitter for iOS has that have never been in a native Mac app before, all here from the get-go. 🥳

Previously:

A Better Finder Rename 11

publicspace.net:

Version 11 allows you to add multiple file filters to your action list, so that different types of files can finally be renamed differently within a single multi-step rename.

You can preview both the file names and the filter criteria directly in the preview table.

[…]

Version 10 introduced support for using meta-data tags, such as shooting dates, camera, image or song information to rename files. Version 11 builds on that foundation and adds new meta-data tags, vastly extends the range of supported file types and improves the speed and reliability of meta-data handling.

[…]

We have now added using natural language analysis technology for identifying grammatical structures and lexical classes, so that we can implement conventions, such as capitalizing proper nouns, etc.

It’s great to see that this utility, which has been around since System 7, is still going strong, despite the basic bulk renaming feature that Apple added to Finder.

There’s an interesting pricing strategy. It’s $20 for a new license or $13 to upgrade. You can also pay $40 for a new license or $20 to upgrade to get a “forever” license that includes “all future product upgrades.”

FAQ:

Yes, all of our current Mac OS X products are available on the Mac App Store.

Unfortunately, Apple have forced us to change the name of most of our products resulting in more than a little confusion. The table below shows the correspondances between the different products and their Mac App Store counterparts.

[…]

We are trying to keep feature parity between the Mac App Store versions and the ones that we sell directly, but Apple’s Mac App Store submission guidelines makes this quite hard and we will probably in future have to remove further features from the MAS versions of our products.

See also: reviews from 1999 and 2006.

Jira Cloud for Mac

Atlassian:

Jira Cloud for Mac is a snappy and simple way for software developers to work with tasks and update their team on progress.

[…]

For a powerful product like Jira, building a Mac application from scratch would have taken significantly longer. But thanks to Mac Catalyst, our iOS developers became Mac developers overnight. It was that easy.

Here’s the App Store link.

Matt Birchler:

I’m sad to say the Jira Mac app is a massive disappointment. It’s ungodly slow, spikes CPU usage to 150%+ whenever I click anything, has poor keyboard shortcut support, is less powerful than the web, and has terrible text entry.

Hard uninstall 🙁

Sunday, October 13, 2019 [Tweets] [Favorites]

Podcasts in Catalina

Alex3917:

The new Podcasts app deleted years of downloaded podcasts when I updated, including a lot that are no longer hosted on the web. For some reason the “sensible default” in the new app is to delete anything beyond the most recent ten episodes. Now I need to remember to restore from backup before it gets overwritten, heh.

Beware. But, for me, it did not do this. Instead, it left my iTunes library in place, not migrating it at all, and showed me the list of podcasts from years ago, before I had turned off the Sync podcast subscriptions and settings option in iTunes.

So, naturally I wanted to delete all those old podcasts and import my new ones. I found that:

Overall, the Mac version of Podcasts seems like a huge regression from what we had with iTunes. There’s no standard table view of all the episodes. There’s no list of shows, just a grid of icons. The interface is very modal. You can tell it’s a Catalyst app because instead of sheets you get these little popovers with narrow, rounded text fields and flat buttons like in no other Mac app.

So I’m looking for a replacement app for archiving podcasts. (I mostly listen on my phone using Overcast.) I checked out a bunch of RSS readers—NetNewsWire 5, Reeder, Vienna, Leaf, News Explorer—but none seem to support auto-downloading attachments.

I have previously had success with Downcast, but several times it got totally messed up and could no longer read its own files. This seems to have been caused by a sandbox bug, so maybe that’s fixed in Catalina. I’ll probably give it another try.

I’ve also heard that Newsboat can handle RSS attachments. I’d prefer an actual Mac app. But I’ll use something text-based and cross-platform if it works well. Isn’t this what Catalyst was supposed to prevent?

Previously:

Update (2019-10-14): Colin Cornaby:

It’s a weird app and I quickly get frustrated with it in a way I never was with iTunes.

The blurry text and images on a non-Retina display doesn’t help either.

Andrew Pontious:

Still amazes me that the kinda shitty, nonstandard cross-platform apps that Apple was always so disdainful of are now being shipped by Apple.

Opting Out of Sharing Siri Audio Recordings

Juli Clover:

Today’s iOS 13.2 beta introduces a new option that allows iPhone and iPad users to delete their Siri and Dictation history and opt out of sharing audio recordings, features that Apple promised after being called out for its Siri quality evaluation processes.

And on Catalina, Steve Troughton-Smith notes:

That’s definitely more explicit than before…

Jason:

That’s an improvement, but it still says “Not now” instead of “No”

Kyle Howells:

This year Apple lost the ability to write ‘no’, instead they’ve had to replace it with ‘not now’ everywhere.

It’s their new design pattern.

Previously:

Update (2019-10-14): Kaveh Vaghefi:

This is nice and all, but where is this for the HomePod, which is sitting in your home and always listening?

Update (2019-10-16): John Gruber:

In a briefing with Apple, I was told that even if you opt in to “Improve Siri & Dictation”, no one at Apple will ever review a Siri interaction until 24 hours have passed. So if you ever do say anything to Siri you don’t want reviewed, you have a full day to delete your history.

The setting and history seem to be per-device—with the Mac and HomePod versions unavailable so far.

Saturday, October 12, 2019 [Tweets] [Favorites]

Waiting to Update to Catalina

As a developer, there are a bunch of new APIs that I want to be able to use. And, of course, I’ve been using it for a few months on a couple of auxiliary Macs for testing. But as a user, I see very little to tempt me to upgrade anytime soon. As ATP put it, there’s not enough carrot and too much stick, not to mention early bugs.

Dieter Bohn:

At the risk of being an I-told-you-so kind of person, I’m just going to repeat what I said in the Catalina review again. You probably depend on your Mac or PC for “real work,” and so updating on day one could threaten that real work — literally threaten your livelihood. It’s better to wait and see how things shake out, to let other people experience the problems and report them.

Telling people not to upgrade to the new OS for a few weeks used to be so common that it sounds weird to emphasize it so much. But somewhere in the past decade the yearly updates for both iOS (and, to a lesser extent, Android) lulled us into a false sense of complacency.

Adam Engst:

Nevertheless, for most people, we recommend delaying your upgrade for a while for a variety of reasons[…]

Jason Snell:

If there’s a must-have app that only runs on Catalina, or you want to use Voice Control or Screen Time or Find My or Apple Arcade, and all your go-to software checks out, then by all means, make the jump to Catalina. (I’ve been using it for the last month with only a few minor app incompatibilities that I expect to be resolved as updates roll out alongside the new release.) But if you can wait, you should. Let other people discover the early bugs and suffer the app incompatibilities. Catalina will still be there for you when you’re ready for it.

Mike Rundle:

It’s blowing my mind how many folks are upgrading to Catalina immediately. Unless you absolutely need to upgrade for development testing, macOS releases have been buggy as hell in recent years. I always wait 6+ months just to be safe 👻

John Voorhees:

A lot of the cautionary advice about upgrading to Catalina conflates the risk of installing the new version of macOS with the risk of relying on unmaintained 32-bit apps. Not doing the former doesn’t eliminate the risk of the later.

Robert Hammen (Rich Trouton):

Want to block macOS Catalina from showing up in Software Update preferences on macOS Mojave? sudo /usr/sbin/softwareupdate --ignore "macOS Catalina" prevents it from appearing!

Jeff Johnson:

I temporarily removed the Dock badge with defaults delete com.apple.systempreferences AttentionPrefBundleIDs, but then it came back after checking again. :-(

When you’re ready to update:

sudo /usr/sbin/softwareupdate --reset-ignored should do the trick

You can create a bootable install disk using DropDMG.

Glenn Fleishman:

But maybe you’d like to hedge your bets. In the past, you’d need to partition your startup drive, which could turn into a lot of effort, or get an external drive—preferably SSD—and install and boot from that.

[…]

The way this works to your advantage with Catalina is that if you have enough spare in your main container to handle Catalina—a few tens of gigabytes, but preferably more—you use Disk Utility to add a value into your main container, then install Catalina into that volume. You can then use the Startup Disk preference pane to swap among your volumes without involving an external drive at all.

This can continue to be useful after Catalina is released if you want to keep a Mojave volume active for 32-bit apps that no longer run in Catalina.

Previously:

Update (2019-10-13): Rob Griffiths:

(Note: You may have to restart the Dock for the red dot to vanish; you can do that with killall Dock in Terminal.)

I decided to tackle this by creating a launchd agent—which is just the technical name for scheduled tasks in macOS’ Unix core.

Peter Maurer:

As a user, Catalina is the worst macOS update I’ve ever seen. Worse than 10.7, worse than 10.10.

It’s unfortunate that it also happens to be the first macOS update that Apple pushes this aggressively.

Please slow down.

Update (2019-10-15): Bombich Software:

If you’re thinking about upgrading a Mac that you depend on for productivity, maybe wait a few weeks for the dust to settle. And of course, make a CCC bootable backup before you make the upgrade[…]

Friday, October 11, 2019 [Tweets] [Favorites]

Mail Data Loss in macOS 10.15

I’m working on more posts about the Catalina release, but I wanted to start with a short warning. I’ve heard a bunch of reports of data loss in Apple Mail. Thankfully, none seem to be caused by my apps. (Ironically, one of the bugs I’ve encountered is the inability to delete messages via AppleScript.) And, in fact, most of the damage has occurred without my Mail plug-in even being installed. Nevertheless, people contact me because it’s not unreasonable to wonder if third-party software is to blame, and I also hear from people who want a second opinion because what Apple support told them didn’t make sense.

What I’m hearing:

I don’t know whether these are due to Mail bugs or to other factors such as problems on the Mac or with the mail server. But my advice is to hold off on updating to Catalina for now. These sorts of issues are pernicious because:

  1. You may not notice that anything is wrong unless you are looking at the particular mailbox or messages that are affected.

  2. Because the data is synced to the server, problems can propagate to other Macs and iOS devices.

  3. Making a backup is difficult because, even if you set the preference, Mail no longer automatically fully downloads all messages. So the backup of the local data will necessarily be incomplete. (See EagleFiler’s Importing Attachments instructions for more about this. I’m happy to have most of my mail archived outside of Mail.)

  4. Restoring a backup is difficult because Mail data is constantly changing. There is no straightforward way to merge restored data in with messages received since the last backup, and also with the live data on the server.

Of course, it’s good to make backups anyway.

Apple advisors are apparently telling customers that if Mail data gets lost on Catalina, it can’t be recovered from a Time Machine backup that was made using Mojave. This didn’t make sense to me, and I’ve verified that it’s not the case. You can use Time Machine to get at previous versions of the folders in Mail’s data store, and then use the File ‣ Import Mailboxes… command to selectively import them into Catalina Mail. Since they import as new, local mailboxes, this shouldn’t affect messages that are on the server.

I also think that the advice to restore the whole Mac to Mojave makes no sense because as soon as you launch Mail it’s going to delete all the messages that were deleted on the server. In order to actually restore them, you have to make copies of the messages that might have already been deleted. That’s what Import Mailboxes does.

Update (2019-10-11): See also: Howard Oakley, TidBITS, Hacker News.

Update (2019-10-12): See also: MacRumors, iMore.

Update (2019-10-13): See also: AppleInsider.

Update (2019-10-14): Commenter Shiner says that the lost messages from “updating Mail’s data store” happens for local mailboxes every time Mail’s database is rebuilt, not just when migrating from Mojave, and reported this to Apple in August. It’s “trivial to reproduce” and lost 160,000 out of 200,000 messages in a test.

There’s some evidence that the moving messages issue is related to Microsoft Exchange accounts.

Peter Steinberger:

A doctor friend of mine lost about 20.000 emails when he upgraded to iOS 13. It was a POP3 account.

See also: TechRadar.

Update (2019-10-15): I’ve received four reports that messages moved to an iCloud mailbox (that were not originally in that iCloud account) simply disappear instead of showing up there. At first, we thought this was a Catalina issue, but it also seems to be happening with High Sierra now. My guess is that it’s an issue with certain of the iCloud servers.

Thursday, October 10, 2019 [Tweets] [Favorites]

How My Application Ran Away and Called Home From Redmond

Mikko Kenttälä (via Paul Haddad):

We were puzzled because I had killed the Beacon process and it should not be running anymore. I logged in to my Windows test machine to see if the Beacon is still running. But there was nothing. We were confused. Then I checked the alerts more carefully.

[…]

After that I realized Beacon’s Home received the packet from an unknown IP address. At this point I was confused and freaking out — why someone else is running the same unique binary which was recently built just for me? Are my systems hacked?

[…]

I managed to narrow it down to Microsoft Defender and the “Automatic sample submission” feature. […] Microsoft Windows 10 sends all new unique binaries for further analysis to Microsoft by default. They run the executable in an environment where network connectivity is available. This opens interesting data leak vector for attacker and also includes some privacy concerns. It is quite common that even in isolated environments, many of the Microsoft IP address ranges are whitelisted to make sure systems will stay up to date. This enables adversary to leak data via Microsoft services which is extremely juicy covert channel.

Silent Failure

John Gruber:

I continue to hold that one of the worst aspects of today’s Apple is their strident antipathy toward error messages. Silent failure is so much worse than an error message, but that’s the way Apple rolls.

I don’t know when it started (maybe with the update to 13.1.2? maybe one of the other 13.1.x updates?) but for a week or so I’ve been unable to buy new apps on my iPad. I hit the buy button, confirm with top button, Face ID authenticates me, it spins for a bit — then, nothing.

[…]

I don’t mind that my card needed to be verified. Security is good. But why in the world wasn’t I told that the reason why I couldn’t purchase anything is that my card needed to be verified?

[…]

Even a bad error message, something that just says “An Error Occurred” with no indication of what the error was, is better than silent failure. Silent failure is the UI equivalent of gaslighting — it makes you feel like you’re going crazy.

Todd Heberlein:

Seriously. In the age of search engines, being able enter error message details into a search field, even if the messages seem cryptic to the typical user, will often lead the user to a simple, step-by-step solution to their problem.

But you need the message to start the search

Dan Crosby:

My guess: software quality is now metric-driven, so their efforts are to driving down (or up) numbers they can track: crashes, dialogs displayed, etc. Silent errors don’t show up in metrics, so nobody is rewarded for either fixing or revealing them.

Andy Newman:

I wonder how much this gives Apple a false sense that their software is performing better than it actually is, simply because so many issues can’t always be accurately described or fixed by the average user. Many just give up.

Previously:

Update (2019-10-11): Jeff Baxendale:

speaking of infuriating Apple bugs with no error messages or information whatsoever… I can pretty much no longer install from the App Store on my laptop (cache clearing/disk repair attempted) 🤷‍♂️

Can’t see anything useful in Console either.

Update (2019-10-13): Cédric Luthi:

“An Error Occurred” without further information is an extremely low bar to set. Software engineers should feel comfortable writing more core handling errors than handling the happy path. Unfortunately, this is often not how software is written. 🤷‍♀️

Brian Webster:

I strive to have good user facing error messages, but even an error with tech gobbledygook can at least give me some clue of what’s going on when I get the angry email so I can try to fix it.

Dave DeLong:

I think it stems from your expectation about what you want your users to actually DO about it.

As an indie dev, you want users to contact you.

I’m not convinced Apple institutionally wants that

scott:

This has seemingly gotten worse with every software release under Federighi. I often say that giving support to Mac and iPhone used to be great since everything was so predictable and explaining the problem often lead the person to a better understanding of the products.

Now it’s just impossible to troubleshoot problems. I won’t even offer to help anymore, because I have no idea where to start. And good luck with official Apple support.

Thomas Fuchs:

The App Store In 10.14 shows Twitter here, but clicking “GET” does absolutely nothing because it’s not compatible with 10.14. No error message, just nothing.

Leo Natan:

The Mac App Store has many such issues. It allows downloading 32-bit apps on Catalina (and worse, allows purchase of such apps). 🤦‍♂️

See also: John Siracusa’s problems with certain contacts that silently didn’t sync because their images were too large.

Update (2019-10-18): Damien Petrilli:

Status of the TV app on #CatalinaOS :

- Can’t stream some movies I purchased
- Can’t download ANY movies I purchased

[…]

Of course called support and apparently there is a lot of wait because they are submerged by calls regarding Catalina (I gave up).

Short talk on phone:

- “What error message do you get ?”.
- “None, I don’t get any error message”.
- “Ho that’s not going to help”
- “Yup”

So we are at the point where even the support won’t be able to troubleshoot because Apple is removing error messages.

Implementing Dark Mode in iOS 13

Tim Johnsen:

That being said, we didn’t use UIKit’s APIs alone since most developers in the company and our build systems are all still using Xcode 10, and introducing iOS 13 APIs would cause build breakages. We went with the approach of writing thin wrappers around UIKit APIs that are compatible with Xcode 10 and iOS 12.

Writing little wrappers is often the best engineering solution, but it seems like a waste that so many developers have to do essentially the same thing for the same APIs. Why can’t the tools handle this automatically?

We discovered towards the end of our dark mode adoption that our implementation of dynamic colors had equality implications because a new instance of UIColor was returned each time and the only thing that was comparable about each was the block passed in. In order to resolve this we modified our API slightly to create single instances of each of semantic colors so that they were comparable. Doing something like dispatch_once-ing your semantic colors or using asset catalog-based colors and +colorNamed: will produce comparable colors if your app is sensitive to color equality.

[…]

One clever testing trick this IGTraitCollection wrapper afforded us is something we’ve come to call “fake dark mode” — which is an internal setting that override IGTraitCollection to become dark even in iOS 12!