Archive for September 2020

Wednesday, September 30, 2020

Third-Generation Apple TVs Suffering From Software Update 7.6

Adam Engst:

Third-generation Apple TV users are now experiencing crashes when pausing YouTube videos, and others are having intermittent AirPlay problems that include freezing and audio-only over a blank screen. The only workarounds are to wait 90 seconds for the Apple TV to time out and reload the Home screen, or to restart the Apple TV either by pressing the Menu and Down buttons on the remote simultaneously or by power-cycling the unit. There are also problems with loading Apple TV+ shows promoted in the What to Watch area at the top of the Home screen, though they load fine when accessed from within the Apple TV app.

It’s apparently possible to downgrade a third-generation Apple TV, but it requires some potentially iffy software downloads and connecting the Apple TV to your Mac.

And the Remote app has been broken with 3rd-generation Apple TVs for years.

Widgetsmith and The Case of the Missing App Store Bunco Squad

John Gruber:

Search for “Widgetsmith” — the exact name of Smith’s app — and the first app in the results is not Widgetsmith but a name-alike ripoff called, I swear, “Widgetsmith - Color Widgets”. This utterly shameless ripoff, replete with a ham-fisted knockoff of the icon to boot, is listed above the actual Widgetsmith, despite the fact that the actual Widgetsmith is currently the #1 app in Productivity and has over 53,000 overwhelmingly positive reviews. The ripoff app has 25 5-star ratings, one 1-star rating, and one written review, which reads, verbatim, “Thank developer for making such great app especially for iOS 14!” The entire description of the ripoff app is written in similar broken English.

[…]

The ripoff version is now popular enough to be ranked #7 on the Entertainment list.

[…]

The App Store is not trustworthy if that includes trusting that the apps in its trending lists and search results are legitimate. If Apple ran a food court like they run the App Store they’d let a McDowell’s open up two stores down from McDonald’s.

Second, even accepting that this app was allowed into the store with this name and this icon, how in the world does it rank ahead of the actual Widgetsmith in search results?

Marco Arment:

With all of the bullshit Apple’s app review puts us through, I can’t believe how many obvious scams and clones they let through.

Apparently, they don’t check new submissions to see if they’re obviously infringing directly on the name and icon of the #1 app in the App Store.

Marco Arment:

And not addressing another problem, in which the subtitle field was introduced to stop app titles of the form:

App Name - Spammy Keywords

…with a resulting promise that the rules would prohibit such names in the future — but they aren’t, hence penalizing only the good devs.

Jason Chase:

Copies the number one AND number two apps. Looking at the screenshots it copied color widgets (#2 app) then they tacked on Widgetsmith to the App Store name.

Previously:

Update (2020-10-01): David Smith:

It is kind of amazing to me that on the Google Play store it is even possible to have two copycats using exactly the same name, at the same time. Three overall right now, with one I had removed over the weekend. I guess this is my life now...or I need to make an Android app 😱.

Pop Out Timer Rejected From the App Store

Jeremy Provost:

Pop Out Timer is an app that plays a video of a timer using Picture in Picture so the timer is always on screen. It has been available in the App Store for over 2 years. It has gone through 20+ rounds of App Review approval. Our most recent update has been rejected for undocumented and arbitrary reasons. And our request for a bug fix update was denied for undocumented and arbitrary reasons.

[…]

We were told repeatedly on the phone that everything is handled on a “case-by-case basis”. When we proposed a potential solution (one that would require significant time and effort on our part, essentially re-writing and re-purposing the entire app) we were told that we would have to do that work and submit and only then would they tell us if it was an acceptable use of Picture in Picture. That’s open and transparent?

[…]

We asked App Review if YouTube had a timer video on their website would it be allowed (hint: they already exist). We were told that would not be a problem for YouTube. How is that treating every developer the same?

While we’re talking about YouTube, they only allow Picture in Picture for their Premium subscribers, seemingly violating 3.2.2 ii of the App Review Guidelines by forcing users to pay for something that is a built-in capability provided by the operating system.

Marco Arment:

YouTube locking iOS picture-in-picture behind Premium is indeed a violation of 3.2.2, but that’s almost never enforced (or particularly enforceable).

It’s only marginally more enforceable than 4.5.4 (no promotional notifications), which is never enforced.

Scott Buscemi:

Enforce App Store rules and do not allow ads in notifications. Or at least require them to be an option.

Tim Schmitz:

I got rejected for violating 3.2.2 a few years ago. As a tiny developer, there was nothing I could do about it. It’s super frustrating to see Apple make a huge stink about some rules, let others slide for big developers, then claim they treat everyone the same.

Ryan Jones:

Did you know Background Audio has been a premium YouTube feature for years? Maybe 3-4 years actually. Same exact violation.

David Barnard:

Apple should really put this in writing, but they have consistently approved bundling system features for years.

And it really does make sense. Widgets and complications are crazy expensive for apps like weather apps, being able to bundle those features as part of a subscription is the only way I can offer those in @Weather_Up_. YouTube can’t show ads in PiP.

Previously:

Update (2021-01-04): Jeremy Provost (tweet):

After back and forth with Beta App Review, attempting to appease them as best we could, another rejection, a lot of back and forth with App Review (and a blog post), a crashing bug caused by iOS 14.2 (with all the emails and negative reviews that go along with that), an official appeal, a few phone calls, an official “suggested change to an App Review guideline”, an email, and finally a voicemail with the good news: Pop Out Timer 3.1.4 is now live in the App Store. It’s a relief after a stressful 4 months.

LatherApp Rejected From the App Store

Jeremy Provost:

While Apple was busy developing a hand washing timer for Apple Watch, App Review was rejecting LatherApp for being a hand washing timer that was not provided by a recognized health authority. We had to check after WWDC to make sure Apple had not suddenly become a recognized health authority, but no, they simply changed their rule exactly when it benefited them.

In the meantime Apple forced us to remove every single possible reference to hand washing if we wanted to have LatherApp approved. They then rejected us simply for using the name LatherApp. From their perspective, “lather” is something that only occurs during hand washing, and even sending them a dictionary definition was not enough to get them to change their mind.

The app originally shipped, before WWDC, as Wash Stuff. Apple recently allowed it to be renamed back to LatherApp and to mention hand washing.

Monday, September 28, 2020

Roku Adding Apple AirPlay 2 and HomeKit

Joe Rossignol:

Roku today announced that AirPlay 2 and HomeKit will be rolling out to select 4K TVs and devices as part of a free software update later this year.

AirPlay 2 will enable users to stream videos, music, podcasts, and more directly from an iPhone, iPad, or Mac to a compatible Roku smart TV, with no Apple TV box necessary. And with HomeKit support, users can easily control the TV’s power, volume, source, and more using Siri or the Home app on iPhone, iPad, and Mac.

Good news. I wonder whether Fire TV will get built-in AirPlay support next.

Previously:

Update (2020-10-09): Daniel Rubino:

Apple TV is coming to Xbox. Explains why Apple was looking to hire UWP devs last year.

Dan Masters:

The lack of Apple TV+ availability on Android is certainly puzzling in light of Apple’s services focus shift, particularly when contrasted with their Music approach (and, indeed, their TV+ apps for web, Microsoft, Roku, Amazon, Samsung, LG and VIZIO – everyone except Google).

Apple’s Use of Swift and SwiftUI in iOS 14

Alexandre Colucci (Hacker News):

iOS 14.0 contains a lot more binaries using SwiftUI. The primary reason is without a doubt WidgetKit, the first public SwiftUI-only framework. Each widget available in iOS 14 appears in this list. Another shiny new iOS 14 feature is the Translate app which appears to be built with SwiftUI.

[…]

If we exclude the Swift libraries, iOS 14.0 contains 291 binaries using Swift, more than doubling the number from iOS 13. It is also worth noting that SwiftUI has been quickly adopted in iOS 14 with 43 binaries.

I like seeing dogfooding.

Previously:

App Review Should Be Stricter

Miguel de Icaza (tweet, Hacker News):

While some developers are upset with the Apple Store rejections, profiteers have figured out that they can make a fortune while abiding by the existing rules. These rules allow behaviors that are in either poor taste, or explicitly manipulating the psyche of the user.

[…]

We now have a rule at home “No free games or games with In-App Purchases”. While this works for “Can I get a new game?”, it does not work for the existing games that they play, and those that they play with their friends.

[…]

These dark patterns are not limited applications for kids, read the end of this post for a list of negative scenarios that my followers encountered that will ring familiar.

The App Store is simultaneously too strict (to be the sole source of apps for half of the mobile duopoly) and not strict enough (to be the curated, safe environment that it’s often promoted as).

Previously:

Friday, September 25, 2020

Swift System Is Now Open Source

Michael Ilseman:

In June, Apple introduced Swift System, a new library for Apple platforms that provides idiomatic interfaces to system calls and low-level currency types. Today, I’m excited to announce that we’re open-sourcing System and adding Linux support! Our vision is for System to eventually act as the single home for low-level system interfaces for all supported Swift platforms.

[…]

Errors are thrown using the standard language mechanism and cannot be missed. Further, all system calls interruptible by a signal take a defaulted-true retryOnInterrupt argument, causing them to retry on failure. When combined, these two changes dramatically simplify error and signal handling.

[…]

System is a multi-platform library, not a cross-platform one. It provides a separate set of APIs and behaviors on every supported platform, closely reflecting the underlying OS interfaces.

Like Swift Argument Parser, it is not part of the standard library. I guess the advantage is that you can back-deploy the latest version of the package to older OS versions.

Update (2020-09-28): See also: Hacker News.

The Need for Stable Foundations in Software Development

Maxime Chevalier-Boisvert:

My employer was kind enough to provide me with a top of the line MacBook Pro. It’s a beautiful machine with 6 CPU cores, 32GB of RAM and a 4K display, the most powerful laptop I’ve ever owned and a valuable tool in working from home. However, unfortunately, the slick machine suffers from a number of software problems.

For one, you can charge it using any of the 4 USB-C ports, but you really should only ever charge it from the right side. Another issue I frequently run into is that I have an external monitor, and despite configuring this as my primary display, the dock will randomly jump back to the MacBook’s monitor, until I go into the settings and move the dock to the right, and to the bottom again, at which point it goes back to the external monitor, until the next time it decides to randomly jump ship. A third issue is that whenever I reboot, it stays stuck early in the boot process, displaying the white Apple logo, and does nothing. It doesn’t complete the boot process until I unplug my USB-C devices. There are more problems, I could go on.

Apple isn’t the only one with these kinds of quality assurance problems. […] Why is it that we live in a world riddled with bugs?

Nikita Prokopov:

Jay Sitter in his article People expect technology to suck writes about people who keep using tech despite heavy annoyances like very dim screen or constant popups and not doing anything about it.

[…]

And I would agree: if it was just a single case, of course, they should’ve done something about it! The point is, this happens all the time, every day, multiple times a day, and one person can dedicate only so much time to dealing with it. The stream of minor annoyances is so large people just got tired of dealing with it! And no, there’re no better alternatives.

To prove my point, I decided to record every broken interaction I had during one day.

Previously:

Update (2020-09-28): See also: Hacker News.

Nick Heer:

I maintain that, while the number of bugs and problems users experience is linear, their understandable frustration is exponential. It’s no wonder they have learned to tolerate poor-quality work.

Pixelmator Pro Gets AppleScript Support

Pixelmator:

Big news from the Pixelmator Team, today we’re releasing a major update to Pixelmator Pro. Version 1.8, codenamed Lynx, is now here, bringing incredibly full-featured support for AppleScript.

[…]

In our quest to make AppleScript support as great and full-featured as possible, we collaborated with Sal Soghoian, the legendary user automation guru, who served at Apple for 20 years as the Product Manager of Automation Technologies, including AppleScript, Services, the Terminal, Apple Configurator and Automator, among others. We’re super glad to have had the opportunity to work with Sal. He was a big help with our scripting dictionary and we think the extra attention to detail really paid off!

John Gruber:

You can say “But AppleScript is so old and it’s such a weird frustrating language” — and you’d be right. AppleScript is really old. It’s palpably the product of a bygone era. It’s one of the last classic Mac OS era technologies that’s still kicking and relevant. But it’s what we’ve got. Clearly, Apple doesn’t care enough about professional tool automation to create an altogether new scripting system, but they care enough to keep AppleScript going.

iOS 14 Update Could Permanently Remove Fortnite

Fortnite Status:

Fortnite iOS players updating to iOS 14 may lose access to Fortnite. If the message “Temporarily Remove Apps to Install the Software Update?” is accepted, it may result in Fortnite being deleted. Fortnite cannot later be reinstalled due to Apple preventing users from doing so.

Via Nick Heer:

Apple does not explain how iOS selects which apps to temporarily remove in order to free up space, but an educated guess suggests that it removes the largest apps first. Games like Fortnite have massive bundle sizes, so that’s why it is likely to be removed for an update. Apple’s UI copy indicates that it is temporary but, because Fortnite is no longer on the App Store, it is effectively permanent.

Unfortunately, apps are not included in iCloud backups, and iTunes can no longer back up and restore iOS apps, either. You have to download them from the App Store. That can be a problem if you want to revert to a previous version or restore an app that Apple has removed.

Previously:

Widgetsmith

David Smith (tweet, App Store):

Widgetsmith lets you personalize your home screen like never before.

It starts with a wide collection of highly customizable widgets, which range in function from date, to weather, to astronomy. Each can be adjusted precisely to best fit your desired function and appearance.

This set of widgets can then be dynamically scheduled to appear on your home screen following rules you define. For example, a particular widget could show the weather first thing in the morning, then your calendar during your work day, then switch to your Activity ring progress as you wrap up your day. This lets you take full advantage of each slot on your home screen.

It’s currently #1 in the App Store’s Productivity category.

Rebecca Jennings:

There was a time not so long ago when buying an Apple product meant buying into a very specific aesthetic, one designed by men in glass-walled offices who liked to think of themselves as high-minded futurists. Their vision for that future was almost always the same: sleek, minimalist, and above all, simple.

But according to my TikTok feed over the past weekend, iPhones are now bastions of complex personal micro-identities. “How to make your iPhone home screen aesthetic AF!” begins a video tutorial with 3 million likes. On Twitter, users boast screenshots of their own creations, from Studio Ghibli to cottagecore, Mean Girls to “Katy Perry in the ‘Never Really Over’ video,” and“dirtbag Shia LaBeouf” (a personal favorite). To do so, they’re using customizable widgets with Apple’s refreshed Shortcuts app as well as other downloadable tools like Widgetsmith (The Verge has a good explainer on how to wield them). Used particularly artfully, the effects can turn the home screen of your phone into an ode to Animal Crossing or what BTS would look like in a late ’90s teen magazine — far removed from the traditional grid of rounded-edge squares with company logos.

Nick Heer:

I have no idea if Apple thought that Shortcuts and home screen widgets would allow for such wild customization, but I think it is terrific.

Jason Brennan:

I genuinely love how many people are going crazy customizing their iOS 14 homescreens and icons.

The instant craze is proof to me people are starved for (and can handle!) more options and customizability and don’t need “simplicity” as much as Apple seems to think

Julia Alexander:

It’s hard to say how long the fad will last, or how long users will keep their intricate home screens. Parrotte and Gia think part of it is simply creating the designs for clout. (“I think it’s a way for people to flex,” Gia says.) But with form factors and operating systems settling into a dull sameness, there’s a powerful appeal to having a home screen that looks different from everyone else’s.

Previously:

Update (2020-09-28): See also: Accidental Tech Podcast, The Talk Show.

Update (2020-10-01): See also: Under the Radar.

Steve Troughton-Smith:

After seeing how widgets have played out on iOS 14, I bet there are people at Apple feeling pretty foolish for choosing to not enable the feature on iPad 😅

Update (2020-10-02): See also: The Talk Show.

Update (2021-02-05): John Voorhees:

Yesterday, Jason Aten of Inc. published an interview with Smith about his career as an independent developer and how his 12 years of experience building 59 different apps prepared him for the unexpected success of Widgetsmith, which has been downloaded more than 50 million times.

Arq 7 Announced

Stefan Reitshamer (tweet):

We had hoped to ship an Arq 6 update that was compatible with Arq 5 data by end of June 2020. But we wanted to ship something great, even if it takes a lot longer than we initially expected.

At some point we tried prototyping Arq 6 as a “native” UI on macOS, and realized we like it a lot better.

So, we decided to implement the entire UI as a “native” UI. It’s got better keyboard navigation, it’s more intuitive, has a smaller disk footprint, and supports drag-and-drop to easily restore files to your desktop or a Finder window. It just feels better.

It’s in private testing now. The data format and method of selecting backup items have been reworked again, and it fixes the annoying Arq 6 bug where unmounting an unrelated drive cancels all the in-progress backups.

Previously:

Thursday, September 24, 2020

Amazon Luna Cloud Gaming Service

Amazon (via Hacker News):

Introducing Luna, Amazon’s cloud gaming service where it’s easy to play great games on devices you already own. No waiting for lengthy downloads or updates — just play.

[…]

Luna is available on PC, Mac, Fire TV and web apps for iPhone and iPad.

Sweet.

Juli Clover:

Luna will be priced at $5.99 per month, and Amazon has designed the Luna Controller, to go along with it. The $50 controller has “cloud direct technology” to cut down on latency, essentially connecting the controller directly to Amazon’s servers.

Previously:

Apple Explains Benefits of the App Store

Ben Lovejoy:

Apple is today responding to increasing antitrust pressure with an App Store PR blitz. This includes a complete revamp of its main App Store page, a new page promoting the benefits of the App Store to developers, new messaging, and a new program for developers of streaming video apps.

John Voorhees:

Apple has published new online resources about the App Store and its developer program. The new webpages cover a wide range of topics related to the App Store and developing for it, and include several new facts and insights about the Store.

[…]

There are 28 million members in the development program from 227 regions

[…]

In 2020 over 250 million user reviews were removed for not meeting integrity standards

Hartley Charlton:

Apple boasts that every week over 100,000 apps or updates are submitted and reviewed by an App Review team, which now consists of over 500 experts from around the world.

Jeff Johnson:

That’s 12 minutes per app if 500 “experts” (LOL) spend every minute of a 40 hour work week on reviews, which surely they don’t.

Previously:

Apple Video Partner Program

Stephen Warwick:

Apple has published new guidance on its Video Partner Program, which caused controversy earlier this year after it emerged some video platforms don't have to pay Apple's entire 30% App Store cut.

[…]

The big benefit for providers is that they retain 85% of sales for customers who sign up using in-app purchases. Customers are also still able to sign up outside of the app, but can then still use the payment method for transactions inside of the app, for example, Amazon Prime Video.

Apple:

Since 2016, the Apple Video Partner Program has enabled premium subscription video providers to participate in a new TV watching experience on the Apple TV app, helping customers discover the world’s best premium video content in one app, across all their devices.

Emphasis added.

Netflix does not participate, having abandoned IAP and AirPlay, but it still enjoys the “reader” clause in the guidelines, which exempts certain types of apps from having to offer IAP. The guidelines incentivize multi-platform apps. If all you have is an iOS version, IAP is required.

Damien Petrilli:

Same rules for all. Well this one was only for big corps er… hidden, but here, now it’s official. We cool?

I LOVE how Apple is basically just trying to legitimate their backroom deals by publishing some “official rules” before antitrust hearings to make a case they existed all along for everybody.

Previously:

Update (2021-10-05): Internal Tech Emails, quoting Peter Stern (Hacker News):

I also explained that we run a principled App Store, and they [Netflix] have a unique arrangement because it was struck before the existing Video Partner Program came into effect.

Previously:

Coalition for App Fairness

Coalition for App Fairness (Hacker News, MacRumors):

The Coalition for App Fairness is an independent nonprofit organization founded by industry-leading companies to advocate for freedom of choice and fair competition across the app ecosystem.

App Store Principles:

  1. No developer should be required to use an app store exclusively, or to use ancillary services of the app store owner, including payment systems, or to accept other supplementary obligations in order to have access to the app store.
  2. No developer should be blocked from the platform or discriminated against based on a developer’s business model, how it delivers content and services, or whether it competes in any way with the app store owner.
  3. Every developer should have timely access to the same interoperability interfaces and technical information as the app store owner makes available to its own developers.
  4. Every developer should always have access to app stores as long as its app meets fair, objective and nondiscriminatory standards for security, privacy, quality, content, and digital safety.

Good luck with #3.

30% “App Tax”:

Apple first introduced the 30% fee on apps in 2011, which forced many apps to go completely out of business. Treehouse, an online training platform, developed a reading-based app, iFlow Reader, which was one of many that fell victim to the imposed new tax. “Apple just dropped a nuclear bomb on all of us,” Treehouse declared publicly, stating that the “draconian new rules” had made it “impossible for anyone but Apple to sell books at a profit on iOS.”

It’s important to remind people that, contra Tim Cook’s testimony, the fee has not been the same since the beginning of the App Store. It has been applied to more apps and services over time.

Consumer Freedom:

The idea that a consumer could only use software sold through the same manufacturer as their laptop seems ludicrous. Except that’s exactly the rule Apple has imposed on the personal devices in billions of pockets.

Florian Mueller:

Here’s an overview of the founding members of the Coalition for App Fairness[…]

[…]

The diversity of those companies and their interests may appear to be a strength, but it will presumably be a challenge for them to agree on anything other than the benefits to them of reducing Apple's and Google's app distribution fees. That's because their business models are so different.

Marco Arment:

I don’t think I’ll be joining the Coalition for App Fairness because I don’t like other people speaking for me, but I’m glad these big companies are forming a stronger counterforce to the App Store’s policies than any of us could create on our own[…]

Also, one of the founding members is Blix, which has a history of sketchy behavior.

Previously:

Update (2020-09-28): See also: Core Intuition.

Update (2020-10-01): John Gruber:

What the Coalition for App Fairness is arguing is that Apple shouldn’t get to decide the standards for privacy (or security, quality, content, and whatever “digital safety” is) for its own platform — some other unnamed arbiter (perhaps the Coalition for App Fairness itself) would make such determinations.

Update (2020-10-09): Tom Warren:

Microsoft is making some firm commitments to the future of app stores on Windows today. The software giant has published 10 principles it’s adopting as promises to app developers, including that it won’t block competing stores on the platform or block specific business models an app may use to make money.

macOS 10.15.7

Apple (also: MacRumors, Mr. Macintosh, Howard Oakley):

macOS Catalina 10.15.7 provides important security updates and bug fixes for your Mac.

• Resolves an issue where macOS would not automatically connect to Wi-Fi networks
• Fixes an issue that could prevent files syncing through iCloud Drive
• Addresses a graphic issue that may occur on iMac (Retina 5K, 27-inch, 2020) with Radeon Pro 5700 XT

I have not yet heard anything about whether this fixes the remaining Mail data loss bug (dragging and dropping IMAP—and possibly Exchange—messages deletes them) that remains in macOS 10.15.6.

Previously:

Update (2020-09-28): Howard Oakley:

Among the bundled apps, only Mail has changed, by a small build increment from 3608.120.23.2.1 to 3608.120.23.2.4. Accompanying that are similarly small increments in many of Mail’s support files, including the MailMigrator plugin, private Email frameworks, and Mail and IMAP private frameworks. These are strong evidence that this update attempts to fix the remaining bug(s) in Mail, although Apple hasn’t mentioned that in its release notes. Let’s hope it succeeds.

Reader TheGeneralist says that the IMAP bug is still present.

Mr. Macintosh:

A few reports are coming in that the 10.15.7 update is causing problems with the accountsd (sync) process. After the 10.15.7 update, accountsd runs up to 400% CPU viewable in Activity Monitor. Only seems to happen with users that are signed into iCloud Drive Mail or Cal.

Xavi Moll:

Folks, it’s Monday morning and you’ll probably see Catalina 10.15.7 appear as an update. Don’t install it, it seems to cause issues with the Keychain that make the entire system crawl to death.

It seems that signing out of iCloud, rebooting and signing back in fixes the issue, at least for now 🤷‍♂️

Matthias Gansrigler:

I experienced this on my MacBook Pro (mid-2018). I let it ran for a while, force-quit accountsd (which didn’t help), let it run some more, then restarted, now it works as usual.

Update (2020-10-01): Joe Rossignol:

While this [accountsd] issue has popped up occasionally over the years, there has been a noticeable uptick in complaints across the Apple Support Communities, MacRumors Forums, Twitter, Reddit, Stack Exchange, and elsewhere since the release of macOS Catalina version 10.15.7, with users attempting to troubleshoot the issue.

[…]

Affected users have offered a wide range of potential solutions, but your mileage may vary.

Mr. Macintosh:

I’ve added 2 new fixes in the workarounds section below. One kills the cm.apple.iCloudHelper process and recreates the .sqlite database. The other was to remove Find My Mac then re enable it.

Jason Sims:

In case it helps someone, macOS 10.15.7 update broke Bluetooth for me. Reboot/zap PRAM didn’t help. Had to trash Bluetooth plist (~/Library/Preferences/ByHost/com.apple.Bluetooth…) and log out to fix it.

Peter N Lewis:

After the latest software update to 10.15.17, my Mac is basically sludge, with kernel_task taking 970% CPU. Sigh. It’s essentially unusable. I guess I’ll just go do something else and hope it eventually clears up. If not, shift-boot will be the next stop.

The recent Mojave security update has also caused problems and was pulled.

Update (2020-10-02): Mr. Macintosh:

Apple has just released a Mojave Supplemental Update that address all the problems that the previous Safari 14.0 and 2020-005 Security Updates!

Wednesday, September 23, 2020

PDF Liquid Mode

Adobe (Hacker News):

Building on this continued momentum, today we’re excited to unveil Liquid Mode — the first step in a multi-year vision to fundamentally change the way people consume digital documents, and how organizations extract document intelligence to gain a competitive advantage. Leveraging the power of Adobe Sensei — our cutting-edge AI framework — to understand the structure of PDFs, we have begun to reimagine how people read and interact with digital documents, starting with reinventing mobile productivity beyond the 8.5x11 page.

[…]

Manifesting the future of PDF, Liquid Mode delivers a breakthrough reading experience that enables a much easier way to read documents on mobile.

Harry McCracken:

In its initial form, Liquid Mode is a first pass at a long-term challenge. It doesn’t yet support some of the most familiar types of PDFs, such as forms, slideshows, scans, and files that are over 10 MB or 200 pages. It also rejected the PDFs I’d made using iOS’s screenshot feature, perhaps because they were too complex. Still, when it worked, it achieved the formerly impossible: It made reading a PDF on a phone . . . actually pretty pleasant.

[…]

The company flirted with the idea of creating an all-new format that was “much richer, much better,” and not necessarily compatible with PDF as we know it. “We did some engineering work,” Parasnis says. But it quickly concluded that PDF’s compatibility and pervasiveness were such powerful assets that breaking them on purpose would be a mistake.

[…]

Which brings up another question: Will all those folks who read PDFs in non-Adobe software ever get the chance to view them in Liquid Mode? For now, the feature is exclusive to Adobe’s Reader app[…]

The core problem is that PDF stores text based on how it’s laid out rather than based on the logical sequence of characters. So Adobe has to use AI to try to recover the original structure.

macOS Containers and defaults

Jeff Johnson:

If Terminal app has Full Disk Access, then defaults write com.apple.Safari is smart enough to use the preferences file in Safari’s container. But if Terminal does not have Full Disk Access, then defaults falls back to the preferences in the ~/Library/Preferences folder! So if you do defaults write com.apple.Safari IncludeInternalDebugMenu -bool true without Full Disk Access, it’ll write to ~/Library/Preferences/com.apple.Safari.plist, but that has no effect, because Safari is sandboxed and only reads preferences from its own container. Note that this happens even if there’s no old file at ~/Library/Preferences/com.apple.Safari.plist, because defaults will create a new file when necessary.

Previously:

Update (2020-11-02): See also: Dan Moren.

Anybuffer

John Voorhees (tweet):

I use clipboard manager apps in a couple of different ways on my iPhone and iPad. The first way is as long-term storage. I stash documents, snippets of text, and URLs that I need to send to people over and over, which is easier than digging around in the Files app or Dropbox.

Second, I use clipboard managers as a short-term holding pen for all sorts of information. Sometimes I’m combining an image, some text, and a URL from different apps. Other times, I find something I want to send to someone later, and I don’t want to lose track of it. Lately, I’ve been using Anybuffer for both situations. The app has been great, but with the latest version that supports widgets and the new iPad sidebar design, Anybuffer has taken a significant leap forward.

Anybuffer:

Anybuffer can’t autosave your clipboard if it is in the background, this is a limitation of iOS. This means that on iPhone you have to switch to Anybuffer to trigger auto add, on iPad the easiest way is to keep Anybuffer in Slide Over.

Why Public Betas?

Dr. Drang:

Of course, the reigning king of poor initial OS quality is iOS 13, whose many, many, many early releases would have been reminiscent of a silent movie comedy were it not for the loud groans coming from its users. But iOS 13 also had the great counter-example to public betas: the cursor/pointer support in iOS 13.4. Here was a major update kept hidden in Cupertino until it was sprung on the world in late March, and it pretty much just worked right from the start.

[…]

Which raises the question: what is the point of the public beta program? Is it really intended to improve the quality of the released version? If so, why do we keep hearing of bugs that are reported but persist throughout the beta cycle? Whatever its original purpose, the public beta program is now a marketing tool—a way to get Apple enthusiasts hyped about the new releases and hyped to buy the new products that come out alongside the new software.

Previously:

Tuesday, September 22, 2020

Forbidden Controls in Catalyst’s Mac Idiom

Peter Steinberger:

With macOS 11 Big Sur, Catalyst learned a new presentation mode. Next to the classic mode where Catalyst apps are scaled to 77% and retain their iPad-look, there’s a new Optimize Interface for Mac mode that doesn’t use scaling and replaces various UIKit controls with AppKit counterparts.

[…]

Back to our crash - things make a bit more sense now. There’s no great equivalent for UIStepper in AppKit, so the folks at Apple decided it’s better to throw an exception if this control is used. FB8727188

The problem: It’s not documented which controls are disallowed, and even more problematic, some controls are allowed, but customizations are disallowed.

Previously:

“New Look” Outlook Shipping in October

Tom Warren (also: MacRumors):

Microsoft has been testing a new Outlook for Mac design over the past year, and it’s now ready to roll out to all users next month. The new design includes Microsoft’s Fluent icons, rounded corners, and changes to make the email app ready for macOS Big Sur.

Microsoft’s Ribbon interface has been removed, and everything looks a lot cleaner. It’s a hybrid of Apple’s macOS design and Microsoft’s own Fluent design.

[…]

While the design is the main change, there are some significant changes that won’t be as visually obvious. Microsoft is bringing its sync technology that’s used on Outlook for iOS and Android and Windows Mail to this version of Outlook for Mac. It means Office 365, Outlook.com, and even Google accounts will sync faster thanks to Microsoft’s cloud services.

However, it still lacks support for regular mail accounts (IMAP, Exchange, and POP), rules, AppleScript, and more. Presumably, you’ll still be able to switch off the new version within the app.

Scam Apps and Fleeceware

Dan Goodin:

Posing as apps for entertainment, wallpaper images, or music downloads, some of the titles served intrusive ads even when an app wasn’t active. To prevent users from uninstalling them, the apps hid their icon, making it hard to identify where the ads were coming from. Other apps charged from $2 to $10 and generated revenue of more than $500,000, according to estimates from SensorTower, a smartphone-app intelligence service.

The apps came to light after a girl found a profile on TikTok that was promoting what appeared to be an abusive app and reported it to Be Safe Online, a project in the Czech Republic that educates children about online safety. Acting on the tip, researchers from security firm Avast found 11 apps, for devices running both iOS and Android, that were engaged in similar scams.

Many of the apps were promoted by one of three TikTok users, one of whom had more than 300,000 followers. A user on Instagram was also promoting the apps.

[…]

Last month, researchers discovered more than 1,200 iPhone and iPad apps that were snooping on URL requests users made within an app. This violates the App Store’s terms of service.

Jagadeesh Chandraiah (in April, via Nick Heer, Slashdot):

In this latest round of research, we found more than 30 apps we consider fleeceware in Apple’s official App Store.

Many of these apps charge subscription rates like $30 per month or $9 per week after a 3- or 7-day trial period.

[…]

Many of the fleeceware apps we see are advertised within the App Store as “free” apps, which puts the apps at odds with section 2.3.2 of the App Store Review Guidelines, which require developers to make sure their “app description, screenshots, and previews clearly indicate whether any featured items, levels, subscriptions, etc. require additional purchases.”

Since iOS already requires apps to be sandboxed, the real protective value of the App Store is that in theory it won’t contain these sort of deceptive apps. But, for whatever reason, many of them seem to get through App Review and stay on the store for long periods of time.

Previously:

Update (2020-09-28): Simeon:

I’m baffled that Apple allows this. There are colouring books selling $600/yr subscriptions. They’ve tricked my parents who swore off paying for apps afterwards

It’s doing obvious damage to customer trust in the App Store, and it’s bad for every developer’s business

Rosyna Keller:

Despite what the article, headline, and lead graphic say, the source article clearly states the hidden app icons and full screen ads only apply to Android as Android allows apps to set those properties. iOS doesn’t.

Secrets Remote Keychain

Paulo Andrade:

With this update you can now use Secrets on your iOS device as a remote keychain for filling Logins and Credit Cards on a browser running on another machine, such as on Windows or Linux.

[…]

With the updated browser extensions for Firefox and Chrome you can now pair one or more iOS devices to serve as a remote keychain. The pairing works by simply reading a QR Code from the extensions’s options page.

Then, when you get to a page with a login or payment form, you just click the Secrets toolbar icon on your browser and a request is sent to your paired devices via push notifications.

I could also see this being useful on a secondary Mac, where you may not want to or be able to store your database locally.

Previously:

Repairing by Replacing

Luke Tully (via Hacker News):

To be clear, the vast majority of my experiences with Apple Support have been pretty good. Sometimes it takes a little bit of work, but I’ve generally ended up better off than before with few exceptions. This was the single most dissapointing interaction I’ve had with any tech support rep as far as I can recall. The numbers Joe suggested in this conversation are either entirely fabricated, or belong to the cost of replacing the entire machine if its experienced catastrophic damage. But, after clarifying numerous times about what the numbers actually represent and comparing to previous repair bills for the same issue, my belief is that the rep used a false and obscured repair order to persuade me to replace my girlfriend’s minimally damaged screen with a new computer.

For decades, my experience with Apple hardware was that it was very reliable. Sometimes an issue would crop up in the first year or so and get fixed under warranty. After that, it would essentially keep working “forever.”

Lately, I’ve had bad luck, with issues appearing after AppleCare has expired. My iPad mini and iPhone SE both swelled so that the display separated from the case. Apple’s support advised that this was probably due to the battery, so the devices were not safe to use. But the costs to repair, even though I consider this a defect rather than user error, were almost as much as buying a new device.

The display of my Mac, which has never left my desk, is also detaching from the case. I doubt there is a safety issue, though, so I just keep using it.

Previously:

Monday, September 21, 2020

A Visual History of System Preferences

Arun Venkatesan:

Early versions of OS X until 10.3 included a favorites bar at the top where users could drag and drop their favorite settings. In 10.4, this was removed and replaced with the search feature that highlights matching icons as you type a query.

[…]

In the first OS X Public Beta, a shade drawn over a window represented Energy Saver. Before release, the now recognizable light bulb took its place.

Over the years, the icon has represented the most efficient light bulb technology of the time. So, in 10.5, the icon changed from an incandescent bulb to a more efficient compact fluorescent. Then, in 10.10, the light bulb changed again to an LED design.

Via Nick Heer:

I particularly appreciated this explanation of the two different dates often seen in Apple’s calendar-related icons[…]

Previously:

Update (2020-09-28): Ken Harris:

You can see exactly the moment in 2013 when @Apple said “fuck it, I’m just gonna make this text GRAY” and then “oh yeah? HOLD MY BEER”

Contrast Ratios

NetNewsWire 5.1 for Mac

Brent Simmons:

The announcement on the NetNewsWire blog has the full scoop, including a download link.

[…]

New features (to NetNewsWire for Mac) include Feedly syncing, a Reader view, the ability to hide read articles and feeds, swipe actions in the timeline, support for non-ASCII characters in URLs, and more.

Friday, September 18, 2020

Safari 14

Juli Clover:

Safari 14 brings improved performance, customizable start pages, a Privacy Report to see which cross-site trackers are being blocked, and a new tab bar design that provides tab previews so you can see what you have open at a glance. Today’s update also removes Adobe Flash.

I’m seeing a bug [Update (2020-09-19): fix] that affects sending the selected text to a system service or Quick Action.

Simo Ahava:

For the first time, WebKit’s tracking prevention measures are exposed to the user (beyond enabling the Intelligent Tracking Prevention debug mode).

[…]

The Privacy Report means, quite simply, that WebKit’s global tracking protections, such as truncating all cross-site referrers and blocking all cookie access in third-party context have been applied to all the cross-site HTTP requests sent from the site, including but not limited to those shown in the Privacy Report.

The purpose of this approach is without a doubt to just show how the biggest trackers on the web have been prevented from cross-site tracking, but the measures are not limited to just these domains. Nor are WebKit’s ITP measures applied to these domains automatically (I repeat: WebKit does not use blocklists - it classifies domains algorithmically).

Jeff Johnson:

The Safari 14 release notes didn’t mention an important new feature: support for web extensions. Probably because there aren’t any Safari web extensions yet! But support is indeed there for web extensions in Safari 14 for Catalina and Mojave. Previous versions of Safari already had support for Apple-specific app extensions, such as my own StopTheMadness, but Safari 14 also supports the cross-platform WebExtensions API used by Firefox and Google Chrome. Unfortunately, that support is not complete. Ever since the Big Sur beta was released at WWDC in June, I’ve been working on a brand new Safari web extension that I’m really excited about, and I think you will be too. I would love to release it now that Safari 14 is publicly available, but I can’t, because I found a bug in Safari’s web extension support that’s a showstopper for my extension. In short, the bug is that run_at document_start is not reliable in Safari.

Update (2020-09-28): Lloyd Chambers:

Some websites that used to work fine, e.g., Chase.com are drawn with a blank area, a refresh is required.

Save Image As... is not working at all. I get a rainbow beachball, then nothing.

Update (2020-12-08): Mr. Macintosh (MacRumors):

Apple has just released a Mojave Supplemental Update that address all the problems that the previous Safari 14.0 and 2020-005 Security Updates! This news comes one day after Apple pulled both software updates from the software update catalog.

The State of SwiftUI

Peter Steinberger (tweet, 2, Hacker News):

Since then, there have been many betas, and we’re nearing the end of the cycle, with the [Big Sur] GM expected in October. So it’s time to look at Fruta again. And indeed, the SwiftUI team did a great job fixing the various issues: The toolbar is pretty reliable, the sidebar no longer jumps out, multiple windows works… however, views are still sometimes misaligned, and it’s still fairly easy to make it crash on both macOS (FB8682269) and iOS 14b8 (FB8682290).

[…]

Most SwiftUI crashes are a result of either a diffing issue in AttributeGraph, or a bug with one of the bindings to the platform controls (AppKit or UIKit). Whenever you see AG::Graph in the stack trace, that’s SwiftUI’s AttributeGraph (written in C++), which takes over representing the view hierarchy and diffing. […] Googling for this error reveals that there are a lot of similar problems.

[…]

This isn’t unique to Fruta. I’ve been taking a look at @Dimillian’s RedditOS app, which is built with SwiftUI on macOS. He stopped development because it’s so slow that it’s not shippable.

This is sad because stability and speed are supposed to be the selling points of Swift.

Frank Reiff:

On the Mac, Swift UI is so far away from being practical that Apple might well have moved on to the next technology before it is.

Mac apps need to be backwards compatible for at least 5 years, so if Swift UI is ready in 2022, it can’t be used until 2027.

It will be really interesting to see what happens with companies like Omni Group who try to go all-in on SwiftUI. On the Mac side, it just doesn’t make sense to me at this point, both because of the limitations with first responder and more advanced controls and because of the potential bugs and performance issues. Making the easy stuff even easier doesn’t seem worth possibly painting yourself into a corner. Also, roughly 1/3 of my customers can’t run SwiftUI apps at all.

Nathan Lawrence:

I wouldn’t use Fruta as a model for SwiftUI, even though Apple does.

It’s not well structured, it has huge bugs, cruft from different approaches to certain problems that got abandoned months ago…it’s not an illustration of the framework or its inner mechanics at their best.

I think what you learn when you build with SwiftUI at any kind of magnitude is that you’re a little on your own. Many approaches that experts or instructors (including at friggin Stanford University!) offer are just plain nonfunctional or inefficient.

This is not because SwiftUI is broken — there are some decisions I disagree with, sure, and often those decisions can be a big enough problem the require some workarounds or extra coding of your own - but because it’s poorly documented and explained. It is evolving so fast.

Roshan Choxi:

For frontend designers and developers trying to deal with building UI that runs across dozens of devices, the goal of “write once, run anywhere” has been the panacea of UI development. If anyone had the motivation, talent, and platform control to achieve this goal it would be Apple. And I believe they have been largely successful with SwiftUI.

[…]

As great as SwiftUI does at universal UI code, it demonstrates that there is still a large amount of code that needs to be specific to the device because of the spectrum of different sizes, inputs, accessories, and hardware performance of different devices.

Steve Troughton-Smith:

As a situational tool, SwiftUI is awesome. There’s no way I’d trust it to build an app directly, it’s nowhere near reliable enough for that, but it’s great for providing the content views for your UIKit view controllers and reducing so much manual layout code or storyboard work

Damien Petrilli:

My favorite SwiftUI bugs: when it crashes internally without knowing which line of code is involved so you have to troubleshoot, line by line, without any clue.

Samuel Coe:

I can’t bring myself to release this horribly buggy experience to users (thanks SwiftUI).

My faith that Apple fixes this is low and I’m feeling really let down that these keyboard-avoidance issues weren’t fixed in Beta.

This is a big lesson learned for me.

Previously:

Update (2020-09-28): Michael Buckley:

I feel pretty bad about all the time I spent trying to make SwiftUI work at Panic. The idea behind it is great, the actual design has some issues, but the implementation has been a nightmare to work with compared to AppKit or UIKit.

Steve Troughton-Smith:

My determination last year was that SwiftUI was a fantastic tool if used as a replacement for Interface Builder; spending a lot more time with it this year I think that’s just as true today. Takes about the same amount of time to lay out a UI, but SwiftUI leaves you with code

Code is great because you can refactor it. Localize it. Switch container types by renaming them. Copy/paste properties between views. Extract previously-static metrics to properties and tweak them dynamically layout-wide. Use ifs and ifdefs for conditional views & layout

Even if you’re wrapping UIKit (/AppKit), and don’t trust SwiftUI for actual app logic (I definitely don’t), I feel like moving from nibs & storyboards to SwiftUI should be high on your priority list. I’m genuinely surprised there isn’t a SwiftUI replacement for launch storyboards

Previously:

Apple Says Epic Is “Saboteur, Not a Martyr”

Tina Davis (Slashdot, 9to5Mac):

In an overnight filing, Apple said “Epic started a fire, and poured gasoline on it, and now asks this court for emergency assistance in putting it out.” Epic can fix the problem “by simply adhering to the contractual terms that have profitably governed its relationship with Apple for years.”

How can they do that when Apple terminated their account said “we will deny your reapplication to the Apple Developer Program for at least a year”?

Apple told the court that removing the game from its store wasn’t anticompetitive because Epic’s players can use other mobile devices or PCs, laptops, or gaming consoles. “Only a fraction of Epic’s customers access Fortnite using an iPhone, and Epic’s revenues from other platforms greatly exceed its revenues from iPhone players,” Apple said.

Florian Mueller:

The numbers that Apple’s opposition brief provides speak a clear language:

“Apple has taken this approach thousands of times with other developers and their affiliates.”

[...]

“Apple has terminated over 75,000 unique accounts for introducing new features without going through App Review; over 2,000 accounts for introducing a non-IAP payment method; and over 60,000 accounts for introducing hidden features or obfuscating code (for example, by installing executable code).”

[...]

“Apple does not wait to be fooled a second time before terminating an affiliate for the bad deeds of its principals.”

So it’s not just that the language of Apple’s contracts allow such termination; it’s routinely done.

Florian Mueller:

Apple’s filing furthermore explains that Unreal Engine is not the market leader--Unity is. While Unreal Engine is, according to Apple, “used by a minuscule fraction of iPhone apps,” Unity (which my app development company uses as well) “characterizes itself as ‘the world’s leading platform for creating and operating interactive, real-time 3D content,’ and is available for ‘more than 20 platforms, including Windows, Mac, iOS, Android, PlayStation, Xbox, Nintendo Switch, and the leading augmented and virtual reality platforms, among others.’” Apple goes on to say that “Unity is used by the overwhelming majority of Apple developers that use a graphics engine.”

M.G. Siegler:

I don’t think that Apple, while they might be explicitly following the letter of what Jobs said back then, I don’t think they’re following the intents of what was implied by what he was saying. If you go back and read those quotes, I think he’s basically saying, look, we’re launching this new in-app purchase service because we’re trying to make the best user experience for people to be able to transact within our apps and on our devices. And we think that we can create a better experience for those users using what at the time was the iTunes Rails to be able to pay for these subscription services, and now it’s obviously all run through the App Store. And if you feel like, if you’re a service that brings in your own users a different way and you can do that, that’s great, you get to keep all of that money. And if they choose to use our Rails to do it, then we’ll take that 30% cut.

And we can talk about the 30% cut itself in a second, but I just think that Apple has deviated from that mentality and now it’s all just like, how do we make sure that we are getting that 30% cut and they are signing up are via our mechanism. So it feels like they’re not so much competing on having the best experience or product necessarily anymore. They’re competing on obfuscation and trying to make it confusing and/or just like impossible to sign up.

[…]

I think that they should get a lot more granular in terms of how they support those types of businesses and recognize that not every type of business necessarily should be taking a 30% cut of their revenue out of, and I know that they’ve changed it slightly over the years. They have the 30% finder’s fee that again morphs into a 15% thing in year two and whatnot. But some of that was just because of back-end deals that they cut with some of the other bigger players like Amazon, and then they felt like probably some level of hypocrisy if they didn’t offer it to everyone, but there’s still a lot of hypocrisy going on behind the scenes.

Bobby Allyn (via Hacker News):

“It’s not just Epic being exploited by Apple, but it’s every developer who goes along with that scheme colluding with Apple and Google to further their monopoly,” Sweeney said in the interview. “These stores are making a lot more money from creative works than the creators.”

[…]

A 30% fee on new technologies in the future, Sweeney says, can stifle innovation. And more than that, “it’s going to be one of the worst dystopias you can imagine from the science fiction literature with a few corporations controlling not just digital items and games but everything,” he said.

The Fortnite Team:

Apple is preventing Epic from signing games and patches for distribution on Mac, which ends our ability to develop and offer Fortnite: Save the World for the platform. Specifically, our upcoming v14.20 release will cause bugs for players on v13.40, resulting in a very poor experience. Since we are no longer able to sign updates and release fixes for these issues, beginning September 23, 2020, Fortnite: Save the World will no longer be playable on macOS.

We are issuing a refund for all players who purchased any Save the World Founder’s or Starter Packs (including Upgrades) and played Save the World on macOS between September 17, 2019 and September 17, 2020. Additionally, any purchased V-Bucks spent on Llamas on macOS in this period will also be refunded.

Current Mac versions of Fortnite are signed with the Epic Games International certificate, which hasn’t been revoked. That account is otherwise used for Unreal Engine and related sample apps. In theory, Epic could sign new Fortnite builds with this certificate, but Apple would see that as trying to get around the termination of the main Epic account and perhaps endanger Unreal Engine.

Previously:

Thursday, September 17, 2020

Swift 5.3 Released

Holly Borla:

Swift 5.3 significantly improves both binary code size and runtime memory usage. Measurements of these improvements have yielded exciting results across various projects[…]

[…]

The automatic indentation implementation in SourceKit was overhauled in this release, fixing ~50 feedback reports in the process.

[…]

Repeated code completion invocations inside function bodies are now up to 15 times faster compared to Swift 5.2.

[…]

Swift 5.3 builds upon the diagnostics improvements in Swift 5.2 to further enhance the quality and precision of error messages, especially in SwiftUI code. More specifically, the transition to the New Diagnostics Architecture is now complete in Swift 5.3!

Previously:

Setting Default Apps in iOS 14

Chance Miller:

One of the new features in iOS 14 is the ability to change the default email or browser app to a third-party alternative such as Chrome, Edge, or Outlook. A bug in the first public release of iOS 14, however, causes your default browser or mail app setting to reset to Mail or Safari when your iPhone or iPad reboots.

You can tell which features and services Apple uses a lot internally.

Tim Hardwick:

The latest version of Google Chrome now supports this ability, so anyone on iOS 14 can set Google’s app as their default browser and it will be used to automatically open web page links that are tapped in other apps.

Juli Clover:

Privacy-focused browser DuckDuckGo is now able to be set as the default browser app on the iPhone and the iPad, serving as an alternative to Safari. With DuckDuckGo set as the default, links that you tap on an iPhone or iPad will open in DuckDuckGo instead of Safari.

Juli Clover:

Microsoft has updated its Outlook app for iOS devices to enable support for the new iOS 14 feature that lets third-party mail and browser apps be set as default apps (via The Verge).

Khaos Tian:

The default browser implementation is really lame…this alert will show all the time when you try to open a link 😒

I haven’t seen other complaints about this, so hopefully it was fixed in the GM.

Peter Steinberger:

PSA [to developers]: You want to add http/https to LSApplicationQueriesSchemes.

Previously:

Update (2020-09-22): John Voorhees:

New alternatives are being released all the time[…]

[…]

As easy as the process of switching is, though, the feature is not bug-free. I have been unable to get iOS or iPadOS to recognize my new default email client after I switch it.

Update (2020-09-28): Juli Clover:

iOS 14.0.1 fixes a bug that could cause third-party apps set as the default to reset after the iPhone is restarted. It

Chris Welch:

But many other categories of apps — messages, music, calendar, etc. — remain stuck on Apple’s built-in software. Facebook isn’t too pleased about that. According to The Information, Facebook is making a more forceful push to convince the iPhone maker to let people choose their own preferred messaging app.

Update (2020-10-22): Hartley Charlton:

Although that bug was fixed, a new bug in iOS 14 and iPadOS 14 is now afflicting the selection of third-party email apps and browsers. It appears that whenever a selected third-party app is updated, the default app selection for email app or browser is reset to Apple’s Mail or Safari.

They really didn’t want to add this feature. Imagine how well sideloading will work if it’s ever mandated.

Update (2022-06-30): Christian Selig:

[When] Apple added the option to set a different default email app, their API, MFMailComposeViewController, for whatever reason wasn’t updated to support this so you have to rely on mailto:// links that don’t support attachments, etc.

Sleep Is Now in Health

Philipp Defner:

I’m using the iOS Bedtime feature for years now. With yesterday’s iOS 14 update the feature got moved from the Clock app to the Health app. Unfortunately the migration is done by disabling your existing alarm and showing a button to open the Health app to set it up again.

This is the sort of detail that Apple should get right. The Automatic Updates setting was similarly not migrated properly, although that was likely less consequential than causing people to wake up late.

Previously:

Wednesday, September 16, 2020

Authoring Mac Help Books in 2020

Mario Guzman (tweet):

Apple’s own documentation for Apple Help has moved to the documentation archive on their developer site. You’ll find tons of questions on Stack Overflow and other… more questionable sites. Apple did do a minor revision to their documentation back in 2013. 2013!!!

By now, 2020, Apple Help is neglected and well, crusty. Very crusty (no, not that Crusty). It still works but certain parts of it don’t seem to work as well anymore. Not sure why it’s neglected. They advise you include a Help Book in their HIG that was recently published — and they link to the documentation (from 2013). Personally, I think they have a lot of potential and a lot to offer. I just wish this was a component at Apple that would get some attention in both development and documentation.

[…]

I spent countless hours and days trying to piece together all the information from all corners of the internet to build a Help Book. It was super frustrating and excruciatingly time consuming. I don’t want anyone else to feel this way so I hope this speeds things up for the next Mac Developer who wants to include a Help Book with their awesome app!

I prefer the hiutil command-line tool over the Help Indexer app because I can invoke it from my build script.

Previously:

Tageslicht 1.0

The Coding Monkeys:

If you find yourself frequently in the vicinity of great TV screens with AirPlay support, this app is for you. For us and our famlies it has become second nature to just project our foto library onto them to have a great group experience. However, every now and then we want to show something physical too. But if you just mirror the built in camera or loupe app, you never get a pleasant result. Black bars, incorrect rotation or the touch interface icons overlaying everything.

With Tageslicht you now have a great experience streaming your camera so it fills the screen, is low latency, and shows exactly what you want it to show.

What’s Left to Do After Migration?

Adam Engst:

During the setup of the new iMac, I had no issues migrating all my data from the Samsung T5 SSD that I had been using to boot the old iMac, but I was somewhat surprised at how much additional work was necessary afterward. The promise implicit in Setup Assistant’s migration is that you won’t have to reconfigure everything and can just get back to work.

It’s a nice idea, but in reality, there are numerous areas where Setup Assistant simply doesn’t—and probably can’t—save you from additional work. All of these relate to how the underlying identity of the Mac has changed, even if its name and the names of all the drives in play remain the same.

[…]

However, there are also a few instances of apps that have requested permission to something on the old Mac that did not migrate to the new one.

Wikipedia Matters

Marit Hinnosaar et al. (PDF):

We document a causal impact of online user-generated information on real-world economic outcomes. In particular, we conduct a randomized field experiment to test whether additional content on Wikipedia pages about cities affects tourists’ choices of overnight visits. Our treatment of adding information to Wikipedia in- creases overnight stays in treated cities compared to non-treated cities. The impact is largely driven by improvements to shorter and relatively incomplete pages on Wikipedia. Our findings highlight the value of content in digital public goods for informing individual choices.

Via Ethan Mollick:

Adding two paragraphs of text & nice pictures to randomly selected articles about small European cities led to an over 9% increase in hotel stays; the edit is worth $190k per year!

Ethan Mollick:

As any academic will tell you, influencing the direction of science through research is hard... so here is an easier path. One quality Wikipedia article written by chemistry experts influenced the content of 250 published peer-reviewed academic papers!

Wikipedia is an MMORPG (via Hacker News):

One theory that explains the addictive nature of Wikipedia and its tendency to produce Wikipediholics is that Wikipedia is a massively multiplayer online role-playing game (MMORPG). The following article explains how Wikipedia shares many characteristics with MMORPGs.

Tuesday, September 15, 2020

Apple One

Apple (MacRumors, Hacker News):

  • Individual includes Apple Music, Apple TV+, Apple Arcade, and 50GB of iCloud storage for $14.95 per month.
  • Family includes Apple Music, Apple TV+, Apple Arcade, and 200GB of iCloud storage for $19.95 per month, and can be shared among up to six family members. 
  • Premier, where available, includes Apple Music, Apple TV+, Apple Arcade, Apple News+, Apple Fitness+, and 2TB of iCloud storage for $29.95 per month, and can be shared among up to six family members.

Update (2020-09-22): Ben Thompson:

To me the biggest hangup is the first one: the degree to which a bundle is compelling is the degree to which it is integrated with and contributes to a company’s core business model, and, in contrast to these other four companies, it’s a bit of a stretch to see how Apple One really move the needle when it comes to buying an iPhone or not.

Update (2020-09-28): Tanner Bennett:

Great ATP segment on the shortcomings of Apple zone by @siracusa

iOS 14 Shipping Tomorrow, Xcode 12 GM

Joe Rossignol:

Apple today announced that iOS 14, iPadOS 14, watchOS 7, and tvOS 14 will be officially released on Wednesday, September 16.

This makes perfect sense considering that the iOS 14 GM and Xcode 12 GM have been available since this afternoon. So developers have several hours in which to test and submit their updates and get them approved in the App Store.

The download page for Xcode 12 GM says:

Xcode 12 includes everything you need to create amazing apps for all Apple platforms. Includes the latest SDKs for iOS, watchOS, and tvOS, and macOS Catalina. For development on macOS Big Sur or to support Apple silicon, continue to use Xcode 12 beta 6.

Presumably, final development for Big Sur will require a forthcoming Xcode 12.1. I’m not sure why they couldn’t put the Big Sur SDK in Xcode 12.0, though. This makes development more complicated.

Update (2020-09-16): Juri Pakaste:

So “Time Flies” referred to the iOS release schedule, huh

Jesse Squires (Hacker News, also):

Given the increasingly tenuous relationship that Apple has with developers, I do not understand how it could be in their interest to act like such an asshole right now. Not to mention, it is unlikely that they will even be able to review all of these app submissions in time. We already do not feel valued due to the aforementioned issues, and this is an outright negligent response to developer relationships the company has damaged over the past few years. Announcing that iOS 14 ships tomorrow with virtually no notice to developers is yet another breach of trust, another disappointment, and quite frankly feels like a big ‘fuck you’ to developers.

Paul Haddad:

“Dear iOS dev. Because of X we had to make some tough choices and release iOS 14 without enough time for you to prepare. We’ll be doing Y to prevent this from happening again. We’re sorry.”

Would go a long way. Will never happen.

Josh Avant:

Talked to iOS lead at a popular app. Apple made their usual petition to develop new-to-iOS 14 features for launch day. Things were broken in betas, are still broken in GM, and this whole kerfuffle has prevented them from shipping + being day one partner Apple asked them to be.

Peter Steinberger:

Apple removed OSLogStore completely from iOS with the GM release. This is a surprising move and really sad.

The removal of this API will make logging slower and less secure for everyone.

Marco Arment:

I thought I was being smart by submitting an update built with the 13 SDK on Monday, a day before the likely 14 GM release and rush of submissions.

I think it backfired. 14 SDK apps are being prioritized and reviewed in record time. I bet 13 apps are at the bottom of the queue.

Xcode Releases:

The website and API have been updated. To keep things “simple”, 12A7209 has replaced 12A7208.

Seán Labastille:

For posterity: The tale of two Xcode 12 GMs — 12A7208 and 12A7209, built only days apart and yet at least a week before their sudden release.

Interestingly builds from 12A7208 have been approved for the App Store.

Update (2020-09-17): Matt Birchler (also: MacRumors):

Why do devs want to have updates out on the day (and ideally time) new iOS versions come out? Well, customers are going to install the update and hear about things like widgets that are flagship features. Customers are going to look for apps that have widgets, and Apple is going to feature apps that did updates to use the new features. Major sites like 9to5Mac and Techcrunch are going to feature lists of apps that use the new features, also driving sales.

[…]

iOS 14 updates need to be built using the final build of Xcode, which was also released yesterday afternoon. That means even if you were done weeks ago, you need to rebuild your app with the new version of Xcode.[…]

Jason Snell:

I’d really love to know why Apple ended up releasing the software in this fashion. I want believe that it was just an unfortunate chain of events that forced this timing. Clearly the App Review team was prepared for an onslaught of app submissions from surprised developers, so someone at Apple knew this was coming.

Juli Clover:

Apple has released iOS 14 and iPadOS 14, the newest operating system updates designed for the iPhone and iPad.

Update (2020-09-18): Renaud Lienhart:

Releasing the GMs 24h before the public release is indefensible, if not solely for the fact that Xcode 12.0 crashes simply opening the Documentation Viewer.

Update (2020-09-22): Howard Oakley:

As millions of users were upgrading their iPhones to iOS 14, its third-party developers were in for another of Apple’s treats: suddenly, the first beta of iOS 14.2 was released to them for testing. Not 14.1, which presumably fixes some of the bugs already known to have missed the premature release of 14.0, but 14.2. In just three sleepless days and nights, iOS developers had been shot from 14.0 beta to 14.2 beta.

Somehow Apple managed to expedite product review for tens or even hundreds of thousands of apps, although I suspect that review wasn’t as thorough (pernickety, according to many developers) as usual.

Technology Evangelist:

This [documentation crash] affects Xcode 12 when downloaded from the Mac App Store. We’re aware of the problem and we’re working on a fix.

As a workaround in the meantime, documentation is available on developer.apple.com, or if necessary, Xcode 12 can be downloaded from the More Downloads area.

Update (2020-09-28): See also: Will Hains, The Talk Show.

Xcode Releases:

This version appears to fix the issue with the documentation window crashing the app.

Still no sign of a 12.0.1 direct download.

iPad 8 and iPad Air

Apple (MacRumors):

Apple today introduced the eighth-generation iPad, featuring the powerful A12 Bionic chip that brings the Neural Engine to the entry iPad for the first time. Starting at just $329, the upgrade packs even more value into the most popular and affordable iPad, featuring a stunning 10.2-inch Retina display, advanced cameras, and great all-day battery life.

Apple (MacRumors, Hacker News):

Apple today introduced an all-new iPad Air — the most powerful, versatile, and colorful iPad Air ever. Now available in five gorgeous finishes, iPad Air features an all-screen design with a larger 10.9-inch Liquid Retina display, camera and audio upgrades, a new integrated Touch ID sensor in the top button, and the powerful A14 Bionic for a massive boost in performance, making this by far the most powerful and capable iPad Air ever made.

[…]

Wi-Fi models of iPad Air will be available with a starting price of $599 (US) and Wi-Fi + Cellular models start at $729 (US). The new iPad Air, in 64GB and 256GB configurations, will be available in five beautiful finishes including silver, space gray, rose gold, green, and sky blue.

Here’s the event coverage.

Previously:

Update (2020-09-16): Gene Munster:

Biggest news saved for last: iPad Air priced at $599 is up from previous $499 price. Evidence that Apple continues to experience huge iPad demand and company confident that the 20% price increase won’t slow that down. We estimate iPad is 11% of total revenue and iPad Air is 4%.

David Ruddock:

Re: Education

iPad being 6x faster than the “best selling chromebook” is meaningless as long as iPads are comparatively expensive ($300 + keyboard + case), fragile, and ridiculously difficult to administer on the IT side.

Nothing about today changes any of that.

Update (2020-09-17): John Gruber:

But what’s most remarkable about the new iPad Air are two technical firsts: it’s the first device with an A14-series SoC and the first Apple device with a Touch ID sensor in the power button.

[…]

Touch ID in the iPad Air’s power button raises the question of whether that might be true for the iPhone 12 as well — not as a replacement for Face ID but as a face-mask-friendly supplement to it. I’m going to guess no. I think this pandemic struck far too late for ubiquitous face-mask-wearing to factor into Apple’s design for the iPhone 12. But it’s interesting to think that the mid-range iPad now has a feature millions of people would rather see in high-end iPhones.

Mark Wilson:

The button looks like just the sort of micro engineering feat that Apple is so good at. It’s comprised of a laser-cut sapphire top (a hard glass, essentially), a tiny stainless steel frame, and a rectangular sensor underneath. But on the outside, it looks and works pretty much like the Apple power button always has. There’s no aesthetic compromise or new gesture for the user to learn. It’s simply a boring old component given an apropos upgrade. (In fairness to who did it first, Samsung has a similar button in its Galaxy S10e.)

Craig Grannell:

Now the iPad Air has USB-C out, Apple’s seeming reluctance regarding full external display support for iPad is increasingly baffling. Surely the ideal should be to position the iPad as a fully modular device that promotes strong ergonomics?

Jason Snell:

But in scrupulously adhering to the comparisons to the A12, Apple is not telling us how much faster the base A14 processor—likely the foundation of the next generation of iPad Pro models and possibly even the first round of Macs running Apple Silicon—is compared to its immediate [predecessor].

[…]

I don’t think Apple’s doing this because it’s not proud of the A14. (On the contrary, Apple seems very aware of how important this chip is, including the fact that it’s Apple’s first to be manufactured using Taiwan Semiconductor’s new 5-nanometer process.) No, this is about leaving some space for Apple’s forthcoming iPhone launch event to boast a bit more about the A14.

Apple Watch Series 6, SE, and Fitness+

Apple (MacRumors, Hacker News):

Apple today announced Apple Watch Series 6, introducing a revolutionary Blood Oxygen feature that offers users even more insight into their overall wellness. Apple Watch Series 6 delivers many notable hardware improvements, including a faster S6 System in Package (SiP) and next-generation always-on altimeter, along with its most colorful lineup yet, featuring a beautiful palette of new case finishes and bands.

[…]

Using a new dual-core processor based on A13 Bionic in iPhone 11, the upgraded S6 SiP runs up to 20 percent faster, allowing apps to also launch 20 percent faster, while maintaining the same all-day 18-hour battery life. Additionally, Apple Watch Series 6 features the U1 chip and Ultra Wideband antennas, which will enable short-range wireless location to support new experiences, such as next-generation digital car keys. Apple Watch Series 6 offers faster charging, completing a full charge in under 1.5 hours, and improved battery life for tracking certain workouts, such as indoor and outdoor runs.

[…]

Apple Watch Series 6 (GPS) starts at $399 and Apple Watch Series 6 (GPS + Cellular) starts at $499.

Apple (MacRumors):

Apple today announced Apple Watch SE, packing the essential features of Apple Watch into a modern design customers love — all at a more affordable price. The largest and most advanced Retina display allows customers to easily see more details and the information that matters most, right on their wrist. Apple Watch SE features the same accelerometer, gyroscope, and always-on altimeter as Apple Watch Series 6, and with the latest motion sensors and microphone, it offers robust health and safety capabilities including fall detection, Emergency SOS, international emergency calling, and the Noise app.

[…]

Apple Watch SE (GPS) starts at $279 and Apple Watch SE (GPS + Cellular) starts at $329.

Juli Clover:

With the launch of the Apple Watch Series 6, Apple has discontinued the higher-end premium ceramic Apple Watch models that were previously available.

Apple (MacRumors, Hacker News):

Apple today unveiled Fitness+, the first fitness experience built for Apple Watch, arriving later this year. Apple Fitness+ intelligently incorporates metrics from Apple Watch for users to visualize right on their iPhone, iPad, or Apple TV, offering a first-of-its-kind personalized workout experience. Everyone from beginners to committed exercisers can access studio-style workouts delivered by inspiring world-class trainers and underscored by motivating music from renowned artists, making it easier and more rewarding for customers to exercise, whenever and wherever they like.

[…]

Fitness+ will be available to Apple Watch customers as a subscription service before the end of 2020 for $9.99 per month or $79.99 per year. Everyone can try Fitness+ free for one month.

Previously:

Update (2020-09-16): Darshan Shankar:

Did anyone notice Apple further flexing their monopolistic powers today?

3rd-party fitness apps need to pay 30% tax to Apple, while Apple launch their own first party competitor (Apple Fitness+)

Same issue with Spotify & Apple Music

Facebook is doing the same to Bigscreen in VR

Update (2020-09-17): Jason Snell:

If replacing the old model with a new “SE” model is the Tim Cook doctrine, how do we describe what happened on Tuesday? Tim Cook Plus? He brought in the new model and kept the old one.

Good, Better, Best. The $199 model gets people to consider an Apple Watch… but once you compare the three models side by side, that $279 model starts to look a lot more interesting. Perhaps that Series 3 will still bring people in to the Apple Watch world who might otherwise have passed it by for a FitBit or some other fitness band, but my guess is that it will ultimately be more important as a “good” product that makes potential buyers curious about the Apple Watch but then drives them toward the “better” end of the spectrum.

John Gruber:

There’s nothing spectacular or game-changing about Apple Watch Series 6, but it’s a perfect example of Apple’s incremental product update strategy. What’s new in Series 6 compared to Series 5?

[…]

The Apple Watch SE is best thought of as a cut-down Series 5 watch. Apple has an excellent comparison page, and it’s pretty clear from that page that the difference between a Series 6 and SE comes down to three things the SE lacks: no always-on display, no ECG sensor, no blood oxygen sensor. Also, adding cellular connectivity to an aluminum Series 6 is a $100 upsell; on the SE adding cellular costs only $50. (The stainless steel and titanium Series 6 models all have cellular included.)

Update (2020-09-22): Benjamin Mayo:

I have no problem with Apple rolling out new services, as long as they are made with purpose and care. Fitness+ fits the bill. It’s a really nice integration of Apple’s ecosystem to bring something new to home fitness courses. The interaction between the recorded video and the user’s on-screen health metrics is useful and simple for prospective subscribers to understand.

[…]

[The] only criticism I have is that the service will require a Watch. […] This seems like an unnecessary artificial limitation.

[…]

Fitness+ is a fixed cost service, but it has higher-rate pricing. From the business side, Apple is going to singing for the hills if they can accrue millions of Fitness+ subscribers. It will easily be their most profitable service per customer. In the scheme of things, producing a set of fitness videos on a weekly basis is relatively inexpensive. Their outlay on a single TV+ show will easily cost more than running the entire the Fitness+ service for years.

That being said, it doesn’t matter how much it costs to make, it’s what the market can bear. At $9.99, Fitness+ is legitimately competitive with other workout plans.

Apple Leadership Bubblegum Cards

John Gruber:

My biggest question and deepest concern regarding Apple’s leadership, especially now that Ive is gone and Phil Schiller has moved on to a fellowship with only the App Store and events on his plate, is whose taste is driving product development? We know the actors, we know the writers, we know the cinematographers, but who is directing? Who is saying “This isn’t good enough” — or in the words of Apple’s former director, “This is shit”? When a product decision comes down to this or that, who is making that call?

Previously:

Monday, September 14, 2020

Lectures on Digital Photography

Nilay Patel:

Did you know Pixel camera creator Marc Levoy’s entire Stanford lecture series on digital photography is on YouTube? It’s on YouTube.

Auto White Balance vs. Fiery Skies

Ian Bogost:

Certain photographs and videos of the surreal, orange sky seemed to wash it out, as if to erase the danger. “I didn’t filter these,” tweeted the journalist Sarah Frier, posting photos she took of San Francisco’s haunting morning sky. “In fact the iPhone color corrected the sky to make it look less scary. Imagine more orange.” The photos looked vaguely marigold in hue, but not too different from a misty sunrise in a city prone to fog. In some cases, the scene seemed to revert to a neutral gray, as if the smartphones that captured the pictures were engaged in a conspiracy to silence this latest cataclysm.

Via John Gruber:

This is not a bug, but a side effect of the built-in Camera app on iOS (and likewise on most Android phones) being decidedly consumer-focused. Setting a manual white balance point is a feature in any “pro” camera app worth its salt.

Google Ad Numbers Don’t Add Up

Mike Zornek:

I paid Google for 222 clicks but can only reconcile 77 of them. I asked for delivery to United States only and they did not seem to honor that. Turned off the ad campaign for now.

I’ve turned off almost all of my Google ads because the numbers don’t make any sense. Most keywords require ridiculously high bids even though test searches show that they aren’t actually being bid up. Google’s technical support was no help.

Previously:

Big Fish Casino

Cyrus Farivar (tweet):

The app offers a variety of typical casino games to play, including their favorite, called Reel Rivals, a game in which players accrue points by playing a virtual slot machine. As in a real casino, players exchange money for coins to bet.

Unlike in a real casino, there is no way to win money back or earn a payout on coins.

But that has not stopped Shellz and her husband from spending about $150,000 in the game in just two years.

[…]

According to data provided by Apptopia, an app analytics company, Big Fish Games took in an estimated $139.3 million from Big Fish Casino and Jackpot Magic players from February 2019 through July 2020.

I’m not saying that games like this should be banned from the App Store, as I think users should be able to install what they want on their devices. It doesn’t seem like they are being deceptive.

But something seems out of whack when you look at the totality of apps that are allowed vs. rejected. Casino game apps where it’s impossible to win are OK, and Apple gets 30%. But users must be protected from streaming games and direct payment.

And regular apps get rejected for the oddest reasons. Paul Haddad:

Pastebot needs to generate a ⌘v keystroke in order to paste. When generating this keystroke on >= 10.14 an Accessibility permissions alert is shown by the OS.

Apple rejected our app because of this.

In order to get around the App Store we had to offer (and users had to install) a separate Paste service that shipped outside the App Store. The service would do nothing other than generate the ⌘v and would show the same alert on first use.

Is that really better for the user? Who knows what rule this violated or why it was eventually approved two years later.

And for not adhering to vague and changing guidelines that Apple itself doesn’t follow. Joe Cieplinski:

Got rejected today for the button on this screen.

So I’ll be sending them a screenshot of this button in response.

Won’t make a difference. But I just can’t help being sassy every now and then.

Cabel Sasser:

Oh hey us too 🥴

Timothy Buck:

This stuff is really killing the Apple brand for me. If they believe these rules are helping keep consumers safe, why are they skirting their own rules instead of leading the way in transparency?

Previously:

Update (2023-11-22): See also: Hacker News.

Friday, September 11, 2020

In-App Purchase Rules

Marco Arment (tweet):

A summary of today’s changes to 3.1.3 Other Purchase Methods[…]

[…]

How about an alternative that’s clear, fair, reasonable, and consistently enforceable?

Apps can offer other payment mechanisms in their app, as long as terms are clear and customers aren’t misled, and may or may not choose to implement in-app purchase based on its merits.

In one stroke, antitrust and regulatory pressure disappear, developer relations are significantly repaired, and Apple can go back to spending its time, resources, PR, and political capital on making their products better and customers happier.

Chase:

This guideline is surprisingly similar to laws in authoritarian countries: Start with unclear/blurry rules but don’t enforce it. When the timing is right, begin interpreting/enforcing them more strictly without others knowing. If everyone realizes and rebel, add small exceptions.

Previously:

Update (2020-09-14): Marco Arment:

I love how my ridiculous post doesn’t even actually include every IAP exemption. There are so many that I forgot at least three major ones.

Ryan Jones:

Are you missing the professional database loophole?

Ryan Jones:

Oh and this one?

See also: Hacker News.

Big Sur’s Transparent Menu Bar

Tyler Hall:

Here, let’s go back to Jobs on stage at WWDC 2007. (I had third row seats that year.)

He justifies the translucent menu bar by saying that most users choose their own digital photo instead of the default wallpaper. The updated design adapts to that photo and, I assume, makes your desktop feel more immersive.

Regardless of the reasons for the change, Apple did eventually add a system preference to turn off the translucency. And at some point, even that preference went away in favor of an opaque bar again.

But it’s back in Big Sur.

I’ve been following along with screenshots and design critiques of the new OS since it was revealed. I really was (still am) excited to explore all of the UI nooks and crannies. But in less than a day of using it, I’ve lost track of how many times my eyes have had trouble settling on menu items because, well, I can’t see them.

So he made an app to make the menu bar opaque.

Tyler Hall:

Also, I don’t know why I keep harping on menus lately (other than them being a primary means of using macOS), but every time I see this I think “Huh, why are all those items disabled?” before I remember all over again they’ve just grayed out the shortcut keys.

Frank Reiff:

macOS 11 Big Sur does many things right and after a bit of getting used to, the visual style really grows on you. The transparent menu bar, however, is a bit of a legibility nightmare and something I could not live with. So I developed Boring Old Menu Bar to bring the “perfectly fine” macOS Catalina menu bar to macOS 11 Big Sur.

Previously:

New Apple Store Guidelines for Outside Payments

Apple (Hacker News):

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

I’m not sure what principle is operating there. You can tutor one child but not siblings? No medical consultations sitting in with an aging parent? A married couple can’t shop for a house or work out together?

3.1.3: Other Purchase Methods: The following apps may use purchase methods other than in-app purchase. Apps in this section cannot, either within the app or through communications sent to points of contact obtained from account registration within the app (like email or text), encourage users to use a purchasing method other than in-app purchase.

3.1.3(c): Enterprise Services: If your app is only sold directly by you to organizations or groups for their employees or students (for example professional databases and classroom management tools), you may use purchase methods in addition to in-app purchase to collect those payments. Consumer, single user, or family sales must use in-app purchase.

Previously:

New Apple Store Guidelines for Reader Apps

Apple:

3.1.3(a): Reader apps may offer account creation for free tiers, and account management functionality for existing customers.

I wonder whether Netflix will start offering a free tier.

3.1.3(f): Free Stand-alone Apps: Free apps acting as a stand-alone companion to a paid web based tool (eg. VOIP, Cloud Storage, Email Services, Web Hosting) do not need to use in-app purchase, provided there is no purchasing inside the app, or calls to action for purchase outside of the app.

I’m not sure whether this changes anything for apps like HEY, Fastmail, and WordPress, except to more explicitly allow them. They already don’t have to use IAP if they don’t sell anything within the app. And they’re already not allowed to mention or link to the world outside the app. Presumably, they will still be required to “work” if the user doesn’t already have an account.

Michael Love:

The old bit about ‘must not directly or indirectly target’ for discouraging IAP has been greatly pared back; now it only applies to communication within the app or ‘communications sent to points of contact obtained from account registration within the app.’

This is a most welcome change, since it means we can say whatever we like on our websites / newsletters (if you don’t tie those to accounts, which thankfully I don’t) / etc. (just have to be careful how we link to the website within the app, I guess)

Previously:

New Apple Store Guidelines for Streaming Games

Apple (also: Federico Viticci, John Voorhees, Juli Clover):

3.1.2(a): Games offered in a streaming game service subscription must be downloaded directly from the App Store, must be designed to avoid duplicate payment by a subscriber, and should not disadvantage non-subscriber customers.

I’m not sure what that means. Are games not allowed to be subscriber-only? Are discounts forbidden for customers who purchased directly?

4.9: Streaming games Streaming games are permitted so long as they adhere to all guidelines — for example, each game update must be submitted for review, developers must provide appropriate metadata for search, games must use in-app purchase to unlock features or functionality, etc.

[…]

Of course, there is always the open Internet and web browser apps to reach all users outside of the App Store.

Ah, yes, the very sweet solution that Apple disadvantages.

4.9.1: Each streaming game must be submitted to the App Store as an individual app so that it has an App Store product page, appears in charts and search, has user ratings and review, can be managed with ScreenTime and other parental control apps, appears on the user’s device, etc.

4.9.2: Streaming game services may offer a catalog app on the App Store to help users sign up for the service and find the games on the App Store, provided that the app adheres to all guidelines, including offering users the option to pay for a subscription with in-app purchase and use Sign in with Apple. All the games included in the catalog app must link to an individual App Store product page.

Apple is trying to force a new paradigm into its old App Store model. It’s not a good sign when rules have so many special cases. Apps that offer curated catalogs of other apps are not allowed, except for streaming games. Multiple copies of the same shell app just showing different content are not allowed, except they are required for streaming games. With video and book apps, there can be innovation in managing that content within a single app, but not for streaming games.

2.3.1: Don’t include any hidden, dormant, or undocumented features in your app; your app’s functionality should be clear to end users and App Review.

Don’t be Epic.

2.3.1: All new features, functionality, and product changes must be described with specificity in the Notes for Review section of App Store Connect (generic descriptions will be rejected) and accessible for review.

Let’s see whether this is actually enforced.

Kyle Howells:

In other news: Netflix will be allowed on the AppStore, but each tv show episode or movie must be available on the AppStore as it’s own separately downloadable app.

John Voorhees:

Obviously, many game streaming services offer games that aren’t UIKit games that can be downloaded from the App Store, which will be a technical roadblock to many services.

Steve Troughton-Smith:

Of course, that will mean that any game provided by xCloud needs to follow Apple’s other rules — which means in-app purchases would need to go through Apple’s system (which, due to the nature of xCloud, basically means any game with microtransactions will not be allowed)

Jason Snell:

Real question is, did Apple create these guidelines knowing that Google and Microsoft will never agree to them? And would access to iOS be worth Google and Microsoft jumping through all these hoops? My guess is yes and no, but you never know.

Dan Moren:

From Apple’s point of view, it now has explicit rules to point to, but honestly, all this really means is that there won’t be game streaming services on the App Store. Neither Microsoft nor Epic is going to spend the time or money on what is not an insignificant amount of work and have to hand over the 30 percent cut to Apple on top of that. Just not going to happen.

To my mind, this remains a short-sighted and ill thought out decision on Apple’s part. Game streaming services aren’t going away, and if iOS is the only platform that they’re not available on, then, honestly, that just hurts iOS. Apple has clearly decided that it doesn’t care about losing those customers—that it’s an acceptable trade-off for not losing the revenue and the control over App Store contents.

Michael Gartenberg:

Unbelievable what’s going on over there. It’s Apple going to war with developers and Apple has the upper hand? Where do devs go to get on the platform of choice for so many. App store was once great for all parties. Not so much anymore.

Rich Mogull:

I just don’t get these updated App Store guidelines. If the game is streaming and not running locally the security model is the same for all games. Basically, this is like approving every movie on Netflix and having a different App Store listing for each. What am I missing?

It’s not about security.

McCloud:

The added friction alone is a significant handicap. Yes, your streaming library is there but you have to extract it title-by-title from the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying “Beware of the Leopard”.

Eli Hodapp:

Here’s what’s TRULY unbelievable about today’s App Store policy update to “allow” xCloud and Stadia, that you can really only appreciate if you’ve been following the wacky decisions of Apple on how to awkwardly handle everything to do with games…

[…]

Apple cited 4.3 in the App Store guidelines, specifically telling Choice of Games that their separate apps are “too similar,” even though each of them were their own truly unique narrative adventure. To Apple, books with words on a page and choices are all just the same I guess.

Apple held firm on the decision to block Choice of Games from releasing individual books, instead forcing them to rapidly develop an omnibus app that could serve as the singular container for all of their titles since individual skus were no longer allowed.

This was a complete nightmare for Choice of Games as their releases were at a complete standstill until they could develop this new container app that Apple was forcing them into. It also created a huge support headache as you can tell by the FAQ

With this in mind, it’s really amusing that Apple’s “solution” for xCloud and Stadia being “allowed” is having them spam the App Store with what could be quite literally hundreds of viewer apps for all the different games, particularly with the secondary App Store-only versions.

Previously:

Update (2020-09-14): Tom Warren (via Dieter Bohn):

Microsoft isn’t impressed.

“This remains a bad experience for customers,” says a Microsoft spokesperson in a statement to The Verge. “Gamers want to jump directly into a game from their curated catalog within one app just like they do with movies or songs, and not be forced to download over 100 apps to play individual games from the cloud. We’re committed to putting gamers at the center of everything we do, and providing a great experience is core to that mission.”

Steve Troughton-Smith:

Framed another way, Apple has the opportunity to get access to all the best Xbox games on all of its platforms — games that would never otherwise come to them — and all they have to do is give Microsoft a reasonable deal. Apple should be paying Microsoft for this.

Nick Heer:

The main thing that is different is that Apple is expressly allowing a launcher-type wrapper app, something that had murky permissions before.

Update (2020-09-16): Jared Nelson:

This whole thing feels like Apple trying to give themselves some sort of out for any future antitrust litigation. It’s like putting a cupcake in the middle of a live bear trap, and then offering it to someone. “Oh, I guess you don’t WANT that cupcake then. Well, you can’t say we didn’t offer it to you!" Apple is presenting a set of guidelines that are impossible for a game streaming service to adhere to while still being able to call itself a game streaming service. It’s just asinine, and it’s hard to tell if it’s through sheer incompetence on Apple’s part, greed, vindictiveness, or a combination of all of those things.

Personally I’ve already gone out and picked up an Android device and will have a relatively cheap little xCloud portable gaming setup ready for next week’s launch, and I hope to have a little guide put together by then on my whole setup for anyone else interested in doing the same. But honestly, as a devout Apple fan for decades who has hand-waived and sometimes even come to the defense of many of their absurd decisions over the years, this latest debacle with game streaming services is just too much and has me seriously questioning if I’ll be picking up a new iPhone this year or if I’ll finally dive into one of the many excellent Android handsets out there.

Update (2020-09-28): Sean Hollister:

But if you know how cloud game services operate, and then look at Apple’s actual written rules, you’ll see that’s only technically true. If I understand correctly, the reality is one of two things:

Either 1) Apple is asking Microsoft, Google and others to turn their streaming game services into an entirely new category of standalone app which guarantees Apple a profit — a kind of app that’s rarely existed on iOS before, and one that Apple itself called “not appropriate” just last year.

Or 2) Apple’s new guidelines aren’t designed to be anything but an attempt to confuse — a way to get the world to think Apple’s not actually rejecting the future of gaming, while simultaneously erecting so many roadblocks that companies like Google and Microsoft would never dream of taking Apple up on the offer.

Update (2020-10-09): Tom Warren:

Microsoft is bringing xCloud to iOS via the web. There will be a browser-based solution coming in early 2021, alongside a PC version of xCloud next year.

Thursday, September 10, 2020

Facebook and Australia’s News

Kim Lyons:

The country’s proposed News Media Bargaining Code law, which is in draft form at present, stemmed from a 2019 inquiry that found tech giants like Facebook and Google take too large a share of online advertising revenue from media organizations in Australia. The Treasurer of Australia ordered the Australian Competition and Consumer Commission to develop a voluntary code of conduct which would force the platforms to pay media companies. The ACCC told the government it seemed “unlikely” that a voluntary agreement could be reached, however.

Under the proposed legislation, Google and Facebook would have to provide publishers with advance notice of changes to their algorithms, with penalties for failing to comply.

Ben Thompson:

The actual draft code for this new regulation is here; this is a bit impenetrable, as Australian law is generally enacted by hard-to-follow directions on inserting and excerpting various lines of text into existing regulation. The Explanatory Materials that accompany the code are more helpful, but for the purposes of this Daily Update, I’m going to focus on this Q&A document from the ACCC.

[…]

What makes Google and Facebook different from, say, Twitter or email, when it comes to directing traffic to news media sites? The answer I suspect isn’t volume: it’s the fact that Google and Facebook make a lot of money, of which the Australian news media business feels entitled to[…]

[…]

Do you see the absolute absurdity here? This language suggests that Google and Facebook are using their gatekeeping power to gouge news media businesses for sending traffic their way, when in fact they send traffic for free. As I noted in May, if anyone should be getting paid in this relationship it is Google and Facebook (although, to be clear, I am not saying Google and Facebook should actually be paid).

Facebook (Hacker News, Slashdot):

Assuming this draft code becomes law, we will reluctantly stop allowing publishers and people in Australia from sharing local and international news on Facebook and Instagram.

[…]

The ACCC presumes that Facebook benefits most in its relationship with publishers, when in fact the reverse is true. News represents a fraction of what people see in their News Feed and is not a significant source of revenue for us. Still, we recognize that news provides a vitally important role in society and democracy, which is why we offer free tools and training to help media companies reach an audience many times larger than they have previously.

Previously:

Design and Implement macOS 11 Document Icons

Apple:

By default, if you don’t specify a document icon for a file type in your app, macOS will automatically create one for you by compositing your app’s icon together with the correct extension name. This is a common pattern for imported document types or non-proprietary file formats that your application can open such as MP3, JPG or PNG.

[…]

To create a new custom document icon, you can provide a background fill, center image, or text string. Each of these three elements is optional, allowing you to use just one element or any combination of the three to customize your icon. From there, macOS will automatically layer, position, and mask these elements, then composite them into a page icon with a right corner fold.

Previously:

IFTTT Pro

Linden Tibbets:

Out of the gate Pro launches with many of your most requested features:

• Multi-step Applets
• Queries and conditional logic
• Multiple actions
• Faster Applet execution

[…]

Another change we’re announcing is that only Pro plan subscribers will be able to create unlimited Applets. Our regular free-plan will be able to create up to 3 Applets.

It seems like they are missing a pricing plan between three basic applets for free and unlimited pro ones for $9.99/month. That’s the same as Adobe’s Photography plan, more than Microsoft 365, more than Tower. I don’t need more advanced features. Mostly, I use it to archive subscribed/favorited tweets to e-mail and to post from RSS to Twitter.

It’s never been a great fit for the former (awkward interface, huge e-mails), so I’ll probably look for an alternative. But, for now, I have subscribed.

Paying was interesting:

Previously:

A Step Back

Nick Heer:

I see these back buttons as a sort of cop-out — an easy way of covering for a lack of deeper consideration. You can see this most clearly in iTunes running on Mojave, in which there are two very different implementations of every view: the Apple Music way, and the local library way. If you open an album from the Recently Added view, it expands to reveal the track list below. If you open an album from Apple Music, you get sent to a new page, presumably because it is not possible to implement the local library style in a way that is performative or works across different platforms. It reveals the web-based underpinnings of Apple Music, it is slow, and it necessitates a back button.

In Catalina’s Music app, the two different implementations of an album view were dropped in favour of the Apple Music style. Now, it always opens an album in a separate view. As in every one of the apps I listed above, this decision makes Music feel like a semi-native wrapper around a collection of webpages, even when many parts of the app are still entirely native.

I do not think it is always wrong for an app to have a back button; it is a mechanism that works just fine in a web browser and in file managers. But I think that this new breed of apps that try to bridge the gap between MacOS and iOS use this specific implementation of the back button as a crutch. It is an inelegant way of dealing with inelegant and unique design problems. Its pervasion is a big flashing CAUTION sign that Apple’s Mac apps are not being lavished with the design attention they once were and still deserve. What bothers me more than what the button is is what it represents: it is, uncharacteristically for Apple, lazy.

Previously:

Update (2020-09-14): Nick Heer:

Are there any guidelines on when a search field should be in an app’s sidebar in MacOS instead of the toolbar? I don’t see anything in the HIG and it seems to be the case primarily in Catalyst or Catalyst-adjacent apps (e.g. Music). I don’t like it!

Coda to Become Nova

Panic:

Our next text editor — the follow-up to Coda 2 — couldn’t just add a few features and call it a day. It had to change dramatically. It had to catch up to where things are today. And it had to consider where web development will be tomorrow.

Panic:

Nova will be $99, or $79 if you own Coda. When you buy it, you own it. Plus, your purchase includes one year of new features and fixes, released the moment they’re ready. After that, you can get another year of updates at any point — even much later — for $49/year. That’s it!

Shipping next week. This seems most similar to the Sketch business model. It won’t be coming to the Mac App Store due to sandboxing issues.

Previously:

Update (2020-09-18): Panic (tweet):

Can a native Mac code editor really be that much better?

Find out.

Nick Heer:

In a sense, this is how good things are supposed to work. My favourite records are, on a per-listen basis, the least-expensive albums I’ve bought; I would have a different relationship with them if I had to pay for every listen. But software is not like that. It needs constant work, and it can be difficult to patch bugs in free updates while trying to build a worthy major new version. That is especially true for a company as fastidious as Panic. And, since the App Store and Apple’s software, more generally, have eschewed the very concept of paid updates, we’re now stuck with subscriptions as a way to finance ongoing work.

[…]

As version numbers become increasingly irrelevant in an era of ongoing patches, bug fixes, and feature updates, this pricing model seems like a fair compromise for users and for Panic.

Update (2020-09-22): Panic:

Here’s a little editor story for fun. During beta we found some bugs in Apple’s text layout engine that we just could not fix. Our solution? Writing our own text layout manager… from scratch. Not only did this fix the bugs, but it also boosted our editor’s performance. We’re not messing around!

See also: Hacker News.

Update (2020-09-28): John Gruber:

The big difference between Nova and Sketch’s ongoing renewal pricing and pure subscriptions is that if you choose to stop paying, the version of the app you already have will keep working until it becomes technically obsolete. (Also noteworthy: this user-friendly, developer-sustaining pricing is not possible on the Mac App Store, and thus neither Nova nor Sketch are on the Mac App Store.)

Mark Bernstein:

We’ve been using [this upgrade model] for 20 years and we’re still here.

Wednesday, September 9, 2020

iMac’s Nano-Textured Glass

Mark C:

Side-by-side, you can actually see the reflective differences between the two screens.

Looks great, but I thought the old matte displays were fine without the price premium.

Previously:

Update (2020-09-22): Dave Wiskus:

I got the nano and non-nano-textured XDR displays so I could pick a winner and return the loser.

Nano-textured is going back. Easy choice.

Nano looks fuzzy and sparkly. Like someone spilled something on the screen and didn’t quite clean it all off. I’m told this is great for high-glare environments, but in my office it looked terrible. Crazy that Apple calls this an upgrade.

Epic Barred From “Sign in With Apple”

Epic (tweet, Hacker News, MacRumors):

Apple will no longer allow users to sign into Epic Games accounts using “Sign In with Apple” as soon as September 11, 2020. If you have previously used “Sign In with Apple”, please update your Epic Games account email address and password immediately so that you can still login after September 11, 2020.

Apple doesn’t retaliate, but it considers it more important to hurt Epic (and make an example of it) than to help its own customers who placed their trust in its service. As a user, I would rather rely on a password manager than a login provider. As a developer, it’s a harder choice because many users like universal logins. Apple doesn’t let you support other third-party login providers without also supporting Sign In with Apple.

Riley Testut:

Lesson: Don’t use “Sign In with Apple” unless you want Apple to be able to remotely kill all your user accounts…

Nathan Lawrence:

If you’re Epic, it stinks, but you know it’s coming — you can scarcely retain API keys without a dev account — and can prepare. Not so if you’re an indie accidentally flagged for abuse by one of the large companies in control of these sign-on systems. You just lose customer data.

The entire point of open authentication standards once was that auth could be democratized and open, and you could choose an identity provider that worked for you and fit your personal standards — even your own server.

Now, it centers even more power on large companies instead.

Tanner Bennett:

Apple is really shooting themselves in the foot here, just to spite someone…

They’re NEVER going to fully recover from this battle, not in the next 20 years at least. Their new reputation for being a petty, spiteful bully is basically set in stone at this point.

Not to mention all the developer trust they’re eroding with this. They now also have a reputation for offering services that can be revoked at any time (not to mention having the ability to remove your app at any time and make you go bankrupt…), which is not appealing.

Previously:

Update (2020-09-11): Viruthagiri Thirumavalavan:

This “Sign in with Apple” issue with epic games is not “personal” as you think. It’s because of the patent claim I wrote to protect my invention.

He developed a service called Dombox, which he says Apple copied. Whether or not that’s actually the case, the interesting part is that Dombox’s pending patent only applies to services that don’t have a native mobile app. And Apple, perhaps not coincidentally, says that “An app on the App Store is required” in order to use the Sign In with Apple API. Well, thanks to Apple closing Epic’s developer account, they no longer have an app on the App Store.

I’ve also seen speculation that it’s technically not possible to use Sign In with Apple without a developer account, e.g. because of certificate renewal. This is probably true, but I don’t think it really changes anything with the story. Apple is the one that tied its service to an account that does so many other things. And it’s the one who chose to terminate the account, when that was not necessary to block the offending app from the App Store.

Fortnite Status:

Apple previously stated they would terminate “Sign In with Apple” support for Epic Games accounts after Sept 11, 2020, but today provided an indefinite extension.

I guess Apple’s not afraid of the patent, or perhaps that’s why they are calling it an indefinite extension.

Francisco Tolmasky:

Forget what developers think of Sign In with Apple, as a customer, I’m never going to use it again. I was already skeptical of routing all my email communications through Apple, but the fact that Apple can drop it arguably affects me more than the developer.

In the best case scenario, it’s a hassle for me to have to transfer my account in an event like the Epic situation. In the worst case, it seems like I could potentially lose my account? Maybe that doesn’t matter for a game, but I certainly won’t trust it for stuff that matters.

I’m really not impressed with this “it’s such a weird edge case!” excuse either. Only at Apple is it considered an edge case that your service could possibly also exist outside the AppStore, and thus someday possibly exist only outside the AppStore.

Update (2020-09-14): Jay Peters:

When reached for comment about yesterday’s news, Apple told The Verge that it was not doing anything to stop “Sign In with Apple” accounts from working with Epic Games. So there’s some kind of discrepancy in who is telling the truth, as Epic is maintaining that Apple was previously enforcing the shutoff (and the way Epic is talking about it, still possibly could). Apple did not immediately reply to a request for comment about today’s development.

Since we know that Sign In with Apple requires a developer account, which Apple terminated, it seems like Apple is trying to make it look like Epic was lying, while actually working behind the scenes to either lift that technical requirement or provide some sort of limited functionality account.

Update (2020-09-30): John Gruber (tweet):

I spent a few hours back on September 9 digging into this SIWA story, and multiple sources at Apple told me Epic’s claims were simply false. There was never a September 11 deadline for their SIWA support to stop working, and in fact, Apple’s SIWA team performed work to make sure SIWA continued working for Fortnite users despite the fact that Epic Games’s developer account had been revoked. There was no “extension” because Apple was never going to revoke Epic’s SIWA access.

It seems that the Apple sources lied to Gruber because Epic’s court filings include e-mails stating that Apple is “terminating SIWA for the Epic Games, Inc. account” and giving an “extra two weeks” extension. Apple has a history of misleading the press when defending itself.

Apple Countersues Epic

Juli Clover (Hacker News, 9to5Mac):

In a court filing today [link], Apple says that Epic’s lawsuit is “nothing more than a basic disagreement over money,” highlighting the revenue that Epic Games has earned through the Fortnite iOS app and Apple’s developer tools.

[…]

Epic, says Apple, has used more than 400 of Apple’s APIs and frameworks, five versions of the Apple SDK, has had its apps reviewed more than 200 times, and has pushed more than 140 updates to Apple customers. Apple says that it also provided advertising each time Epic released a new season for Fortnite, offering “free promotion and favorable tweets” to more than 500 million end users.

This idea that Apple is owed because a developer “used” its APIs is bonkers.

Also, it’s hilarious that, in the Spotify case, Apple argued that “Spotify wants all the benefits of a free app without being free. A full 84 percent of the apps in the App Store pay nothing to Apple[…]. That’s not discrimination, as Spotify claims; it’s by design.” Now it argues that “Epic decided it would like to reap the benefits of the App Store without paying anything for them.”

Steve Troughton-Smith:

Apple: Epic only looking for a free ride

Epic, according to Apple, has given Apple $257,000,000 in commission fees in two years over in-app purchases that Apple has no hand, act, part in, doesn’t host on their servers, just for the privilege of existing on their OS. ‘Free ride’.

Tim Sweeney:

Presumably they’re just posturing for the court, but if Apple truly believes the fight over the App Store’s distribution and payment monopoly is a “basic disagreement over money,” then they’ve lost all sight of the tech industry’s founding principles.

Foremost among those principles: the device you own is yours. You’re free to use it as you wish. Configure it as you like, install software you choose, create your own apps, share them with friends. Your device isn’t lorded over by some all-powerful corporation.

Marco Arment:

Dev relations are at an all-time low as you continue to make statements to the effect of “Developers’ only value to our platform is IAP commissions.”

People buy the iPhone — you know, that hardware you make tons of money from — because of OUR APPS.

(Not even addressing the false and disproven “everyone plays by the same rules” lie you keep repeating, as well as the massive elephants in the room: Facebook, Instagram, Twitter, and every other free app that offer no App Store purchases, yet are somehow OK under this logic.)

Nick Heer:

It seems like these two corporate giants — though “giant” at different scales — are very happy to test how much they can piss off users and regulatory bodies. Epic is being belligerent in its steadfast refusal to play by the iOS App Store rules. Apple is going all-in on whatever it can get away with.

[…]

One of the things I keep wondering about everything here is what it would take for Apple to change course if the law were not involved. I wonder how much control it would be able to exert before users began to switch away in large enough numbers that it would cause consternation in Cupertino. But, then, I also wonder why it would even get to that level — no company should be pushing so hard as to test customer loyalty and trust. This Fortnite thing gets awful close for some players, I imagine. Some will simply stop playing; others will play on another console. But some might decide that they no longer want to be a part of Apple’s ecosystem. You can have all of the gaming consoles you want and switch between them, but most people only have one phone.

[…]

So far, everything is more-or-less holding: many developers need Apple’s platforms and I doubt they are shedding users in meaningful numbers. But it is bizarre and troubling that we are having this conversation. It suggests that Apple is increasingly finding ways to financially exploit its products for self-enrichment at the expense of users and developers. From a strategy perspective, as far as I am concerned, that is not as inspiring as make great products that practically sell themselves.

Previously:

Mac App Store Sandbox Escape by Bypassing Initialization

Saagar Jha (via Jeff Johnson):

In January I discovered a flaw in the implementation of the sandbox initialization procedure on macOS that would allow malicious applications distributed through the Mac App Store to circumvent the enforcement of these restrictions and silently perform unauthorized operations, including actions such as accessing sensitive user data. Apple has since implemented changes in the Mac App Store to address this issue and the technique outlined below should no longer be effective.

[…]

Apple checks for the presence of the com.apple.security.app-sandbox entitlement in all apps submitted for review, and its mere existence magically places the process in a sandbox by the time code execution reaches main. But the process isn’t actually magic at all: it’s performed by a function called _libsecinit_initializer inside the library libsystem_secinit.dylib, also located at /usr/lib/system[…]

[…]

As you may have guessed, this process is problematic. In fact, there are actually multiple issues, each of which allows an application with the com.apple.security.app-sandbox entitlement to bypass the sandbox initialization process.

But it sounds like Apple’s fix is via the App Store approval process, rather than enforcing at runtime that apps with the entitlement are sandboxed, so it may not work in all cases.

Csaba Fitzl:

To disable sandbox via Interposing is a long known technique. +SB on macOS is voluntary, except the platform profile, that applies to everyone.

Adam Chester:

Few nights working on this but finally found another sandbox escape for Microsoft Word on MacOS 10.15.6. Chains a few techniques, MS locked it down well since last time.

Previously:

Tuesday, September 8, 2020

Screen Recording in Big Sur Requires Admin Account

Nathaniel Strauss (tweet):

Two months into the beta cycle, Big Sur is still not education ready. Today marks the release of beta 5 and Apple has not implemented a way for standard users to enable screen recording. As a result they can’t share their screen with common video conferencing solutions like Webex, Zoom, Google Meet, and others. Imagine an online class where the teacher isn’t able to display a presentation or a student can’t show their work. During the largest shift to remote learning ever, that’s the future Apple delivered in beta 1, entirely missing the mark when it comes to how a large majority of their education customers use Macs. Apple has said they have plans to introduce ways for standard users to enable screen sharing, but as of beta 5 that’s not the case.

[…]

[July 22 was] the last time Apple has commented on screen recording access in Big Sur. No response through feedback assistant, enterprise support cases, or other community channels.

[…]

The general wisdom I always hear is filing feedback early in the beta cycle is better. My concern with screen recording in particular is we’ll get a solution in a late beta, it won’t meet the real needs of the user base, and then we’ll be stuck with it. If the solution ships in beta 6, there’s no time to provide feedback to improve the feature before GM. Considering Apple didn’t even realize this was a problem before we filed feedback, I can’t say I’m confident in them developing a solution internally with no feedback from K12 or other education institutions.

I don’t understand what problem Apple is solving by not allowing standard users to consent to record their screen.

Previously:

Update (2020-09-11): Alex Brooks:

I should start an ongoing thread of all the basic things that macOS Catalina makes impossible.

Today’s doozy: Go to present in meeting, cannot share screen in Google Meet because it requires local admin approval. Fab.

Nathaniel Strauss:

Screen recording access can be allowed by a standard user in Catalina. Problem is the setting is mixed in with admin only privileges and so confusing people think they can’t. The design is poorly laid out.

Applebot

Apple (via Hacker News):

Applebot is the web crawler for Apple. Products like Siri and Spotlight Suggestions use Applebot.

Traffic coming from Applebot is identified by its user agent, and reverse DNS shows it in the *.applebot.apple.com domain, originating from the 17.0.0.0 net block.

jd20:

Some fun facts:

  • Applebot was originally written in Go (and uncovered a user agent bug on redirects, revealing it’s Go origins to the world, which Russ Cox fixed the next day).
  • Up until the release of iOS 9, Applebot ran entirely on four Mac Pro’s in an office. Those four Mac Pro’s could crawl close to 1B web pages a day.
  • In it’s first week of existence, it nearly took Apple’s internal DNS servers offline. It was then modified to do it’s own DNS resolution and caching, fond memories…

Previously:

Swift Runtime Heap Objects and Type Layout

Jordan Rose:

The way Swift’s flavor of automatic reference counting works is that destruction of the object happens synchronously when the last reference goes away. So while swift_retain ends after updating the reference count, swift_release has to check to see if the object should be destroyed. If the old reference count representation was 0 (remember, it’s a biased representation), then this release is for the last reference, and it’s time to destroy the object. As mentioned above, this information is stored relative to the class metadata, whose address we get by loading the first field of the object.

[…]

The first field of a closure is a function pointer with a special calling convention: it takes the arguments of the closure as well as an additional argument for accessing any captured bindings (parameters, variables, or constants, or explicitly-specified bindings from a capture list). This additional argument is loaded from the second field, and you can think of it as a sort of “anonymous class” that stores the captures. Passing around a closure means retaining and releasing this “captures object”, and it’s destroyed when the reference count hits 0 like any other object.

Jordan Rose:

So what does Swift do? For now, it just does the simple thing: lay the fields out in order, rounding up to alignment boundaries. (This means you can actually save on memory by carefully ordering your fields, although this probably only matters if you have many many instances of your structs.)

[…]

The “Product” example I showed above was a struct that could be laid out completely at compile time. However, that’s not always possible. If the types of First and Second aren’t known at compile time, it’s up to the runtime to figure it out. […] So not only does the runtime need to do type layout, but now you know why it has to be consistent with how the compiler does it.

Previously:

Update (2020-10-16): Jordan Rose:

In Swift, types are represented by unique pointers to structured data, which can be statically or dynamically allocated. This data has a different representation based on what kind of type we’re talking about, so if we’re not sure what kind of type we have, there are only two fields we can access safely: a kind field at offset 0, and a value witness table pointer just before the start of the type metadata. To get at any other information, we have to check the kind first and then cast to the appropriate type.

Jordan Rose:

This time we’re going to be talking about the caches used to unique type metadata (and other things that need uniquing).

Jordan Rose:

Honestly this tour of class metadata is probably more informative than the runtime functions associated with classes, but we’ll go through those too.

Jordan Rose:

With this, we’ve now seen the entire process of creating and initializing class metadata, just like we did with structs. Of course, in many cases the compiler will be able to do much of this work at compile time, but in case it can’t, the Swift runtime is powerful enough to do it all itself.

See also: Swift Unwrapped.

Update (2020-10-23): Jordan Rose:

There’s one other twist on no-payload enums compared to C enums: if you use Swift’s “raw value” support, the representation in memory might still be different from the raw value[…]

[…]

If an enum only has one case that has a payload, the compiler and the runtime conspire collaborate to pick the most efficient layout based on the type of the payload and the number of non-payload cases.

[…]

As quoted above, extra inhabitants are memory representations that are never used for a particular type. The most common of these is “0 will never be a valid pointer”, but there are a few others we can think of, like “100 does not represent a valid Multiplier value” from the enum above. The Swift compiler and runtime are smart enough to use these extra “bit patterns” to represent non-payload cases in a single-payload enum.

Epic Banned From Apple Development for a Year

Tim Cook, in July:

We want to get every app we can on the Store, not keep them off.

Apple, August 13:

We will make every effort to work with Epic to resolve these violations so they can return Fortnite to the App Store.

But I missed, when writing yesterday’s post, that Apple’s position has changed. Epic’s motion includes this e-mail from Apple:

This letter serves as notice of termination of the Apple Developer Program License Agreement (the “ADP Agreement”) and the Apple Developer Agreement (the “Developer Agreement”) between Epic Games, Inc. (“you”) and Apple effective immediately[…]

[…]

Finally, please note that we will deny your reapplication to the Apple Developer Program for at least a year considering the nature of your acts.

Since it’s no longer possible for Epic to resubmit and comply with the rules for now, working out the financial settlement later, I now think that Epic is the more harmed party in the current situation. Perhaps that increases its odds in the September 28 preliminary injunction hearing. Otherwise, it would be banned from development and sales at least until the trial, which is nearly a year away.

The continued loss of Fortnite as a gathering place for users on all platforms will lead Epic’s customers to defect. Epic may never see these users again. It will also be denied the opportunity to access even a single new user among the one-billion-plus iOS users for at least the next year. The removal of Fortnite from iOS also substantially impedes a major Epic initiative—evolving Fortnite into a full-fledged “metaverse”, a multi-purpose, persistent, interactive virtual space. Harm like this to Epic’s flagship app cannot be calculated in damages.

Stephen Warwick:

New estimates from Buy Shares have revealed that Epic Games’ spat with Apple could cost it in the region of $26 million a month in lost revenue whilst Fortnite is banned from iOS.

Previously:

Apple Antitrust Investigations in Italy and Australia

Ben Lovejoy:

Today has seen the announcement of the second Apple antitrust investigation in two days. Just one day after Italy announced that it was investigating the fairness of iCloud terms and conditions, Australia says that it is launching a broad investigation into both Apple’s App Store and Google’s Play Store.

Michael Love:

The geopolitical aspects of Apple antitrust are going to get very interesting next year - seems inevitable that if nothing else, App Store developer rules are going to become a lot more regionalized.

[…]

So you could end up with developers actually shopping around for which region to incorporate in based on how well it fits their business model; if, for example, the EU mandates sideloading (a very EU-ish solution), a lot of F2P game companies probably set up shop there.

Previously:

Monday, September 7, 2020

Awaiting SuperDuper for Big Sur

Dave Nanian:

At present, it’s not possible to make bootable copies of Big Sur, even with asr, Apple’s own built-in replication utility. As such, we haven’t released a Beta, or even an internal Alpha, because it wouldn’t meet our own requirements.

[…]

In the meantime, my advice for macOS Betas remains as valid as ever: do not install a macOS Beta unless you have a critical business need to do so. These Betas, even when public, are not for general use, and certainly not for anyone who wants a reliable system for day-to-day work.

Time Machine is itself in beta, and it can’t make bootable backups. John Siracusa found that installing a Big Sur beta on a different drive made his Catalina volume inaccessible, presumably because the beta updated the BridgeOS firmware for his Mac’s T2.

Previously:

Private Intel Firms Buying Phone Location Data

Joseph Cox (tweet):

A threat intelligence firm called HYAS, a private company that tries to prevent or investigates hacks against its clients, is buying location data harvested from ordinary apps installed on peoples’ phones around the world, and using it to unmask hackers. The company is a business, not a law enforcement agency, and claims to be able to track people to their “doorstep.”

The news highlights the complex supply chain and sale of location data, traveling from apps whose users are in some cases unaware that the software is selling their location, through to data brokers, and finally to end clients who use the data itself. The news also shows that while some location firms repeatedly reassure the public that their data is focused on the high level, aggregated, pseudonymous tracking of groups of people, some companies do buy and use location data from a largely unregulated market explicitly for the purpose of identifying specific individuals.

Alfred:

A Chinese data company boasts that it has its SDK on 1.36 billion devices per month, and has been quietly gathering location data, device ID and other apps on the device without permission, researchers found[…]

Matthew Green:

Apple and Google should inject targeted data into phones running all these apps, then when it shows up for sale they should nuke the developers from orbit.

I find it so strange that Apple and Google justify their app store monopoly with “privacy and security” but practices like this are endemic to their stores.

Previously:

Japanese Game Developers Complain About App Store

Tim Hardwick:

Bloomberg reports that some developers in the Japanese gaming market have been emboldened by the dispute and are becoming more vocal about their own concerns, which including Apple’s 30% commission rate and inconsistent enforcement of App Store policies.

[…]

According to game developers in Japan, Google’s Play Store offers a smoother approval process and better communication than the App Store. Some developers even rely on a third-party service called iOS Reject Rescue, which helps them navigate through Apple’s approval process if their app is rejected.

“Apple’s app review is often ambiguous, subjective and irrational,” said Makoto Shoji, founder of PrimeTheory, which provides the rejection service. “While Apple will never admit it, I think there are times when they simply forget an item’s in the review queue or they intentionally keep it untouched as a sanction to a developer giving them the wrong attitude,” Shoji told Bloomberg.

John Gruber:

For a 30 percent cut of all revenue passing through the App Store, and mandatory use of Apple’s payment processing, none of these complaints should exist. It’s perfectly reasonable to demand better service from a platform that charges high fees.

What I read here is that these Japanese developers expect to feel respected by Apple, and they don’t.

Relations between Apple and developers may be at an all-time low. Developers don’t feel respected by Apple at the moment, which has threatened them and minimized their contributions. And the loss of respect has been mutual, after the recent incompetence, lies to Congress, and misrepresentations to the press.

Previously:

Update (2020-09-08): Kaushik Gopal:

After dabbling with some iOS development, I can confidently say Android Studio is much better than Xcode. I also think Google as a company listens more closely and cares about improving the developer experience. Many of their recent changes have been in direct response to developer outcries.

Fortnite’s Use on iOS Has Declined

Florian Mueller:

The preliminary injunction hearing on the same two issues--can Epic force Apple to tolerate a version of Fortnite that bypasses its in-app purchasing (IAP) system in contravention of App Store business terms, and can Apple terminate all of Epic’s accounts for distrusting the company after what happened--will take place on September 28. The briefing process kicked off Friday night Pacific Time with Epic filing its motion for a preliminary injunction[…]

[…]

With a view to the prelimininary injunction standard, Epic’s motion argues that the court should not force Epic to comply with terms the game maker describes as anticompetitive and, therefore, illegal, given that Apple could always get its 30% App Store cut later.

[…]

“Over 116 million registered users have accessed Fortnite through iOS—more than any other platform. […] They have spent more than 2.86 billion hours in the app.”

Frank McShan:

Epic mentions that it’s “likely to suffer irreparable harm” if Fortnite is not made available on the App Store and that “the balance of harms tips strongly in Epic’s favor,” citing that daily iOS active users have already declined by over 60% since the app’s initial removal from the App Store.

The problem for Epic is that it could easily stop that harm by complying with Apple’s rules (for now), lower the prices for everyone, and try to get the money back from Apple later if it wins. Whereas, it’s not so easy to undo the harm to Apple of allowing an app in the store that purposely violates the rules.

Previously:

Update (2020-09-08): See also: Epic Banned From Apple Development for a Year.

Update (2020-10-01): Florian Mueller:

In its opposition brief (filed a few days back), Apple voiced the suspicion that Epic’s very publicity-oriented approach to this litigation was driven by a marketing communications desire to reignite interest in Fortnite. That is one of various factual questions--which also include the accusation of Epic having bullied Sony into modifying its PlayStation terms--Epic CEO Tim Sweeney seeks to counter in his second declaration in this briefing process[…]

[…]

In connection with Fortnite’s popularity, Mr. Sweeney’s declaration--after noting that Google Trends is just about search, not game usage--says “Apple cherry-picked an unusual single-week peak in October 2019 with the average number of searches in July 2020,” and explains that the October 2019 peak was due to a special event called “The End” (where the world of Fortnite was sallowed by a black hole).

Mr. Sweeney says “the number of daily active users on Fortnite actually increased by more than 39%” during that same period (October 2019-July 2020).

Friday, September 4, 2020

Apple’s Commitment to Human Rights

Apple (PDF):

We believe that dialogue and engagement are the best ways to work toward building a better world. In keeping with the UN Guiding Principles, where national law and international human rights standards differ, we follow the higher standard. Where they are in conflict, we respect national law while seeking to respect the principles of internationally recognized human rights.

This is not exactly news. In some cases like end-to-end encryption, Apple stands on principle. In others, it chooses not to push back. When it comes to the availability of iOS apps, Apple’s highest principle is that Apple, not the user, decides what can be installed. And this makes it subject to governmental control.

Tim Hardwick:

The Financial Times reports that Apple’s board of directors approved the policy and published it ahead of a deadline of September 5 for shareholders to submit motions for next year’s investor meeting.

The commitment comes seven months after some of Apple’s shareholders defied management and supported a proposal from a consumer advocacy group called SumOfUs that would have compelled it to uphold freedom of expression globally. Apple reportedly tried to strike the proposal from the agenda but was denied by the US Securities and Exchange Commission.

Apple has faced increasingly pressure from investors about its relationship with China and its tendency to accede to Beijing’s demands. Last year, for example, Apple removed the app of news outlet Quartz from China’s App Store after complaints from the government that it included content that is illegal in the country.

Previously:

Why You Should Charge More for Your App Subscriptions

Matt Ronge:

The reality is most people won’t sign up for your subscription even at a low price. Most people dislike subscriptions, and many won’t subscribe at any cost. The recurring nature of subscriptions provides a major mental hurdle and makes them hard to commit to.

However, you likely have a smaller set of users who get the most value out of your app and are willing to subscribe. These are your most devoted and die-hard users. When designing your subscription plan you want to focus on these users, they are the ones who will pay and stick around (see my post on churn for why this is critical). By going subscription, you are choosing to focus on fewer customers but your most dedicated customers. Given that this is a much smaller customer base, you need to charge a higher price.

Corollaries:

Previously:

Auto Linking in MachO-Explorer

Milen Dzhumerov:

Auto Linking works by inserting linker flags in object files. When the linker creates the final executable, it’s as if those linker flags were passed as arguments.

[…]

I recently added support for LC_LINKER_OPTION to MachO-Explorer, so you can use it to inspect the linker flags visually as well.

Previously:

Update (2020-09-07): Jeff Johnson:

PROTIP: autolink doesn’t work as expected with import Cocoa

If your binary uses no AppKit symbols, then only Foundation gets linked.

Inside Digital Pregnancy Tests

Tom Warren (Hacker News):

Pregnancy tests used to be fairly simple sticks you peed on, but the move to digital versions has transformed them into tiny computers almost as powerful as the original IBM PC. Fascinated by the digital era of pregnancy tests, Twitter users foone and xtoff recently pulled apart examples from Walmart and Clearblue to reveal what’s really going on inside.

Each test, which costs less than $5, includes a processor, RAM, a button cell battery, and a tiny LCD screen to display the result.

[…]

You might assume that the addition of an LCD screen and processor to digitize this pregnancy test improves the accuracy or modernizes how the test works, but that’s certainly not the case. This digital pregnancy test still includes a paper strip to measure the chemical reaction you create when urinating on the strip.

It’s an interesting user interface problem. Even if the paper strip is the same, the digital tester is probably more accurate because it has been calibrated based on actual strips, whereas the human is reading instructions on the box and may not have seen a variety of actual positive and negative results. The digital test is also less stressful because it gives a definitive result without having to wonder whether one read it properly. How faint a line is too faint to count? Is it just an evaporation line?

The downsides are that the single-use digital test is more wasteful and that the binary result is not 100% definitive. It can in rare situations report a false negative instead of a faint positive. With the analog test, the faint positive would be a sign that you should test again later or that hormone levels were off for some other reason that might warrant investigation.

Update (2020-09-07): foone:

Yesterday I had a lot of retweets and reddit posts and such for playing Doom on a pregnancy test. But as I explained then, it wasn’t really PLAYING on a pregnancy test, it was just a video being played back, not an interactive game.

Well, now it is. It’s Pregnancy Test Doom!

Tokens 2

Gikken (also: Filipe Espósito):

Tokens not only generates promo codes 13x faster than App Store Connect but also provides you with a bunch of entirely new features.

It’s mind-boggling how slow and clunky App Store Connect still is.

The pricing is interesting, as it’s a subscription based on the number of apps that you have. For example, 2 apps costs $80/year.

Previously:

Thursday, September 3, 2020

Recreating the Big Sur Desktop Picture

Tim Hardwick:

The task was even more challenging this time, however, as the default macOS Big Sur wallpaper showcases the dramatic rugged mountainous area of California’s Central Coast region from an elevated vantage point 4,000 feet over the ocean.

After doing some research, Levitt and his friends found out that a drone wouldn’t be able to get the shot, and regardless, flying drones off the coast of Big Sur is against the law. So the team got in touch with a helicopter pilot, who coincidentally turned out to be the same pilot that flew out Apple’s own photographer to get the original shot.

Matt Birchler:

Above is my recreation of the macOS Catalina wallpaper taken in Microsoft Flight Simulator 2020.

And here’s a few versions of the Big Sur wallpaper.

Grayson Blackmon:

Check out the side-by-side re-creations below]…]

Previously:

Update (2020-09-08): Matt Birchler:

I wanted to make a video that showed exactly how it's done so other people can be inspired to go out and get the rest of them.

Keysmith 1.0.4

Otto Labs (via Jonathan Deutsch):

Hit record and Keysmith picks up what you’re doing with your mouse and keyboard. Type some text, or click on buttons, menus, Dock items, lists, and more. Keysmith is smart enough to understand it all.

Use a hotkey to trigger the shortcut from anywhere. Or create hotkeys that are triggered only within a specific app or website.

[…]

No need to remember every hotkey. Run your shortcuts by name with a Spotlight-like search bar

Previously:

App Store Foreign Tax Changes

Apple:

When taxes or foreign exchange rates change, we sometimes need to update prices on the App Store. In the next few days, prices of apps and in-app purchases (excluding auto-renewable subscriptions) on the App Store will increase in response to tax changes in Chile, Mexico, Saudi Arabia, and Turkey. Your proceeds will be adjusted accordingly and will be calculated based on the tax-exclusive price.

[…]

In addition, your proceeds will also be adjusted in Germany, France, Italy, and the United Kingdom, and will be calculated based on the tax-exclusive price. However, prices on the App Store will not change.

France, Italy, and the United Kingdom have added digital services taxes of 2–3%. I don’t understand why Apple is not updating the pricing tiers to take this into account, like it does for VAT. Instead, the tax is mostly coming out of the developer’s cut.

The UK tax was intended to affect “large multi-national enterprises” with £500 million in revenue, but since Apple is the one collecting the payments it pushes very single developer over that limit.

Apple notes that you can change the price at any time, but that’s not very helpful in this case. Unlike other payment processors, the App Store doesn’t let you set different prices in different regions. And there’s no way to raise the price a small amount because you can only go up to the next whole tier.

Previously:

Update (2020-11-02): Apple:

When taxes or foreign exchange rates change, we sometimes need to update prices on the App Store. In the next few days, prices of apps and in-app purchases (excluding auto-renewable subscriptions) on the App Store will increase in Brazil, Colombia, India, Indonesia, Russia, and South Africa.

Purchasing In-App Ads Without IAP

Ben Lovejoy:

The iPhone maker claims that it treats all apps equally, but the reality is that Apple has developed a complex set of rules which allow it to make exceptions to suit its own needs…

iA:

Ads are digital goods. What else are ads? Spiritual goods? They are the digital good. They are what is driving the digital economy in the first place! And, yes, Facebook, Instagram, Twitter, and so on do have direct transactions built into the apps. And, no, they do not pay any fees to Apple for these in-app transactions.

Instagram:

You can buy, run and track ads on Instagram in one of three ways.

Within the App

The easiest way to run ads is by promoting posts you’ve shared on Instagram. Just select the post you want to promote, and then track how many people are seeing and interacting with your promoted post by tapping.

John Gruber:

“How’s this allowed?” I thought. But rereading the App Store Guidelines, I don’t think it violates anything? Not unlocking features, not paying for content.

Mohammed Hussain:

Same thing in the eBay app where you pay in-app using their credit card processing to add features to listings of items you are selling.

Apple:

[3.1.1] If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase.

[…]

3.1.5(a) Goods and Services Outside of the App: If your app enables people to purchase goods or services that will be consumed outside of the app, you must use purchase methods other than in-app purchase to collect those payments, such as Apple Pay or traditional credit card entry.

I suppose Apple’s argument would be that ads and listings are primarily consumed inside the app but by other people. However, you can also manage your ads and listing within your copy of the app, so it certainly seems very similar to other purchases that would require IAP. I don’t see any principled distinction here.

See also: Accidental Tech Podcast.

Previously:

Update (2020-09-07): Nick Heer:

Buying ads does not “unlock features or functionality within [an] app” any more than, say, using a banking app to send or receive money. Neither uses in-app purchases because it would not make sense. But that is an awful thin line that, as Reichenstein writes, benefits ad-supported anti-privacy apps over those that have a one-time or monthly cost.

Tanner Bennett:

I like the way you put it. There is no simple, consistent, principled set of rules to which IAPs get the cut and which don’t. At this point we should all realize it’s completely arbitrary. The “reader app” rule is arguably the most convoluted exception.

Tuesday, September 1, 2020

Setting Default URL Handlers

Brent Simmons:

NetNewsWire lets you set the default RSS reader to itself or any other RSS reader. It’s an important feature.

Now that we’re sandboxing the app, we’re losing that feature, as LSSetDefaultHandlerForURLScheme is apparently disallowed for sandboxed apps[…]

This is a good example of how the sandbox still feels half-baked. 9 years later, it’s not documented that this function doesn’t work in sandboxed apps. There’s no replacement API, e.g. that asks the user whether it’s OK to change the URL handler. The system UI for setting the preferred RSS app has been removed, so the user can’t do it manually.

Was it worth it? Was there an epidemic of URL handler changers that we’re being protected from? Apps in the Mac App Store need to be sandboxed, and if this API were enabled in the sandbox it could in theory be policed by App Review, anyway. Apps outside the Mac App Store don’t need to be sandboxed, and malware certainly isn’t, so the restriction only affects legitimate apps that are trying to do the right thing—which the restriction discourages.

Quinn:

If you’re sandboxing just because it’s the right thing to do, you should be able to move this call to a non-sandboxed XPC Service

However, this would not be allowed in the Mac App Store.

Erik Schwiebert:

Outlook used to have a pref like that to set itself as the default mail reader. We deleted it when we sandboxed the Mac Office apps, and now point admins to tools like duti. Not end-user friendly, but I don’t know a way around it.

Picsew 3.5

TidBITS:

We’ve found the Picsew app for iPhone and iPad invaluable for combining and modifying screenshots, and, most importantly, applying device frames to iPhone, iPad, and Apple Watch screenshots. It’s a free download in the App Store, with a $0.99 in-app-purchase to upgrade to Picsew Standard or $1.99 to upgrade to Picsew Pro. You need Picsew Standard for adding device frames, annotations, high-quality exports, and more, but Picsew Pro is necessary only if you want to make multiple screen screenshots by recording video rather than combining static screenshots.

[…]

One of our favorite features of Picsew is that it can remove scrollbars and clean up the status bar in iOS screenshots.

App Attest

Bruno Rocha:

As (possibly) a response to jailbreaking become popular again in recent times, Apple has released their own measure to this problem. In iOS 14, the new App Attest APIs provide you a way to sign server requests as an attempt to prove to your server that they came from an uncompromised version of your app.

It’s important to know that App Attest is not a “is this device jailbroken?” check, as that has been proven over and over to be impossible to pinpoint. Instead, it aims to protect server requests in order to make it harder for hackers to create compromised versions of your app that unlock premium features or inserts features like cheats.

[…]

As you can’t trust your app to protect itself, App Attest requires work on your backend to be fully implemented.

Thermal Corner for the 16-inch MacBook Pro

Peter Steinberger:

I found out that my MacBook Pro 2019 runs way faster if I close the lid when using an external screen - 2.7GHz (base 2.4+turbo) vs ~1.5 GHz due to thermal throttling. Gonna accept that these things can only drive one screen fast.

I never had this problem with my 2012 MacBook Pro. I’m glad I bought the 16-inch, because Big Sur doesn’t support the original Retina model, but the new one is a regression in this and other basics like trackpad, Touch Bar, and keyboard.

Ian (via Peter Steinberger):

There’s a 222 (so far) pages thread on Apple Forums with more information about this (or related)

Up to 226 now.

Previously: