Releases: mas-cli/mas
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-MacDesktopapps by @rgoldberg in #1199 - Get
minimumOSVersionforMacDesktop-MacDesktopapps from App Store page forsearchby @rgoldberg in #1201
Full Changelog: v5.1.0...v5.2.0
v5.1.0: ↕️ Install/update & uninstall improvements
What's Changed
🚀 Features
- Add
--alltouninstallby @rgoldberg in #1178 - Output path to deployed app by @rgoldberg in #1184
- Warn if potentially undesired app folder modified by @rgoldberg in #1190
🐛 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>…oruninstallwithout 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
- Ignore trailing 0 version components in inaccurate version comparison (thanks, @WarningImHack3r)
What's Changed
🚀 Features
- Fix additional trailing zeros being counted as version upgrade by @WarningImHack3r in #1175
New Contributors
- @WarningImHack3r made their first contribution in #1175
Full Changelog: v5.0.1...v5.0.2
v5.0.1: 🏗️ Fix macOS 14 build
- Fix macOS 14 build
What's Changed
Changes
- Fix macOS 14 build & test in GitHub by @rgoldberg in #1174
Full Changelog: v5.0.0...v5.0.1
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
- Increase minimum macOS version to 13 Ventura by @rgoldberg in #1164
- Use Swift 6.2 by @rgoldberg in #1165
- Remove
account,region&signinby @rgoldberg in #1167 - Improve regex usage &
unsafeusage by @rgoldberg in #1169 - Remove unnecessary
MAS.&mas.by @rgoldberg in #1172
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
- Deduplicate ADAM IDs for install/update by @rgoldberg in #1147
🐛 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&updateby @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
- Improve download output by @rgoldberg in #1141
- Replace protocols with composition by @rgoldberg in #1143
- Trash uninstalled app folders via
FileManagerinstead of via Finder by @rgoldberg in #1150
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
configoutput by @rgoldberg in #1119
🐛 Bug Fixes
- Map each macOS region that does not have an App Store to a region that does have an App Store by @rgoldberg in #1118
- Improve concurrency by @rgoldberg in #1120
- json parsing by @rgoldberg in #1121
- Register installed / updated apps with Launch Services to fix incorrect App Store app page button states by @rgoldberg in #1122
- Improve app install/update output by @rgoldberg in #1124
- Delete existing receipt during update by @rgoldberg in #1125
- No longer require Rosetta for arm64 pkg installer by @rgoldberg in #1126
- Fix accurate outdated app detection by @rgoldberg in #1130
Changes
- Make
Error:prefix red & underlined for argument-parsing errors by @rgoldberg in #1101 - Cleanup by @rgoldberg in #1117
- Rename
configfromasdist, etc. by @rgoldberg in #1129 - Conform multiple types to
Sendableby @rgoldberg in #1132 - Update Swift Argument Parser to 1.7.0 by @rgoldberg in #1135
- Update
Package.resolvedby @rgoldberg in #1137 - Improve
configslices output by @rgoldberg in #1139
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
installerby @rgoldberg in #1088
Changes
- Minor cleanup by @rgoldberg in #1078
- Include app identifying info in warnings & errors as suitable & as easily accomplished by @rgoldberg in #1081
- Improve mas version parsability by @rgoldberg in #1083
- Update pkg installer for wrapper shell script by @rgoldberg in #1090
Full Changelog: v3.1.0...v4.0.0
v3.1.0: 🎯 Configurable outdated app detection accuracy
outdated&updatenow default to using the inaccurate but faster pre-3.0.0 outdated app detection logicoutdated&updatenow have--accurate&--accurate-ignore-unknown-appsflags 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-appsskips all apps that are unknown to the App Store--accurateexists because some apps are unknown to the App Store, but their installers can still be downloaded
- The accurate logic can result in dialog boxes being opened for apps whose installers cannot be downloaded, because either:
outdatedoutput is now properly tabulated
What's Changed
🚀 Features
- Improve download progress output by @rgoldberg in #1074
🐛 Bug Fixes
- Improve outdated app detection by @rgoldberg in #1070
- Properly tabulate
outdatedoutput by @rgoldberg in #1072
Changes
- Improve downloading/installing progress output by @rgoldberg in #1064
- Improve documentation, help text & output; cleanup repo. by @rgoldberg in #1066
- Update GHA
actions/checkoutto 6 by @rgoldberg in #1068
Full Changelog: v3.0.1...v3.1.0