使用说明
项目简介
本项目 'iOS崩溃分析MCP服务器' 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专门用于接收和分析 iOS 应用程序的崩溃日志。它利用 'atos' 工具进行符号化,结合源码仓库定位崩溃代码行,并根据错误类型提供初步的修复建议。该服务旨在帮助开发者更高效地理解和解决 iOS 应用的崩溃问题。
主要功能点
- 崩溃日志分析: 接收 iOS 崩溃日志文件,提取关键崩溃信息,如堆栈跟踪和错误类型。
- dSYM 符号化: 利用 dSYM 文件将崩溃堆栈中的内存地址转换为可读的函数名和代码行号,方便开发者理解崩溃发生的位置。
- 源码定位: 结合 Git 仓库,根据符号化结果定位到具体的源代码文件和行数,直观展示错误代码上下文。
- 修复建议: 根据常见的错误类型,提供初步的修复建议,例如内存访问错误、算术错误等,为开发者提供排错方向。
安装步骤
-
环境准备:
- 确保您的 macOS 系统已安装 Xcode 或 Command Line Tools (用于 'atos' 工具)。
- 确保已安装 'git' 工具。
- 确保已安装 Python 3.6 或更高版本。
-
安装依赖:
- 建议使用虚拟环境:'python3 -m venv venv'
- 激活虚拟环境:'source venv/bin/activate' (或 'venv\Scripts\activate' for Windows)
- 安装项目依赖:'pip install gitpython packaging fastmcp'
-
启动服务器:
- 运行 'crash_analyzer_server.py' 脚本:'python crash_analyzer_server.py'
- 服务器默认使用 Stdio 传输协议,启动后会在控制台等待 MCP 客户端连接和请求。
服务器配置
MCP 客户端需要配置以下 JSON 信息以连接到 'iOS崩溃分析MCP服务器':
{ "serverName": "CrashAnalyzer", "command": "python", "args": ["crash_analyzer_server.py"] }
配置参数说明:
- 'serverName': MCP 服务器的名称,必须与服务器代码中 'FastMCP("CrashAnalyzer", ...)' 定义的名称一致,这里为 "CrashAnalyzer"。
- 'command': 启动 MCP 服务器的命令,这里使用 'python' 解释器。
- 'args': 启动命令的参数列表,这里指定运行 'crash_analyzer_server.py' 脚本。
注意:
- 确保 MCP 客户端能够找到 'crash_analyzer_server.py' 脚本,如果脚本不在客户端的当前工作目录或环境变量 'PATH' 中,'args' 中需要提供脚本的完整路径。
- 确保 MCP 客户端的网络环境可以访问运行 MCP 服务器的机器。如果服务器和客户端在同一台机器上,则无需特殊网络配置。
基本使用方法
-
MCP 客户端发起请求: MCP 客户端需要调用名为 'analyze_crash' 的 Tool,并提供以下参数:
- 'crash_content': bytes 类型,iOS 崩溃日志文件的内容。
- 'dsym_content': bytes 类型,与崩溃应用版本对应的 dSYM 文件的内容。
- 'git_repo_url': string 类型,崩溃应用源码的 Git 仓库 URL。
-
服务器处理请求: 'iOS崩溃分析MCP服务器' 接收到请求后,会执行以下步骤:
- 将 'crash_content' 和 'dsym_content' 保存到临时文件。
- 从崩溃日志和 dSYM 文件中提取版本信息并进行匹配验证。
- 克隆指定的 Git 仓库并检出与崩溃版本对应的代码。
- 解析崩溃日志,提取堆栈信息。
- 使用 'atos' 工具对堆栈地址进行符号化。
- 根据符号化结果定位到源码文件和行号。
- 从源码中获取崩溃代码行的内容。
- 根据错误类型给出修复建议。
- 将分析结果以字符串形式返回给 MCP 客户端。
-
MCP 客户端接收响应: MCP 客户端接收到服务器返回的分析结果字符串,通常会展示给用户。分析结果包含错误位置(文件名和行号)、崩溃代码行、错误类型以及修复建议。
示例: 假设您有一个 MCP 客户端应用,您需要将 iOS 崩溃日志文件、dSYM 文件和 Git 仓库 URL 作为参数传递给客户端,客户端会按照 MCP 协议与 'iOS崩溃分析MCP服务器' 通信,并将分析结果展示给您。
信息
分类
开发者工具