From bfed0a7605fe6d9862a516feff76b9ba327a0969 Mon Sep 17 00:00:00 2001 From: Chris Araman Date: Wed, 3 Nov 2021 13:48:18 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=84=20Direct=20all=20disabled=20comman?= =?UTF-8?q?d=20warnings=20to=20#known-issues?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 +++++++++++++++++++++----- Sources/MasKit/Commands/SignIn.swift | 4 +++- Sources/MasKit/Errors/MASError.swift | 12 ++++++------ 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 22faea5..184d6be 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,7 @@ $ mas lucky twitter > Please note that this command will not allow you to install (or even purchase) an app for the first time: use the `purchase` command in that case. +> ⛔ The `purchase` command is not supported as of macOS 10.15 Catalina. Please see [Known Issues](#%EF%B8%8F-known-issues). ```bash $ mas purchase 768053424 @@ -148,6 +149,8 @@ Xcode (8.0) ### 🚏📥 Sign-in +> ⛔ The `signin` command is not supported as of macOS 10.13 High Sierra. Please see [Known Issues](#%EF%B8%8F-known-issues). + To sign into the Mac App Store for the first time run `mas signin`. ```bash @@ -156,11 +159,8 @@ $ mas signin mas@example.com Password: ``` -> ⚠️ Due to breaking changes in the underlying API that mas uses to interact with the Mac App Store, -> the `signin` command has been temporarily disabled on macOS 10.13+ ⛔. -> For more information on this issue, see [#164](https://github.com/mas-cli/mas/issues/164). - -If you experience issues signing in this way, you can ask to signin using a graphical dialog (provided by Mac App Store application): +If you experience issues signing in this way, you can ask to sign in using a graphical dialog +(provided by Mac App Store application): ```bash $ mas signin --dialog mas@example.com @@ -182,6 +182,22 @@ Use `mas signout` to sign out from the Mac App Store. then your Mac App Store apps will be included in the Brewfile created. See the [homebrew-bundle] docs for more details. +## ⚠️ Known Issues + +Over time, Apple has changed the APIs used by `mas` to manage App Store apps, limiting its capabilities. Please sign in +or purchase apps using the App Store app instead. Subsequent redownloads can be performed with `mas install`. + +- ⛔️ The `signin` command is not supported as of macOS 10.13 High Sierra. [#164](https://github.com/mas-cli/mas/issues/164) +- ⛔️ The `purchase` command is not supported as of macOS 10.15 Catalina. [#289](https://github.com/mas-cli/mas/issues/289) +- ⛔️ The `account` command is not supported as of macOS 12 Monterey. [#417](https://github.com/mas-cli/mas/issues/417) + +The versions `mas` sees from the app bundles on your Mac don't always match the versions reported by the App Store for +the same app bundles. This leads to some confusion when the `outdated` and `upgrade` commands differ in behavior from +what is shown as outdated in the App Store app. Further confusing matters, there is often some delay due to CDN +propagatioon and caching between the time a new app version is released to the App Store, and the time it appears +available in the App Store app or via the `mas` command. These issues cause symptoms like +[#384](https://github.com/mas-cli/mas/issues/384) and [#387](https://github.com/mas-cli/mas/issues/387). + ## 💥 When something doesn't work If you see this error, it's probably because you haven't installed the app through the App Store yet. diff --git a/Sources/MasKit/Commands/SignIn.swift b/Sources/MasKit/Commands/SignIn.swift index 77fc128..f1b7cf0 100644 --- a/Sources/MasKit/Commands/SignIn.swift +++ b/Sources/MasKit/Commands/SignIn.swift @@ -20,7 +20,9 @@ public struct SignInCommand: CommandProtocol { /// Runs the command. public func run(_ options: Options) -> Result { if #available(macOS 10.13, *) { - return .failure(.signInDisabled) + // Signing in is no longer possible as of High Sierra. + // https://github.com/mas-cli/mas/issues/164 + return .failure(.notSupported) } guard ISStoreAccount.primaryAccount == nil else { diff --git a/Sources/MasKit/Errors/MASError.swift b/Sources/MasKit/Errors/MASError.swift index 2f594ce..eeee564 100644 --- a/Sources/MasKit/Errors/MASError.swift +++ b/Sources/MasKit/Errors/MASError.swift @@ -9,8 +9,9 @@ import Foundation public enum MASError: Error, Equatable { + case notSupported + case notSignedIn - case signInDisabled case signInFailed(error: NSError?) case alreadySignedIn @@ -38,12 +39,11 @@ extension MASError: CustomStringConvertible { case .notSignedIn: return "Not signed in" - case .signInDisabled: + case .notSupported: return """ - The 'signin' command has been disabled on this macOS version. \ - Please sign into the Mac App Store app manually. - For more info see: \ - https://github.com/mas-cli/mas/issues/164 + This command is not supported on this macOS version due to changes in macOS. \ + For more information see: \ + https://github.com/mas-cli/mas#known-issues """ case .signInFailed(let error):