Archive for June 8, 2021

Tuesday, June 8, 2021

StoreKit 2

Apple:

StoreKit 2 delivers powerful, Swift-native APIs for in-app purchases and auto-renewable subscriptions. Learn how you can easily implement in-app purchases and subscriptions, and discover APIs for retrieving product information, handling transactions, determining product entitlements and customer status, as well as comprehensive testing support in Xcode.

Jake Mor:

The Refund API doesn’t let you programmatically issue a refund to your customers. It merely lets you show a sheet to customers, so they can request a refund from Apple. They hear back within 48 hrs.

Ryan Jones:

This makes it look like Devs control the refund. So we get all the ire, even more. With no control.

nut_bunnies:

When Apple really doesn’t want to do something but is pressured into offering a “sweet solution,” you can just feel the contempt they have for the people asking for the full thing

On the plus side, it does look like StoreKit 2 makes lots of things easier.

Kosta Eleftheriou:

Google Play does what?? 🤯

“You may get an automatic refund if you uninstall a paid app shortly after first buying it”

Previously:

Update (2021-06-13): Jacob Eiting:

This is huge. You are now able to get to IAP transactions IDs from the customer order ID present in customer emails.

This will help a ton with the evergreen “I purchased this thing, where is my content” support ticket.

Update (2021-10-20): Michael Love:

Bunch of new StoreKit stuff they didn’t mention at all, though it appears they still aren’t allowing developers to actually initiate refunds likely due to the fact that the whole backend is made out of tin cans + string.

“Invoice Lookup” is nice, but only works if the user has a receipt, which they usually don’t - Google has supported search by email from the beginning and they’ve done it safely/anonymously (have to enter it exactly + they don’t display it).

Apple:

StoreKit 2 introduces powerful new Swift-based APIs that make supporting in-app purchases and subscriptions easier than ever. You can now easily determine product entitlements and eligibility for offers, quickly get a user’s history of in-app purchases, find out the latest status of a subscription with one simple check, provide a way to request refunds and manage subscriptions from within your app, and more. StoreKit 2 also uses Swift concurrency and JSON Web Signature to simplify how you retrieve product information and handle transactions.

Jacob Eiting:

“Wow, StoreKit2 is going to kill RevenueCat”

The reality:

Update (2022-10-13): Craig Hockenberry:

You know what would be great? The TestFlight sandbox working with StoreKit2 as well as Xcode does.

I have never seen it return currentEntitlements and that’s a hell of a thing to be missing if you want to test behavior for PAYING customers.

At this point, I’d prefer TestFlight to use the production App Store backend.

Let testers pay for real or hand out promo codes as needed.

The current situation achieves nothing.

Joe Cieplinski:

Could not agree more. Getting paid is about as crucial a function of shipping an app as can be, and yet we’re still ultimately left to cross our fingers and ship to the general public before we know for certain it’s working properly.

Update (2024-02-01): Luc Vandal:

Is it just me or StoreKit 2 is far from reliable on macOS? Products or subscriptions not loading, app unable to connect to the StoreKit service (XPC), etc. It’s pretty flawless on iOS. 🦗🦗🦗 from the StoreKit team or on Apple Dev forums (which is not surprising).

Update (2024-05-07): Luc Vandal:

Working with StoreKit 2 is frustrating. Production often differ from debug, dealing with Family Sharing adds another layer of complexity. Hopefully, we’ll see significant improvements this June. It’s frustrating to debug production issues blindly, so a more robust solution would be highly welcomed.

Shortcuts for Mac

Apple:

Shortcuts is coming to macOS, and your apps are a key part of that process. Discover how you can elevate the capabilities of your app by exposing those features as Shortcuts actions. We’ll show you how to build actions for your macOS apps built with Catalyst or AppKit, deploy actions across platforms, publish and share shortcuts, and enable your app to run shortcuts from other apps. We’ll also take you through how Shortcuts fits in with existing Mac automation technologies like Automator and AppleScript.

Mitchel Broussard:

Shortcuts will be integrated throughout macOS Monterey, in the menu bar, Finder, Spotlight, and even with Siri. Apple also noted that users will be able to import existing Automator workflows into Shortcuts, and Automator will remain supported.

Stephen Hackett:

Developers of traditional Mac apps — even those built with AppKit — can add Shortcuts support to their projects via Intents, just like support is added in iOS apps.

That might seem surprising, but considering that Apple pitched this as the start of a longer transition, getting traditional Mac apps on board is going to be required if Apple wants to discontinue Automator somewhere down the line.

[…]

Moving workflows from Automator to Shortcuts couldn’t be easier. Drag and drop your .workflow file onto Shortcuts, and it will be transformed into a Shortcut automatically.

This seems to be because Apple has re-implemented its own built-in Automator actions in Shortcuts. Third-party Automator actions don’t work in Shortcuts.

Maynard Handley:

Does it have debugging?

Does it have logging?

Does it have the ability to cut and paste SECTIONS of a shortcut?

To duplicate then modify a shortcut?

As far as I can tell, the answers to these questions are No, except that you can duplicate shortcuts and then edit them. I wasn’t able to play around with Shortcuts much because it kept crashing in SwiftUI (which it’s implemented using). I was curious to try the new SwiftUI focus and keyboard navigation features, but alas they seem to be a work in progress.

Previously:

Update (2021-06-13): Jeff Nadeau:

/usr/bin/shortcuts

Mert Dumenci:

Because I’m so excited about this (and Shortcuts for Mac in general), another fun tip: try chaining shortcut runs!

shortcuts run "Resize" —input-path photo.jpg | shortcuts run "Resize" | shortcuts run "Resize" —output-path resized.jpg

Update (2021-06-29): Dr. Drang:

All in all, this looks like everything I wanted in Mac Shortcuts. As I said in the post two years ago, the ability to run every kind of automation from every other kind of automation is key to making a fluid system, where you can use each tool for what it does best. Also, it means that third-party automation tools like Keyboard Maestro, which has a good AppleScript dictionary for running its macros, will fit in well with the new environment even before they incorporate Intents that are directly accessible from Shortcuts.

There is one oddity left unresolved. The emphasis Apple put on being able to run shell scripts from Shortcuts and vice versa seems to be at odds with its declaration with the release of Catalina that built-in scripting languages are being deprecated[…]

Previously:

Update (2021-09-07): Jason Shell:

On the Mac side it is also really, really rough, even on the latest beta. I got a crash within 30 seconds and there’s also a lot that doesn’t quite work right...

Steve Troughton-Smith:

While I’m on the topic of macOS 12 & SwiftUI frustration, there is… a lot of work… the Shortcuts app still needs, to be ready to ship in a macOS 12 RC. It feels like Shortcuts is really struggling with SwiftUI too, which makes me feel a little better about my apps

Update (2021-10-15): John Voorhees:

One of the worst UI elements in Shortcuts for Mac is the image picker. It opens by default as a single column list of thumbnails and every time you resize it, all the thumbnails reload and the M1 iMac beachballs. Window resizing arrows disappear at times too. Super frustrating 😭

Steve Troughton-Smith:

We’re only a couple weeks away from a macOS 12 RC at most, so now is the time for tough love. The general OS reliability is pretty mixed, and Shortcuts is dangerously close to torpedoing its first outing on the Mac and poisoning the well on Apple’s efforts to modernize automation

It would probably be wise to launch Shortcuts with a ‘Beta’ label; it needs a free pass to evolve for a while

Ezekiel Elin:

Cannot control Low Power Mode with Shortcuts in Monterey 🙃

Josh Ginter:

Here’s how to run a shortcut from the menu bar in Shortcuts for macOS Monterey.

Howard Oakley:

As an introduction to future articles about Shortcuts and how to get more out of it, this article provides an overview of the last 28 years of scripting the Mac.

[…]

Four months after WWDC, Apple has released precious little documentation for developers; indeed, what it has produced in Xcode to date states that the interface required to support Shortcuts isn’t generally available in macOS 12, but is confined to Catalyst apps, which contradicts presentations given at WWDC, which stated clearly that Shortcuts was supported in AppKit, which is generally accessible. As a result, for most third-party developers Shortcuts support is unlikely to be feasible with the release of Monterey, and the only support is going to come in macOS itself and Apple’s own apps, much of which is still based on Shortcuts in iOS and iPadOS.

Previously:

Update (2021-10-28): Stephen Hackett:

I am loving having Shortcuts on my Mac, but I really do wonder if using SwiftUI to build it was the right call. A lot of the controls are finicky, but this pop-up is just about the saddest looking thing I’ve ever encountered in a first-party Mac app

Previously:

Update (2021-12-03): David Sparks:

I worry that folks eager to try Shortcuts for Mac are going to get frustrated when the creation process fails them. (For example, I spent 10 minutes fighting with Shortcuts this morning to set a variable.) Once new users get a Shortcut built, there is no guaranty it will perform correctly given the current state of things. To make this worse, there is very little in the way of error reporting. A lot of times the Shortcut will fail with no feedback whatsoever to the user so you don’t know if you made a mistake in constructing it, or if the feature you called is just broken.

Update (2021-12-17): Nicholas Riley:

Wow, people were not kidding about Shortcuts on Mac. Could not find a way to copy and paste actions and eventually realized it was copying/pasting the shortcuts (in the window behind) instead. Back to iPad…

Update (2022-02-11): Dr. Drang:

Upgraded to Monterey over the weekend, and today is my first day looking at Shortcuts on a Mac. You people have been far too generous. So much normal Mac behavior either doesn’t work or is inconsistent. An absolute piece of shit. And you say it was worse a few months ago?

John C. Welch:

I can create an event on my Exchange Calendar in the “Add New Event” shortcut, or any calendar Calendars can see, (which is something you can’t do via AppleScript, and has been that way since iCal first supported Exchange. Can’t imagine why I am so cynical about Apple’s automation “commitment”), but you can’t do that for Contacts. […] The Finder shortcuts are still so basic as to be not useful. You can’t just make a new file. You can’t make a new folder. I don’t know why Apple bothered with it if they’re going to limit it that much.

Update (2022-06-03): Peter N Lewis:

Sigh, so the shortcuts utility does not match names in a way that is composed/decomposed agnostic, and NSTask actively decomposes all arguments (!?!?) with fileSystemRepresentation, which makes it quite hard to use NSTask to run shortcuts in a way that is unicode-safe.

Update (2023-04-21): John Gruber:

Shortcuts on Mac continues to look like it was written by developers who have never used a Mac.

TestFlight Finally Coming to the Mac

Sami Fathi:

Apple today announced that TestFlight, which allows developers to public test their apps before launch, will be coming to the Mac as part of wider tools meant to improve app development.

Apple:

Learn how you can manage builds and testers, collect feedback, and deploy your macOS app. Discover enhancements for internal testing and new features that integrate with Xcode Cloud to make testing even easier on all platforms.

From what I’ve heard it will only work with macOS 12 Monterey and later.

Previously:

iOS 15 and iPadOS 15 Announced

Alex Guyot (iOS 15 preview, features, iPadOS 15 preview, features, Julio Ojeda-Zapata, Hartley Charlton):

This year’s updates include significant improvements to core first-party apps, new controls for maintaining focus, system-wide text and object recognition in images, and much more.

On the iPad-only side of things, Apple has announced a variety of new multitasking interface elements, feature parity with the iPhone’s Home Screen, quick note capturing available at any time in any app, and an overhauled Swift Playgrounds which supports building and shipping complete SwiftUI apps to the App Store.

Previously:

Update (2021-06-13): Matthew Panzarino:

So I ask Borchers and Marineau-Mes to talk a little bit about multitasking. Specifically Apple’s philosophy in the design of multitasking on iPadOS 15 and the update from the old version, which required a lot of acrobatics of the finger and a strong sense of spatial awareness of objects hovering out off the edges of the screen.

Craig Hockenberry:

It appears that there’s no way to dismiss the multitasking buttons if you trigger them accidentally.

Which means you can’t have your own UI anywhere near the top middle of the screen and risk an errant tap.

James O’Leary:

the multitasking stuff from WWDC killed me, I thought for years there was a revolution coming, 12 years in, its just a crippled + opaque version of what we’ve had all along...if you’re going to do that, just do the windowing system and stop wasting all these years...

macOS 12 Monterey Announced

Apple (features, John Voorhees, Mitchel Broussard):

Connect, share, and create like never before. Say hello to exciting new FaceTime updates. Explore a redesigned and streamlined Safari. Discover and invent powerful new ways to work using Universal Control and Shortcuts. Stay in the moment with Focus. And so much more.

Howard Oakley:

You may recall my rather pessimistic speculation as to which models might be supported by macOS 12 last week, which ran[…] I’m delighted to report that Apple’s confirmed list of supported models is considerably more generous[…]

José Adorno:

With the second major software update to take advantage of the Apple Silicon, here are the features Apple introduced that will be only available to its Macs with proprietary processors.

Previously:

Update (2021-06-13): Joe Rossignol:

Apple has not explained why any of these features are not available on Intel-based Macs. For what it’s worth, Google Earth has long offered an interactive 3D globe of the Earth on Intel-based Macs both on the web and in an app.

Josh Centers:

Overall, maintaining support for old devices while restricting certain new features to more capable recent models is a great strategy. That way, fewer people are forced to buy new hardware just to participate, but the new features encourage hardware upgrades for those who want to take advantage of them.

Let’s dig into the details, first for iOS 15 and iPadOS 15, moving on to macOS 12 Monterey with side trips for Universal Control and AirPlay on Mac, and finishing off with watchOS 8.

Howard Oakley:

Over the last few years, major versions of macOS have brought huge changes which many users are still wrestling with: a brand new file system (APFS in 10.13), privacy controls (10.14 onwards), loss of support for 32-bit code (10.15), notarization (10.15), startup volume groups (10.15), and sealed system volumes (11), for example. This year there don’t appear to have been any such shocks coming in the new.