Releases Β· mas-cli/mas

v5.2.0: πŸ•ΉοΈ Support Apple Arcade apps

  • Support Apple Arcade apps (and anything else that has "MacDesktop-MacDesktop" amongst its supported devices)
  • Parallelize some code

What's Changed

πŸš€ Features

  • Parallelize async code without side effects that cannot be out of order by @rgoldberg in #1203

πŸ› Bug Fixes

  • Support MacDesktop-MacDesktop apps by @rgoldberg in #1199
  • Get minimumOSVersion for MacDesktop-MacDesktop apps from App Store page for search by @rgoldberg in #1201

Full Changelog: v5.1.0...v5.2.0

v5.1.0: ↕️ Install/update & uninstall improvements

What's Changed

πŸš€ Features

πŸ› Bug Fixes

  • Create temp folders for pkg installer & receipt hard links on same volume as original files by @rgoldberg in #1187
  • Create receipt & ancestor folders with correct owner, group & permissions by @rgoldberg in #1192
  • Index in Spotlight folders that should contain App Store apps but that aren't indexed as such in Spotlight by @rgoldberg in #1194

Changes

  • Fix SwiftFormat file header copyright year issue by @rgoldberg in #1180
  • Output error when uninstall --all <app-id>… or uninstall without args by @rgoldberg in #1189
  • Build with Xcode 26.2 on macos-15 & macos-15-intel GHA runners & more by @rgoldberg in #1195

Full Changelog: v5.0.2...v5.1.0

v5.0.2: πŸ…ΎοΈ Ignore trailing 0 version components

v5.0.1: πŸ—οΈ Fix macOS 14 build

v5.0.0: βœ‚οΈ Require macOS 13 to run; remove account, region & signin

  • Fix an install/update deadlock for long installer logs
  • Remove vestigial account, region & signin
  • Require macOS 13+ to run mas
  • Use Swift 6.2

What's Changed

πŸ› Bug Fixes

  • Improve build-time Swift & Swift driver version parsing to be more universal by @rgoldberg in #1163
  • Fix installer output parsing deadlock by @rgoldberg in #1166

Changes

Full Changelog: v4.1.2...v5.0.0

v4.1.2: ⬆️ More install/update & other fixes

  • Many install/update/outdated improvements
  • Many build improvements
  • Minor cleanup

What's Changed

πŸš€ Features

πŸ› Bug Fixes

  • Ensure that notices about downloading phase always output by @rgoldberg in #1152
  • Build using the latest available Xcode by @rgoldberg in #1154
  • Improve version comparison logic for outdated & update by @rgoldberg in #1155
  • Warn users to switch to a mas distribution that is built using Swift 6.2+ by @rgoldberg in #1156
  • Fix pkg installer selection algorithm by @rgoldberg in #1158
  • Choose shortest (instead of first) bundle URL from installer stderr as app folder by @rgoldberg in #1161

Changes

Full Changelog: v4.1.1...v4.1.2

v4.1.1: ⬆️ Install/update & other fixes

  • get, install, lucky, & update: numerous fixes including:
    • Properly updating App Store upon app installation/upgrade
    • Improved concurrency
    • Replace existing app receipt
  • App Store & macOS regions: for each macOS region without an App Store, map to a default App Store specific to that region
  • config: binary slice architecture detection
  • Avoid a JSON parsing error
  • arm64 pkg installer no longer require Rosetta to be installed
  • Standardized error output formatting
  • Cleanup

What's Changed

πŸš€ Features

  • Include mas binary slice architectures & Mac CPU architecture in config output by @rgoldberg in #1119

πŸ› Bug Fixes

Changes

Full Changelog: v4.1.0...v4.1.1

v4.1.0: πŸ” Root privilege usage overhaul

Root privilege usage has been overhauled. mas now:

  • requires root privileges only when absolutely necessary
  • requests root privileges if they have not yet been granted
  • allows root privileges granted during a call to mas to remain valid pursuant to the user's sudo credential timeout setting
  • calls sudo from the executable mas binary, obviating the need for the now-removed zsh wrapper
  • allows all commands to work properly if they are called with a root effective user
    • some commands previously worked properly only if called with a non-root effective user (i.e. were not called via sudo)

What's Changed

πŸš€ Features

  • Omnibus: sudo from Swift, non-expiring sudo credentials, macos-15-intel GHA runners, documentation, massive cleanup by @rgoldberg in #1098

Full Changelog: v4.0.0...v4.1.0

v4.0.0: 🎁 Workaround installd/PackageKit restriction

Workaround installd/PackageKit restriction (#1029) via a methodology found by @alienator88.

The workaround requires root privileges for get/purchase, install, lucky & update/upgrade.

Automatically requests root privileges via running sudo in an executable shell wrapper around mas.

Root privileges may also be supplied by running sudo mas … on your command line.

What's Changed

πŸš€ Features

  • Executable zsh wrapper around executable binary that uses sudo when appropriate by @rgoldberg in #1086

πŸ› Bug Fixes

  • Workaround installd/PackageKit access restriction introduced in macOS 26.1, 15.7.2 & 14.8.2 by @rgoldberg in #1041
  • Cleanup workaround for installd/PackageKit access restriction introduced in macOS 26.1, 15.7.2 & 14.8.2 by @rgoldberg in #1075
  • Don't warn if multiple bundles installed by installer by @rgoldberg in #1088

Changes

Full Changelog: v3.1.0...v4.0.0

v3.1.0: 🎯 Configurable outdated app detection accuracy

  • outdated & update now default to using the inaccurate but faster pre-3.0.0 outdated app detection logic
  • outdated & update now have --accurate & --accurate-ignore-unknown-apps flags to use the accurate but slower outdated app detection logic first released in 3.0.0
    • The accurate logic can result in dialog boxes being opened for apps whose installers cannot be downloaded, because either:
      • The app was installed for a different Apple Account than the current one
      • The installer is no longer available from the App Store
        • --accurate-ignore-unknown-apps skips all apps that are unknown to the App Store
        • --accurate exists because some apps are unknown to the App Store, but their installers can still be downloaded
  • outdated output is now properly tabulated

What's Changed

πŸš€ Features

πŸ› Bug Fixes

Changes

Full Changelog: v3.0.1...v3.1.0