github mas-cli/mas v2.0.0
v2.0.0: 🩹 macOS 15.4+ compatibility

latest release: v2.1.0
4 days ago

What's Changed

🚨 Requires macOS 10.15 (Catalina) or Newer

mas previously required macOS 10.13 (High Sierra) or newer to run.

mas now requires macOS 10.15 (Catalina) or newer.

This was to migrate threading from third-party PromiseKit to native Swift Concurrency, which facilitated migrating the source of the list of apps installed from the MAS from a now-broken Apple private framework to the public (and working) Spotlight metadata.

The threading migration should (probably negligibly) improve the performance of mas, but, more importantly, facilitate future development.

Requiring macOS 10.15 also allows mas to use other newer frameworks & libraries / current versions of already used frameworks & libraries, as 10.15 was a watershed macOS (mainly because of Swift Concurrency).

Sorry to any users that might be stuck on macOS 10.13 or 10.14.

🩹 Fixed list, outdated & update on macOS 15.4+

mas previously obtained an array of apps installed from the MAS from CKSoftwareMap.shared().allProducts(), which is from CommerceKit, an undocumented Apple private framework.

macOS 15.4, the array is always empty, which broke multiple mas commands: list, outdated & update.

mas 2.0.0 now sources an array of apps installed from the MAS from Spotlight metadata, which fixes the broken commands.

Since Spotlight is a public interface, it shouldn't break without warning.

Unfortunately, Spotlight has all the data for each installed app except for the app name. mas uses the name of the app's folder (with any trailing .app removed) as the app name, which is frequently exactly the same as the app name, but sometimes slightly off.

Future updates to mas might try to source the exact app name (& additional data) from the iTunes Search web API, or from elsewhere.

🚀 Other Features

🏗️ Development (users should ignore this section)

Full Changelog: v1.9.0...v2.0.0

Don't miss a new mas release

NewReleases is sending notifications on new releases.