news 2026/7/2 22:20:29

iOS自动化测试:MAC通过Xcode连接真机与WDA环境搭建指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
iOS自动化测试:MAC通过Xcode连接真机与WDA环境搭建指南

1. 项目概述:为什么要在MAC上用Xcode连接真机做自动化测试?

作为一名在iOS开发和测试领域摸爬滚打了多年的老手,我见过太多团队在自动化测试的起步阶段就栽了跟头。最常见的误区就是:只在模拟器上跑自动化脚本,觉得又快又方便,等到了真机环境,各种兼容性问题、性能瓶颈、UI适配Bug就全冒出来了,前期投入的测试脚本有一大半都得返工。所以,今天我想跟你深入聊聊一个被很多新手忽略,但却是构建可靠iOS自动化测试体系的基石——如何在MAC系统下,通过Xcode稳定地连接iOS真机,并为其后的自动化测试铺平道路。

简单来说,这个过程就是搭建一座从你的MAC电脑(测试指令发出端)到iOS真机(测试执行端)的稳定桥梁。Xcode作为苹果官方的集成开发环境,是这座桥梁最核心、最可靠的“施工方”和“监理方”。它不仅能帮你把测试App安装到手机上,还能建立调试通道,让你可以实时获取设备日志、截图,甚至进行性能剖析。无论你后续是打算用Appium、XCTest还是其他任何基于WDA(WebDriverAgent)的框架,这一步都是无法绕开的“硬通关”。

你可能听过一些绕过Xcode的“野路子”,比如用某些三方工具直接安装证书或应用。但以我的经验来看,那些方法在简单场景下或许能跑通,一旦遇到系统升级、证书过期、权限变更等复杂情况,排查起来简直就是噩梦,远不如走官方这条路来得稳定和透明。这篇文章(上篇)的目标,就是带你从零开始,手把手搞定Xcode与iOS真机的连接、配置与调试,把这座桥建得既稳固又高效,为后续的自动化脚本执行扫清所有障碍。

2. 环境准备与核心工具链解析

在开始动手之前,我们得先把“工具箱”准备齐全。这不仅仅是安装几个软件,更是理解它们各自扮演的角色和可能遇到的“坑”。

2.1 硬件与系统要求

首先是最基础的硬件门槛。你的MAC电脑需要运行macOS 10.15 Catalina或更高版本,这是运行新版Xcode的硬性要求。对于iOS真机,理论上支持iOS 9.0及以上系统,但为了获得最好的兼容性和稳定性,我强烈建议将手机系统更新到与Xcode版本相匹配的最新稳定版。例如,如果你使用Xcode 15,那么iOS 17就是最理想的配对。

这里有一个关键细节:USB连接线。千万别小看这根线,它可能是你遇到的第一个玄学问题源头。务必使用苹果原装或经过MFi认证的数据线。我踩过的坑是,使用某些第三方劣质线缆,会导致连接时断时续,Xcode的设备列表里设备图标时隐时现,或者安装应用时莫名其妙失败,错误信息还非常模糊。原装线在数据传输稳定性和供电能力上都有保障。

2.2 Xcode的安装与关键组件

Xcode是整个流程的指挥中心。你可以通过Mac App Store免费下载。安装过程看似简单,但有几个点需要注意:

  1. 版本选择:除非你有特殊的老项目兼容需求,否则一律安装当前最新的稳定版。新版本通常包含最新的iOS SDK和更稳定的设备支持库。避免使用Beta版进行主要的自动化环境搭建,以免遇到未知的兼容性问题。
  2. 安装空间:Xcode体积庞大,安装后加上各版本模拟器和SDK,轻松占用超过30GB空间。确保你的Mac有足够的硬盘余量。
  3. 命令行工具(Command Line Tools):这是重中之重。很多自动化脚本和工具(如Homebrew, xcodebuild命令)都依赖它。安装Xcode后,你需要手动安装或确认它。打开终端(Terminal),输入命令xcode-select --install。如果弹出窗口,点击安装即可。安装后,可以通过xcode-select -p查看路径,通常应该是/Library/Developer/CommandLineTools/Applications/Xcode.app/Contents/Developer

注意:有时即使安装了Xcode,系统可能仍未正确指向命令行工具。如果你在后续使用xcodebuild命令时遇到错误,可以尝试用sudo xcode-select -s /Applications/Xcode.app/Contents/Developer来强制切换。

2.3 开发者账号与证书配置

这是连接真机测试的核心“通行证”体系,也是新手最容易懵圈的地方。苹果为了安全,要求任何要在真机上运行的应用(包括你的测试App)都必须经过签名。

  1. 免费与付费账号:个人开发者账号(Apple ID)就可以进行真机调试,但有数量限制(最多3台设备)和有效期限制(7天)。对于自动化测试,尤其是需要长期稳定运行的CI/CD环境,我强烈建议使用每年99美元的付费开发者账号。付费账号生成的开发证书和配置文件有效期一年,且可以注册更多测试设备,省去频繁重签的麻烦。
  2. 在Xcode中登录:打开Xcode,进入Xcode -> Settings...(或Preferences...) ->Accounts选项卡,点击左下角的+号,选择Apple ID,输入你的开发者账号和密码。
  3. 自动管理签名(推荐给新手):这是Xcode提供的一个简化流程的功能。当你创建一个新项目或打开现有项目时,在项目的Signing & Capabilities面板中,勾选Automatically manage signing,然后选择你的Team(即登录的开发者账号)。Xcode会自动为你完成以下操作:
    • 创建iOS开发证书(Development Certificate)。
    • 在开发者门户注册你当前连接的设备(需要你同意)。
    • 创建App ID。
    • 生成并安装开发配置文件(Provisioning Profile)。 这个方式极大降低了手动配置的复杂度,适合快速开始。

2.4 手动管理证书(进阶理解)

虽然自动管理很方便,但作为自动化测试的搭建者,了解背后的原理至关重要,尤其是在证书出问题时,你能快速定位。

  1. 证书(Certificates):存储在Mac钥匙串(Keychain Access)中的一对公私钥,证明“你是谁”。开发证书用于签名应用。
  2. 标识符(Identifiers):主要是App ID,例如com.yourcompany.YourApp,它定义了应用的唯一身份和所能使用的服务(如Push Notification)。
  3. 设备(Devices):所有你需要进行真机测试的iPhone/iPad的UDID都需要在此注册。
  4. 配置文件(Provisioning Profiles):这是一个将上述三者(证书、App ID、设备)捆绑在一起的“打包文件”。它被安装到设备上,告诉设备:“这个由特定证书签名的、特定ID的应用,允许在这台设备上运行。”

你可以在 Apple Developer 网站 的Certificates, Identifiers & Profiles板块手动管理所有这些内容。对于自动化测试,尤其是多设备并行测试时,清晰的手动配置流程更容易被脚本化。

3. 连接真机与基础配置实战

环境就绪,现在让我们把手机和电脑真正“连”起来。

3.1 物理连接与信任建立

用USB数据线将iPhone连接到Mac。第一次连接某台设备时,手机上会弹出“信任此电脑吗?”的提示,必须在手机上点击“信任”。同时,Mac上可能也会弹出是否允许访问设备的提示,同样需要允许。

连接成功后,打开Xcode,从顶部菜单栏选择Window -> Devices and Simulators。在打开的窗口中,你应该能在左侧Devices列表下看到你的iPhone设备名称。如果没看到,请按以下步骤排查:

  • 重新插拔USB线,换一个USB端口试试。
  • 重启iPhone和Mac。
  • 检查数据线是否完好。
  • 在Mac的“系统信息”(关于本机 -> 系统报告 -> USB)中查看设备是否被识别。

3.2 在Xcode中运行应用到真机

这是验证连接是否完全正常的最佳方式。

  1. 创建一个全新的iOS项目(例如,Single View App),或者打开你已有的项目。
  2. 在Xcode顶部工具栏的Scheme选择区域(项目名称旁边),将运行目标从模拟器切换为你的真机设备(例如,“iPhone 15 Pro”)。
  3. 确保Signing & Capabilities中的团队(Team)已正确选择,并且自动签名没有报错(通常显示“iOS Developer: your@email.com”)。
  4. 点击运行按钮(三角形)。Xcode会开始编译项目。如果是首次在这台设备上运行,Xcode会自动处理证书和配置文件(如果开启了自动管理签名)。
  5. 编译成功后,应用会被安装到你的iPhone上并自动启动。如果一切顺利,你将在手机上看到这个应用运行起来。

实操心得:第一次运行时可能会比较慢,因为Xcode需要生成证书、注册设备等。如果遇到“Failed to register bundle identifier”或“No profiles for ‘com.xxx’ were found”这类签名错误,通常是因为App ID冲突或配置文件问题。可以尝试以下方法:1) 在Xcode的Signing设置中,更换一个唯一的Bundle Identifier。2) 关闭自动管理,再重新打开,让Xcode重新尝试。3) 去开发者网站检查该App ID是否已被占用。

3.3 获取设备标识符(UDID)

UDID是设备的唯一身份证,在注册测试设备、排查特定设备问题时必不可少。有几种方式获取:

  1. 通过Xcode获取:在Window -> Devices and Simulators中,选中你的设备,在右侧详细信息面板中,标识符(Identifier)那一串长字符就是UDID,可以右键复制。
  2. 通过Finder获取(macOS Catalina及以后):将设备连接Mac,打开Finder,在左侧位置找到你的设备图标,点击。在概览页面,序列号旁边会显示“标识符”,点击它就会切换显示为UDID。
  3. 通过iTunes(旧版)或第三方工具:原理类似。

注意:UDID属于设备隐私信息,不要随意泄露。在团队协作中,通常由设备管理员统一收集并添加到开发者门户的设备列表中。

4. 自动化测试的基石:WebDriverAgent(WDA)揭秘

现在,我们的App已经能在真机上跑起来了。但对于自动化测试,我们需要的是能通过代码远程控制手机的能力,比如点击、滑动、输入文字。这就是WebDriverAgent(WDA)出场的时候了。

4.1 WDA是什么?为什么是它?

WDA是Facebook开源(现由Appium社区维护)的一个iOS移动测试框架。它的核心是一个运行在iOS设备上的Web服务器。你的自动化测试脚本(无论是用Python、Java还是其他语言编写)通过向这个服务器发送HTTP请求(遵循WebDriver协议),服务器接收到指令后,再调用苹果私有的XCTest框架来真正驱动UI执行操作。你可以把它理解为一个“翻译官”和“执行者”。

为什么选择WDA而不是其他?因为它是目前最接近苹果官方方案的第三方开源实现,稳定性和对iOS新特性的支持相对较好。更重要的是,它几乎是所有主流iOS自动化测试框架(如Appium)的底层引擎。搞定了WDA,你就掌握了iOS自动化的命脉。

4.2 手动编译与安装WDA到真机

理解WDA的安装过程,能让你在后续使用Appium等高级框架时,对底层故障有更强的排查能力。

  1. 获取源码:打开终端,使用Git克隆WDA的仓库。

    git clone https://github.com/appium/WebDriverAgent.git cd WebDriverAgent
  2. 使用脚本安装依赖:WDA项目提供了一个脚本,用于安装编译所需的Carthage依赖。

    ./Scripts/bootstrap.sh

    这个脚本会下载必要的库。确保你的网络环境能顺畅访问GitHub。

  3. 用Xcode打开项目:在Finder中,进入你克隆的WebDriverAgent目录,双击打开WebDriverAgent.xcodeproj文件。

  4. 配置签名

    • 在Xcode左侧项目导航器中,选中WebDriverAgent项目根目录。
    • TARGETS下,分别选择WebDriverAgentLibWebDriverAgentRunner
    • 为这两个Target分别配置Signing & Capabilities关键点来了:你需要为WebDriverAgentRunner这个Target单独创建一个新的Bundle Identifier,例如com.yourname.WebDriverAgentRunner。因为它最终是一个要安装到手机上的测试Runner应用。确保Team选择正确,并勾选自动管理签名。
  5. 选择目标设备并运行

    • 在Scheme选择区,确保选中的是WebDriverAgentRunner这个Scheme,目标设备选择你的真机。
    • 点击运行按钮。Xcode会开始编译WDA项目,并将其安装到你的手机上。
    • 首次安装时,手机会提示“未受信任的企业级开发者”。你需要进入手机的设置 -> 通用 -> VPN与设备管理(或描述文件与设备管理),找到对应的开发者证书,点击“信任”。
  6. 验证WDA服务

    • 安装并信任后,WDA应用会在手机上自动启动(你可能看不到明显界面,它主要在后台运行)。
    • 回到Mac,打开终端。WDA会在设备的某个端口(默认8100)启动HTTP服务。但由于设备与Mac不在同一网络,我们需要通过iproxy进行端口转发。
    • 新开一个终端窗口,输入:
      iproxy 8100 8100 [你的设备UDID]
      这条命令将设备上的8100端口映射到本机的8100端口。
    • 打开浏览器,访问http://localhost:8100/status。如果看到返回一个包含"value""sessionId"等字段的JSON数据,恭喜你,WDA服务启动成功了!访问http://localhost:8100/inspector甚至可以打开一个简易的UI查看器。

常见问题与排查

  • 编译错误:最常见的是签名错误。仔细检查WebDriverAgentRunner的Bundle ID是否唯一,证书是否有效。可以尝试删除Xcode Derived Data目录(~/Library/Developer/Xcode/DerivedData/)后重新编译。
  • iproxy命令找不到iproxylibimobiledevice工具包的一部分。可以通过Homebrew安装:brew install libimobiledevice
  • 无法访问http://localhost:8100/status:首先检查iproxy进程是否在运行。然后检查手机上的WDA应用是否真的在运行(有时会闪退)。查看Xcode的控制台输出,里面通常有详细的错误信息,例如权限问题、启动超时等。一个常见问题是缺少“WebDriverAgentRunner”所需的某些Capability,但使用上述的自动签名,Xcode通常会处理好。

5. 深入原理:XCTest框架与WDA的协作机制

知其然更要知其所以然。了解WDA如何与苹果的XCTest框架交互,能让你在编写更复杂的自动化脚本或深度定制时游刃有余。

XCTest是苹果自家的单元测试和UI测试框架,它拥有最高的系统权限来模拟用户交互。WDA并没有重新发明轮子,而是巧妙地“寄生”在XCTest之上。

  1. WDA Runner:我们编译安装的WebDriverAgentRunner本质上是一个基于XCTest的UI测试包(UITest Bundle)。当你通过Xcode启动它时,iOS系统会加载这个测试包,并赋予它调用XCTest API的权限。
  2. HTTP Server:在测试包内部,WDA启动了一个GCDWebServer(一个轻量级HTTP服务器)。这个服务器监听请求。
  3. 协议翻译:当外部测试脚本(如Appium客户端)发送一个WebDriver协议请求(例如,POST /session创建会话,POST /element查找元素)到http://设备IP:8100时,WDA的HTTP服务器接收到这个请求。
  4. 调用XCTest:WDA将接收到的WebDriver指令,翻译成对应的XCTest API调用。比如,“点击坐标(100,200)”这个指令,会被翻译成调用XCUIApplicationXCUIElement的相关方法。
  5. 执行与响应:XCTest框架驱动iOS系统的Accessibility层和UI系统,真正完成点击、输入等操作。执行结果(成功或失败)以及可能的返回值(如元素属性、截图数据)再被WDA封装成WebDriver标准响应,通过HTTP返回给测试脚本。

这种架构的优势在于,WDA本身不包含任何驱动UI的私有API(这会导致应用被App Store拒绝),它只是XCTest的一个客户端。而XCTest是苹果公开允许用于测试的框架,从而保证了方案的合法性和稳定性。同时,通过HTTP暴露接口,使得任何支持HTTP客户端的编程语言都能用来编写iOS自动化测试脚本,实现了跨语言的灵活性。

6. 连接稳定性优化与高级调试技巧

基础连接通了,但要满足自动化测试,尤其是长时间、无人值守的测试任务,稳定性是关键。以下是我在实践中总结的优化点和调试手段。

6.1 解决USB连接的不稳定性

USB连接虽然速度快,但在长期运行的自动化测试机上,可能会因线缆松动、系统休眠、端口重置等原因断开。

  • 使用高质量的USB集线器(Hub)和线缆:选择带独立电源供电的USB Hub,可以为连接的设备提供更稳定的电力,减少因供电不足导致的断连。
  • 禁用Mac的睡眠模式:进入系统设置 -> 电池(对于笔记本)或节能,将“显示器关闭后”和“电池供电时”的选项设置为“永不”,并关闭“如果可能,使硬盘进入睡眠”。
  • 使用libimobiledevice工具监控:除了iproxylibimobiledevice套件中的idevicepairidevicediagnostics也很有用。例如,idevicepair validate可以检查配对状态,在脚本中可以定期运行此命令来确保连接健康。

6.2 转向更稳定的Wi-Fi连接(无线调试)

对于自动化测试,无线连接往往比USB更可靠,因为它避免了物理接触问题,并且方便多设备并行。

  1. 通过USB启用无线调试:设备必须首先通过USB与Mac连接并配对。然后,在Xcode的Devices and Simulators窗口中,选中已通过USB连接的设备,勾选Connect via network选项。成功启用后,设备名称旁边会出现一个网络小球图标。
  2. 断开USB,使用Wi-Fi:现在你可以拔掉USB线。只要设备和Mac在同一个局域网(Wi-Fi)下,该设备会继续出现在Xcode的设备列表中,你可以像使用USB一样进行调试、安装和运行应用。
  3. 对于WDA/自动化测试:无线连接后,WDA服务的IP地址将变为设备在Wi-Fi网络中的IP(可以在设备的设置 -> Wi-Fi -> 点击已连接网络旁的 (i) 图标查看)。此时,你的测试脚本不再需要iproxy进行端口转发,可以直接连接到http://[设备Wi-Fi IP]:8100

重要提示:无线连接的稳定性极度依赖于Wi-Fi网络质量。确保你的测试机和Mac所在的网络信号强、干扰小。在企业环境中,为测试实验室搭建一个专用的、稳定的Wi-Fi网络是非常值得的投资。

6.3 利用Xcode Organizer进行深度设备管理

Xcode的Window -> Devices and Simulators不仅仅是个设备列表,它还是一个强大的设备管理工具。

  • 查看设备控制台(Console):在设备列表中选择设备,点击底部工具栏的“打开控制台”按钮(或按Shift + Command + C)。这里会实时滚动设备的所有系统日志(syslog),对于排查应用崩溃、系统错误、WDA服务异常等问题至关重要。你可以通过过滤关键词(如“WebDriverAgent”、“assertion failed”)来快速定位问题。
  • 截图与录屏:可以直接对连接的设备进行截图和屏幕录制。录制的视频对于分析偶现的UI Bug或自动化测试失败场景非常有帮助。
  • 查看设备日志(Device Logs):与控制台不同,这里显示的是持久化存储的崩溃报告(Crash Reports)和系统日志归档。当应用突然退出时,第一时间来这里查看崩溃日志。

6.4 签名问题的终极排查思路

签名问题千奇百怪,但排查路径可以系统化:

  1. 检查钥匙串:打开“钥匙串访问”应用,在“登录”钥匙串的“我的证书”分类下,查看你的iOS开发证书是否有效(没有红色的“×”标识)。如果无效或过期,需要在开发者门户撤销旧证书,并在Xcode中重新生成(通常清理项目后重新运行,Xcode会自动处理)。
  2. 检查配置文件:在Xcode项目的Signing & Capabilities面板,点击“Provisioning Profile”旁边的(i)图标,可以查看配置文件的详细信息,包括有效期、包含的设备、关联的证书。确保所有信息都符合预期。
  3. 清理DerivedData:Xcode的缓存有时会导致签名状态混乱。彻底关闭Xcode,在终端运行rm -rf ~/Library/Developer/Xcode/DerivedData,然后重新打开项目。
  4. 重启核心服务:在终端运行sudo pkill -9 com.apple.CoreSimulator.CoreSimulatorService && sudo pkill -9 usbmuxd,然后重新插拔设备。usbmuxd是负责USB通信的守护进程,重启它能解决很多连接和识别问题。
  5. 核武器:删除并重新添加账户:如果以上都无效,可以尝试在Xcode的Accounts设置中移除你的Apple ID,然后重新添加。这会让Xcode重新拉取所有证书和配置文件信息。

7. 为自动化测试搭建准备:环境检查清单

在进入具体的自动化脚本编写之前,让我们用一个清单来确认你的环境已经100%就绪。你可以把这个清单保存下来,每次搭建新测试机时对照检查。

检查项检查方法预期结果/操作
1. 物理连接将iPhone通过原装线连接Mac手机提示“信任此电脑”,点击信任。Finder或“系统信息”中能识别设备。
2. Xcode设备识别打开Xcode -> Window -> Devices and Simulators设备出现在左侧列表中,状态正常(无警告图标)。
3. 开发者账号XcodePreferences -> Accounts你的Apple ID已登录,团队(Team)状态为有效。
4. 真机运行基础App创建一个新Single View App,选择真机为目标,点击运行。应用成功编译、安装到手机并启动,无签名错误。
5. 获取设备UDIDDevices and Simulators中复制设备标识符。成功复制一串长字符(UDID)。
6. WDA编译环境终端执行git clone./Scripts/bootstrap.sh成功克隆WDA仓库并安装Carthage依赖,无网络或编译错误。
7. WDA项目签名用Xcode打开WDA项目,分别配置WebDriverAgentLibWebDriverAgentRunner的签名。自动管理签名,Team选择正确,WebDriverAgentRunner的Bundle ID唯一且无报错。
8. 安装并运行WDA在Xcode中选择WebDriverAgentRunnerScheme和真机目标,点击运行。应用安装到手机,需要在手机设置中信任开发者证书。Xcode控制台显示启动日志。
9. 验证WDA服务终端运行iproxy 8100 8100 [UDID],浏览器访问http://localhost:8100/status返回包含"value"等字段的JSON数据。
10. 无线连接(可选但推荐)在USB连接状态下,在Xcode设备窗口中勾选Connect via network,然后拔掉USB线。设备图标旁出现网络小球,设备仍在线。可通过设备Wi-Fi IP直接访问WDA服务。

完成以上所有步骤,你的MAC到iOS真机的连接通道就已经是“高速公路”级别了,不仅稳定,而且为后续任何基于WDA的自动化测试框架(如Appium)铺平了道路。在这个过程中,你可能已经遇到了不少“坑”,但每解决一个,你对这套体系的理解就加深一层。这正是手动搭建的意义所在——它赋予了你深度排查和定制化解决问题的能力,这是在云测平台或封装好的工具里无法获得的经验。

在下一篇(下)中,我们将基于这个稳固的基础,深入探讨如何集成Appium,编写并运行你的第一个真正跨平台的iOS自动化测试脚本,并分享如何将其融入持续集成(CI)流水线,实现自动化测试的工程化实践。你会发现,前面所有这些看似繁琐的配置工作,都是为了让后面的自动化执行变得无比顺畅和可靠。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 22:17:36

Playwright离线部署全攻略:内网环境自动化测试环境搭建

1. 项目概述:为什么我们需要离线部署Playwright?最近在给一个客户部署自动化测试环境时,遇到了一个经典难题:生产服务器位于一个严格的内网环境,完全无法访问外部互联网。客户的需求很明确,他们需要一套基于…

作者头像 李华
网站建设 2026/7/2 22:16:51

Filesystem Server 源码剖析:安全沙箱与路径穿越防御

引言:AI的“文件之手”为何需要戴上“手铐” 大语言模型(LLM)的落地应用中,文件操作是打通“创意”到“交付”最后一公里的关键。无论是AI辅助编程、代码生成、文档自动归档,还是日志分析,都离不开对本地文件系统的访问。然而,直接暴露文件系统权限给AI存在巨大的安全隐…

作者头像 李华
网站建设 2026/7/2 22:13:26

告别网盘限速:LinkSwift直链下载助手让你体验飞一般的下载速度

告别网盘限速:LinkSwift直链下载助手让你体验飞一般的下载速度 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…

作者头像 李华
网站建设 2026/7/2 22:06:46

Mythos模型:AI安全能力跃迁与红队Agent工程实践

1. 项目概述:一场静默却震耳欲聋的AI能力跃迁这周,整个AI安全圈没有爆炸性新闻稿,没有铺天盖地的发布会直播,只有一份措辞克制、数据密集的系统卡片(System Card)和一份由英国AI安全研究所(AISI…

作者头像 李华
网站建设 2026/7/2 22:04:42

140、【Agent】【OpenCode】启动分析(await)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除 标题 140、【Agent】【OpenCode】启动分析&am…

作者头像 李华