MaaAssistantArknights macOS 接入完全指南:PlayCover、MuMu Pro、AVD 与 Intel 系安卓模拟器的 MAA 配置详解
2026/9/13 19:16:00 网站建设 项目流程

MaaAssistantArknights macOS 接入完全指南:PlayCover、MuMu Pro、AVD 与 Intel 系安卓模拟器的 MAA 配置详解

【免费下载链接】MaaAssistantArknights《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights

本篇技术指南基于官方文档 macOS 设备支持 展开,系统讲解 Apple Silicon 与 Intel 两类 Mac 芯片上《明日方舟》小助手(MAA)的接入方案:PlayCover(iOS 客户端)、MuMu Pro、AVD、BlueStacks Air 及夜神模拟器等方案的支持现状、完整配置步骤与限制条件。读完后你将能够根据自己机器的芯片类型选择正确的运行方案,配置MacPlayTools触摸模式或 ADB 连接地址,理解 MAA 底层的 PlayTools 控制器协议,并规避截图异常、SELinux 限制等常见坑点。

按芯片类型选择接入方案总览

MAA 的 macOS 支持按 CPU 架构分为两套路径,选错方案会导致后续所有配置失效,因此先按下表确定所属类别:

芯片架构推荐/支持的运行方案关键配置要点
Apple Silicon(M 系列)PlayCover(最流畅)、MuMu 模拟器 Pro、AVD、BlueStacks AirPlayCover 需MacPlayTools触摸模式;其余走 ADB
IntelBlueStacks(CN/全球版)、夜神模拟器、AVD需在模拟器内开启 ADB 连接/调试开关

文档特别提示:由于 Mac 版开发人力有限、更新节奏较慢,Intel 用户可以考虑用 Mac 内建的多系统功能安装 Windows 后改用 Windows 版 MAA。

以下逐方案展开,并对每个方案的底层实现机制给出源码级说明。

Apple Silicon:PlayCover(原生运行,最流畅方案)

支持现状与已知限制

PlayCover 方案为实验性支持。遇到问题时官方建议提交 Issue,并在标题中注明涉及 iOS/macOS。

另有一条 macOS 系统层面的固有限制需要特别注意:由于 macOS 自身的机制问题,在游戏窗口最小化、在后台切到其他窗口、或将窗口移动到其他桌面/屏幕后,截图可能出现异常导致 MAA 无法正常工作(对应上游问题 #4371)。实操中应尽量让 PlayCover 窗口保持在当前桌面且保持激活状态。

完整配置步骤(7 步)

原文档给出了从 0 到 6 共 7 个步骤,这里完整继承并补充每步的含义:

  1. 版本要求:MAA 版本需为v4.13.0-rc.1及以上。PlayCover 依赖的MacPlayTools触摸模式在该版本后才可用。
  2. 安装 PlayCover:从 PlayCover 官方渠道(或文档推荐的 fork 版本 Release)下载安装 PlayCover。
  3. 安装游戏客户端:下载已解密的《明日方舟》iOS 安装包,在 PlayCover 中安装。
  4. 配置 PlayCover 绕过项:在 PlayCover 中右键点击《明日方舟》,选择「设置 - 绕过」,勾选以下四项后确认:
    • PlayChain 使用(Enable PlayChain)
    • 越狱检测绕过使用(Enable Jailbreak Detection Bypass)
    • 内建库插入(Insert Introspection Libraries)
    • MaaTools(这是 MAA 与 iOS 客户端通信的桥梁库,后文会解释其作用)
  5. 启动游戏并验证:重新启动《明日方舟》。如果窗口标题栏末尾出现[localhost:端口号],说明 MaaTools 已成功激活并监听了一个本地 TCP 端口——这个地址就是 MAA 的连接入口。
  6. MAA 侧配置:在 MAA 中打开「设置 - 连接设置」:
    • 触摸模式:设置为MacPlayTools
    • 连接地址:填入标题栏[]内的内容(即localhost:端口号)。
  7. 连接测试:配置完成后 MAA 即可正常连接。如果出现图像识别错误,可尝试在 PlayCover 中将游戏分辨率设置为 1080P(MAA 的识别模板基于标准分辨率制作,分辨率不匹配是识别失败的高频原因)。
  8. 维护节奏:第 3~5 步只需执行一次。之后正常启动游戏即可;但每次《明日方舟》客户端更新后,需要重新执行第 2 步(重新安装解密的客户端包)。

源码纵深:MacPlayTools触摸模式如何工作

从源码结构看,MacPlayTools是 MAA 触摸模式枚举中的一个独立成员。在 AsstTypes.h 中定义为MacPlayTools = 3,在 Assistant.cpp 中解析连接配置字符串"MacPlayTools"并切换控制器:

else if (constexpr std::string_view MacPlayTools = "MacPlayTools"; value == MacPlayTools) { m_ctrler->set_touch_mode(TouchMode::MacPlayTools);

随后 Controller.cpp 将其映射到专用的PlayToolsController

case ControllerType::MacPlayTools: return std::make_shared<PlayToolsController>(m_callback, m_inst, platform_type);

PlayToolsController.cpp 揭示了第 4 步中[localhost:端口号]背后的通信机制——MAA 通过 TCP socket 与游戏内注入的 MaaTools 库直接对话,完全不经过 ADB:

  • 握手:open() 连接host:port后发送 4 字节握手包{'M','A','A',0},必须收到{'O','K','A','Y'}签名才视为激活成功——这正是"标题栏出现端口号"所代表的状态;
  • 版本协商:check_version() 发送VERN请求获取 MaaTools 版本,版本过低时会向 GUI 回调ConnectionInfo消息(why: NeedUpgrade),提示需要升级;
  • 截图协议:screencap() 支持RGBASCRN请求,收到 4 通道数据后做COLOR_RGBA2BGR转换)、BGRBGR\x01请求,带 12 字节宽高大小头)以及 macOS 原生MacSCK(ScreenCaptureKit)三种方法,后两者由连接配置MacBGR/MacSCK指定;
  • 触摸注入:toucher_commit() 以{0,9,'T','U','C','H'}请求头 + 5 字节负载(触摸相位 Began/Moved/Ended + 网络序 x/y 坐标)下发触摸事件;
  • 游戏生命周期:start_game() 在 PlayTools 下直接返回成功(iOS 侧由用户手动启动游戏,与第 7 步的维护逻辑一致),而 stop_game() 通过TERM请求终止游戏;
  • 任务插件适配:StartGameTaskPlugin.cpp 中检测到ControllerType::MacPlayTools时会跳过 Android 特有的管道数据校验,直接走ctrler()->start_game()分支,印证了 PlayCover 路径与 Android 路径在任务层是分开的。

这也解释了步骤 6 中"分辨率设为 1080P"的建议来源:fetch_screen_res()通过SIZE请求拉取的是 PlayCover 实际渲染尺寸,若与模板库假设的分辨率偏差过大,识别命中率自然下降。

Apple Silicon:MuMu 模拟器 Pro

文档结论:支持,但测试覆盖较少,且必须使用MacPlayTools以外的触摸模式(例如 ADB 系触摸模式)。对应的上游问题为 #8098。实操建议:连接地址参考 连接设置文档 中 MuMu Pro 的参考端口16384127.0.0.1:16384),并在「连接设置」中把触摸模式切换为 ADB 系模式后再测试。

Apple Silicon:AVD(Android 虚拟设备)

文档结论:支持,并且额外支持 AVD 截图增强模式。结合 connection.md 的说明:AVD 截图增强模式由 MaaFramework 层实现,因此启用它需要选择MaaFwAdb触摸执行方式——在 MAA「连接设置」中把触摸模式设为MaaFwAdb相关项即可。

SELinux 限制(Android 10+ 重要坑点):从 Android 10 开始,当 SELinux 处于Enforcing模式时Minitouch触摸模式不可用。二选一处理:

  • 切换到其他触摸模式;
  • 或把 SELinux临时切换为Permissive模式(注意"临时",日常使用不建议长期关闭强制策略)。

Apple Silicon:BlueStacks Air(M 系列芯片优化版,免费)

文档结论:支持且经过测试,可通过maatouch(MaaTouch)以127.0.0.1:5555连接。

必要前置操作:在模拟器的「设置 - 高级」中启用「Android 调试 (ADB)」。未开启该开关时 MAA 无法建立 ADB 会话,连接会直接失败。

Intel 芯片:BlueStacks、夜神与 AVD

BlueStacks 模拟器(CN 版与全球版)

文档结论:两个版本均完全兼容。差异仅在 ADB 开关的入口名称:

  • BlueStacks CN:在模拟器「设置 - 引擎设置」中启用ADB 连接允许
  • BlueStacks 全球版:在模拟器「设置 - 高级」中启用Android Debug Bridge

开启后即可按 连接设置文档 中 BlueStacks 的参考端口(5555/5556/5565/5575/5585/5595/5554)填写连接地址,或直接用 MAA 的自动检测。

夜神模拟器(Nox / Yeshen)

文档结论:完全兼容

文档还给出了一个 macOS 特有的实用细节:夜神在 macOS 上的 adb 二进制文件位于

/Applications/NoxAppPlayer.app/Contents/macOS/adb

在其父目录(即macOS目录)下执行adb devices即可确认当前 adb 端口:

# 进入 /Applications/NoxAppPlayer.app/Contents/macOS 后执行 ./adb devices

输出的127.0.0.1:<端口>emulator-<四位数>即为可填入 MAA 的连接地址。这个"adb 路径 + 连接地址"的填写方式同样适用于所有 ADB 系模拟器方案,通用的自动检测与手动配置流程详见 连接设置文档。

AVD(Intel)

与 Apple Silicon 下的 AVD 相同:支持,且支持 AVD 截图增强模式(需选择MaaFwAdb执行方式);Android 10+ 且 SELinux 为EnforcingMinitouch不可用,处理方式同上。

故障排查速查

综合文档与源码行为,macOS 接入问题可按下列顺序排查:

现象可能原因处理
PlayCover 标题栏没有出现[localhost:端口]MaaTools 注入未生效重做「设置 - 绕过」四项勾选;确认客户端重新安装过
MAA 连接失败且日志提示 PlayTools 版本不支持游戏客户端更新后 MaaTools 版本低于要求按 check_version() 的回调提示升级客户端包(执行第 2 步)
图像识别频繁错误(PlayCover)渲染分辨率与模板库不匹配PlayCover 内把分辨率设为 1080P
窗口最小化/切换桌面后 MAA 卡住macOS 系统截图限制(#4371)保持 PlayCover 窗口在前台当前桌面
ADB 连接失败(BlueStacks/夜神)模拟器内 ADB 开关未启用按对应方案小节启用 ADB 调试开关
Minitouch触摸无效(AVD, Android 10+)SELinux 处于Enforcing换触摸模式或临时将 SELinux 设为Permissive

小结

macOS 上运行 MAA 的核心决策链是:先按芯片选方案(Apple Silicon 首选 PlayCover,其余走 ADB 系模拟器;Intel 走 BlueStacks/夜神),再按方案配触摸模式(PlayCover 必须MacPlayTools,AVD 增强截图需MaaFwAdb,MuMu Pro 避免MacPlayTools),最后核对连接地址与模拟器内 ADB 开关。理解MacPlayTools背后的 TCP 握手与截图/触摸协议(见 PlayToolsController.cpp)后,标题栏端口号、NeedUpgrade提示、截图方法回退等行为都能得到合理解释,排查问题时可以做到有的放矢。

【免费下载链接】MaaAssistantArknights《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询