Project Icon

mas

Mac App Store应用管理的命令行接口

mas-cli是一个为Mac App Store设计的命令行接口工具,支持通过终端搜索、安装、更新和管理应用。该工具可通过Homebrew或MacPorts安装,提供列出已安装应用、搜索新应用、批量更新等功能,简化了Mac用户的应用管理流程。mas-cli主要面向需要自动化和脚本处理的用户,但也适合喜欢命令行操作的普通用户使用。

mas-cli

mas-cli

Mac App Store的简单命令行界面。为脚本编写和自动化而设计。

软件许可证 Swift 5 GitHub 发布 由 Hound 审核 构建、测试和代码检查

📲 安装

🍺 Homebrew

Homebrew 是首选的安装方式:

brew install mas

MacPorts

MacPorts 也可以使用:

sudo port install mas

⚠️ 请注意,从 MacPorts 或核心 Homebrew 公式安装 mas 需要 macOS 10.15 (Catalina) 或更高版本。

☎️ 较旧的 macOS 版本

我们提供了一个自定义 Homebrew tap,其中包含自 10.11 以来所有 macOS 版本的预构建软件包。

要从我们的 tap 安装 mas:

brew install mas-cli/tap/mas

Swift 5 运行时支持

mas 需要 Swift 5 运行时支持。macOS 10.14.4 及更高版本包含了它,但早期版本没有。 如果没有它,运行 mas 可能会报告类似这样的错误:

dyld: Symbol not found: _$s11SubSequenceSlTl

要获得 Swift 5 支持,你有几个选择:

🐙 GitHub 发布

另外,二进制文件可在 GitHub Releases 中获取。

🤳🏻 使用方法

Mac App Store 中的每个应用程序都有一个产品标识符,这也用于 mas-cli 命令。使用 mas list 将显示所有已安装的应用程序及其产品标识符。

$ mas list
446107677 Screens
407963104 Pixelmator
497799835 Xcode

可以使用 mas search 按名称搜索应用程序,它将搜索 Mac App Store 并返回匹配的标识符。 包含 --price 标志可在结果中显示价格。

$ mas search Xcode
497799835 Xcode
688199928 Docs for Xcode
449589707 Dash 3 - API Docs & Snippets. Integrates with Xcode, Alfred, TextWrangler and many more.
[...]

找到应用程序标识符的另一种方法是:

  1. 在 Mac App Store 中找到应用程序
  2. 选择 共享 > 复制链接
  3. 从字符串中获取标识符,例如对于 Xcode, https://apps.apple.com/us/app/xcode/id497799835?mt=12 的标识符为 497799835

要安装或更新应用程序,只需使用应用程序标识符运行 mas install

$ mas install 808809998
==> 正在下载 PaintCode 2
==> 已安装 PaintCode 2

如果你想安装 search 命令返回的第一个结果,请使用 lucky 命令。

$ mas lucky twitter
==> 正在下载 Twitter
==> 已安装 Twitter

请注意,此命令不允许你首次安装(甚至购买)应用程序:在这种情况下请使用 purchase 命令。 ⛔ 从 macOS 10.15 Catalina 开始不支持 purchase 命令。请参阅已知问题

$ mas purchase 768053424
==> 正在下载 Gapplin
==> 已安装 Gapplin

请注意,你可能需要在 App Store 中重新验证身份才能完成购买。 如果应用程序不是免费的,或者你配置了账户不记住免费购买的凭据,就会出现这种情况。

使用 mas outdated 列出所有有待更新的应用程序。

$ mas outdated
497799835 Xcode (7.0)
446107677 Screens VNC - Access Your Computer From Anywhere (3.6.7)

mas 只能安装/更新 Mac App Store 中列出的应用程序。 使用 softwareupdate(8) 实用程序下载系统更新(例如 Xcode 命令行工具)

要安装所有待更新的应用程序,请运行 mas upgrade

$ mas upgrade
正在升级 2 个过时的应用程序:
Xcode (7.0), Screens VNC - Access Your Computer From Anywhere (3.6.7)
==> 正在下载 Xcode
==> 已安装 Xcode
==> 正在下载 iFlicks
==> 已安装 iFlicks

可以通过向 mas upgrade 提供应用程序标识符来选择性地执行更新

$ mas upgrade 715768417
正在升级 1 个过时的应用程序:
Xcode (8.0)
==> 正在下载 Xcode
==> 已安装 Xcode

🚏📥 登录

⛔ 从 macOS 10.13 High Sierra 开始不支持 signin 命令。请参阅已知问题

要首次登录 Mac App Store,请运行 mas signin

$ mas signin mas@example.com
==> 正在登录 Apple ID:mas@example.com
密码:

如果你在以这种方式登录时遇到问题,可以要求使用图形对话框登录 (由 Mac App Store 应用程序提供):

$ mas signin --dialog mas@example.com
==> 正在登录 Apple ID:mas@example.com

你还可以在命令中嵌入密码。

$ mas signin mas@example.com 'ZdkM4f$gzF;gX3ABXNLf8KcCt.x.np'
==> 正在登录 Apple ID:mas@example.com

使用 mas signout 从 Mac App Store 注销。

🍺 Homebrew 集成

mas 已与 homebrew-bundle 集成。如果安装了 mas,并运行 brew bundle dump,那么您的 Mac App Store 应用将包含在创建的 Brewfile 中。有关更多详细信息,请参阅 homebrew-bundle 文档。

⚠️ 已知问题

随着时间推移,Apple 改变了 mas 用于管理 App Store 应用的 API,限制了其功能。请使用 App Store 应用进行登录或购买应用。后续可以使用 mas install 重新下载。

  • ⛔️ 从 macOS 10.13 High Sierra 开始,不支持 signin 命令。#164
  • ⛔️ 从 macOS 10.15 Catalina 开始,不支持 purchase 命令。#289
  • ⛔️ 从 macOS 12 Monterey 开始,不支持 account 命令。#417

mas 从 Mac 上的应用包中看到的版本并不总是与 App Store 报告的相同应用包版本匹配。这导致 outdatedupgrade 命令的行为与 App Store 应用中显示的过时情况不同,造成一些混淆。更令人困惑的是,由于 CDN 传播和缓存,新应用版本发布到 App Store 到在 App Store 应用或通过 mas 命令显示可用之间往往有一些延迟。这些问题导致了类似 #384#387 的症状。

搭载 Apple 芯片的 Mac 可以从 App Store 安装和运行 iOS 和 iPadOS 应用。mas 目前还无法识别这些应用,也无法安装或更新它们。#321

💥 当出现问题时

如果您看到这个错误,可能是因为您还没有通过 App Store 安装应用。 参见 #46

此 Apple ID 无法重新下载此项目,原因可能是由其他用户购买或项目已退款或取消。

如果 mas 未按预期工作(例如,无法更新/下载应用),请运行 mas reset 并重试。 如果问题仍然存在,请提交错误报告。 非常感谢您的所有反馈!✨

📺 使用 tmux

mas 通过与 Mac App Store 相同的系统服务运行。这些服务作为独立进程存在,通过 XPC 进行通信。因此,mastmux 中运行时会遇到类似剪贴板的问题。有一个包装工具可以修复剪贴板行为,同时也适用于 mas

您应考虑配置 tmux 使用该包装工具,但如果不想这样做,也可以一次性使用如下方法:

brew install reattach-to-user-namespace
reattach-to-user-namespace mas install

ℹ️ 从源代码构建

您可以通过打开根 mas 目录在 Xcode 中构建,或在终端中:

script/bootstrap
script/build

构建输出可以在项目内的 .build/ 目录中找到。

✅ 测试

本项目中的测试是最近正在进行的工作。 由于 Xcode 不官方支持命令行工具目标的测试, 所有逻辑都是 MasKit 目标的一部分,测试在 MasKitTests 中。 测试使用 Quick 编写。

script/test

📄 许可证

mas-cli 由 @argon 创建。 代码采用 MIT 许可证

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号