
开发工具【免费下载链接】VirtualBuddyVirtualize macOS 12 and later on Apple Silicon, VirtualBuddy is a virtual machine GUI for macOS M1, M2, M3, M4项目地址https://gitcode.com/gh_mirrors/vi/VirtualBuddy点击查看免费下载VirtualBuddy 是一款面向 Apple Silicon Mac 的开源虚拟机图形界面GUI专注于让开发者在其上运行 macOS 12 及更高版本尤其是测试版系统以便在多版本 macOS 环境中测试自己的应用。本文基于仓库根目录的 README.md 展开结合 VirtualCore、VirtualUI、VirtualBuddyGuest 等模块的源码实现系统讲解 VirtualBuddy 的安装流程、Beta 系统支持机制、功能清单、进阶使用技巧与源码构建方法帮助你快速上手并深入理解其底层原理。一、系统要求哪些 Mac 可以运行 VirtualBuddyVirtualBuddy 基于 Apple 的 Virtualization frameworkVZVirtualMachine等 API实现因此对硬件与操作系统有明确下限Apple Silicon MacM1 / M2 / M3 / M4 全系可用macOS 13 或更高版本作为宿主系统仓库中 VirtualCore/Source/Definitions/VirtualCoreConstants.swift 定义了核心常量而 VirtualUI/Source/Installer/VMInstallationViewModel.swift 中通过VBGuestType.supportedByHost判断宿主支持的客户机类型——当宿主只支持一种客户机系统时安装向导会自动跳过系统类型选择步骤直接进入恢复镜像restore image选择界面。二、安装 macOS 虚拟机从 IPSW 到可运行的 VMREADME 指出安装 macOS 虚拟机有两种基本路径从 VirtualBuddy 提供的 macOS 版本列表中选择自动下载并安装或者提供自己的 IPSW 链接、或选择本地已下载好的 IPSW 文件。这套交互背后是内置的安装向导Built-in installation wizard。从 VMInstallationWizard.swift 的源码可以看到完整的步骤状态机systemType → restoreImageInput / restoreImageSelection → name → configuration → download → install → done每个步骤在 VMInstallationViewModel.swift 中有对应的subtitle描述Choose Operating System、Select Custom Restore Image、Choose Version 等并且canGoBack逻辑保证了在创建 VM bundle 之后不允许回到客户机类型选择避免中途变更系统类型导致数据错乱。2.1 远程软件目录Software Catalog安装向导的选择版本界面背后是一套可远程更新的软件目录。核心数据结构定义在 VirtualCore/Source/VirtualCatalog/SoftwareCatalog.swift 中根结构SoftwareCatalog包含数据块说明channels发布渠道定义如Beta、Release用于按渠道过滤groups按主版本分组的发布集合如macOS Sequoia、macOS Tahoe带明/暗壁纸缩略图与 BlurHashrestoreImages单个 macOS 恢复镜像条目含 build 号、版本号、IPSW 下载 URL、下载大小requirementSets镜像对虚拟机的资源需求最小 CPU 数、最小内存、最小宿主版本features各项虚拟化功能所需的最低客户机/宿主版本deviceSupportVersions设备支持文件版本说明与安装指引legacyGuestAppVersions旧版 VirtualBuddyGuest 应用的归档含 SHA384、支持的客户机版本区间目录本身是 JSON 格式data/ipsws_v1.json、data/ipsws_v2.json、data/linux_v1.json、data/linux_v2.json为仓库内置的示例数据通过SoftwareCatalog.init(data:)解码、write(to:)写出。UI 侧 RestoreImageSelectionStep.swift 中通过RestoreImageSelectionController加载目录并支持按systemTypemacOS / Linux过滤顶部工具栏提供 Command-R 强制刷新skipCache。2.2 三种镜像来源VMInstallationViewModel.selectInstallMethod(_:)支持三种安装方式与 README 的 Feature Checklist 一一对应Local File通过NSOpenPanel选择本地 IPSW 文件macOS或 .iso 文件Linux支持的文件类型由data.systemType.supportedRestoreImageTypes决定Remote Options从 Apple 服务器上的恢复镜像集合中选择即目录方式Remote Manual粘贴自定义恢复镜像 URLrestoreImageInput步骤通过validateCustomRestoreImageRemoteURL()校验。2.3 下载与安装管线当选择远程镜像后VirtualBuddy 会先执行下载、再执行恢复安装这条链路在源码中有清晰实现TSS 预检macOS 系统在下载前会调用VBAPIClient.shared.signingStatus(for:)检查镜像的签名状态对应setupDownload()中的.preCheck(Checking Signing Status)避免下载一个无法安装的 build 浪费带宽若 TSS 服务器异常则忽略检查继续下载。下载后端正式版使用URLSessionDownloadBackend调试版可通过VBSimulateDownload用户默认项切换到SimulatedDownloadBackend定义于 VirtualCore/Source/Restore/Download/。元数据附着下载完成后会把软件目录中的恢复镜像信息写入文件的扩展属性fileURL.vb_softwareCatalogData这样即使文件被改名或移动VirtualBuddy 仍能将其与目录中的 restore image 匹配。恢复后端选择createRestoreBackend(for:restoreURL:forceVirtualInstallation:)会根据恢复镜像的RequirementSet中的virtualInstallationBackend标志选择VirtualInstallationRestoreBackend基于 MobileDevice 框架的自定义恢复通道源码见 VirtualInstallation/或VirtualizationRestoreBackend基于VZVirtualMachine的恢复 API。中断恢复安装进度会写入 VM bundle 的Install.plistVBVirtualMachine.installRestoreFilename安装窗口被关闭后可以在后续会话中继续安装confirmBeforeClosing会提示Cancel Installation?。此外startPreventingAppTermination会在下载/安装期间阻止应用被系统终止保证长时间任务不中断。三、安装 macOS Beta 与 Golden Gate 注意事项这是 README 中反复强调的重点在 macOS 上运行比宿主更新的客户机系统需要最新的设备支持文件Device Support Files。例如在 macOS 14 宿主上运行 macOS 15 虚拟机需要从 Apple 获取最新的 device support 包设备支持文件有时由 Apple 直接提供但总是随最新 Xcode beta 自动附带安装也可以通过 Apple Developer portal 单独下载。针对macOS Golden GatemacOS 26 测试版README 特别提醒在 macOS 26 宿主上安装 Golden Gate beta需要运行VirtualBuddy 2.2 beta 2 或更高版本并且下载安装 Apple 提供的最新设备支持文件如果已经安装了 Xcode 27 beta则无需单独安装。从源码侧看设备支持文件信息被建模为CatalogDeviceSupportVersion见 SoftwareCatalog.swift包含mobileDeviceMinVersion所需 MobileDevice 框架最低版本、osVersion、面向用户的标题与安装指引文案UI 会在镜像列表中按 OS 版本匹配并展示提示。四、获取 VirtualBuddyVirtualBuddy 免费且开源。README 给出的获取途径包括从GitHub Releases页面下载最新版本当前镜像仓库即为 vi/VirtualBuddy 的加速镜像使用Homebrewbrew install --cask virtualbuddy希望支持项目发展的话可以通过 Gumroad 购买或 GitHub Sponsors 赞助这两项属于作者 Guilherme Rambo 的个人渠道非必需。仓库内还提供了ci_scripts/ci_pre_xcodebuild.sh用于 CI 构建以及 ReleaseNotes/ 目录维护各版本发布说明。五、功能清单与源码对应关系README 的 Feature Checklist 列出了 VirtualBuddy 的完整能力下表补充了对应的源码证据功能说明源码依据启动任意 macOS 12/13 及更高版本含 Beta基于 Virtualization framework 的 Mac 恢复安装VirtualCore/Source/Virtualization/VBVirtualMachineVirtualization.swift启动部分 ARM 版 Linux 发行版官方测试过 Ubuntu Server / DesktopVirtualCore/Source/Virtualization/Helpers/LinuxVirtualMachineConfigurationHelper.swift测试见 VirtualCoreTests/VirtualMachineCreationTests.swift内置安装向导选择 Apple 服务器恢复镜像 / 最新稳定版 / 本地 IPSW / 自定义 URL / 本地 iso / Linux 列表 / URL 安装见上文第二章核心在 VMInstallationWizard.swift启动恢复模式如用于关闭 SIP通过引导选项进入 recoveryVMController.swift 中的启动配置网络与文件共享支持共享文件夹挂载见下文共享文件夹小节剪贴板共享通过 VirtualBuddyGuest 或 SPICE 实现见下文VirtualBuddyGuest小节自定义虚拟机硬件配置CPU / 内存 / 磁盘 / 显示 / 网络 / 键盘 / 指点设备 / 声音 / USBVirtualUI/Source/VM Configuration/ 下各 Section 视图保存与恢复虚拟机状态支持 saved state 的保存与克隆VirtualCore/Source/Models/SavedState/ 及 VMSavedStatesController.swift其中硬件配置模型定义于 VirtualCore/Source/Models/Configuration/ConfigurationModels.swiftVBMacDevice.default提供默认 CPU/内存/磁盘等参数VBVirtualMachineVBVirtualMachine.swift将每台 VM 封装为以.vbvm为扩展名的 bundle内部通过Config.plist、Metadata.plist、Install.plist持久化配置、元数据与安装恢复数据。六、进阶技巧VirtualBuddyGuest、APFS 克隆与共享文件夹6.1 VirtualBuddyGuest 客户机应用当客户机应用guest app功能启用时VirtualBuddy 会在支持的 macOS 虚拟机启动时自动挂载一个包含 VirtualBuddyGuest 应用的磁盘镜像。安装方式在 Finder 侧边栏选择 Guest 磁盘然后双击 VirtualBuddyGuest 应用图标。README 同时明确了不同客户机系统的能力差异仓库 Documentation/GuestAppSupport.md 有更完整的表格客户机系统支持能力macOS 14 及以上 最新 VirtualBuddyGuest剪贴板共享 全部现有客户机集成功能含共享文件夹自动挂载macOS 13 旧版 VirtualBuddyGuest仅共享文件夹自动挂载无剪贴板共享macOS 12 及更早不支持 VirtualBuddyGuest从源码看能力决策集中在 VirtualCore/Source/GuestSupport/GuestAppSupport.swift 的GuestAppSupport.resolve(...)Linux 客户机一律返回.unsupportedmacOS 客户机按恢复镜像元数据记录的客户机版本判断——版本低于内置 guest app 的最低系统版本Bundle.embeddedGuestApp.minimumSystemVersion时降级为.sharedFoldersOnly用户显式选择归档旧版 guest app 时即便客户机较新也只会得到.sharedFoldersOnly因为归档版本无法与当前宿主建立剪贴板通信协议。注意OS 检测基于恢复镜像元数据记录创建 VM 时所用的 OS而非探测运行中的客户机导入的 VM 若无此元数据则采用其显式的旧版 guest app 选择。最新的 VirtualBuddyGuest 要求 macOS 14 及以上。安装逻辑在 VirtualBuddyGuest/GuestAppInstaller.swift从挂载镜像运行时若不在/Applications目录会自动复制到/Applications并重新启动needsInstall检查运行路径与DisableInstall用户默认项。如果安装失败例如客户机用户账号无写权限会给出明确错误提示。6.2 利用 APFS 克隆实现沙盒式实验在虚拟机里尝试新东西时系统可能损坏需要重装整个客户机系统。得益于 APFS 克隆机制你可以在虚拟机库文件夹中用 Finder 的Command D复制一台虚拟机副本几乎不占用额外磁盘空间。这样你可以保留一份干净的 VM在副本上随意折腾坏了就丢弃副本、重新从干净版本克隆一份。这一技巧的实现前提是 VirtualBuddy 的库目录结构每台 VM 是一个.vbvmbundle见 VBVirtualMachine.swift 的bundleExtension常量APFS 对同卷内的目录克隆采用写时复制CoW因此重复克隆几乎零额外成本。VirtualBuddy 自身也提供了复制 VM的工程化能力见 VBSavedStateMetadataClone.swift。6.3 宿主与虚拟机之间的文件夹共享README 给出两种共享方式常规 macOS 文件共享使用系统设置System Preferences/Settings中配置的 macOS 文件共享可在两方向任意共享原生共享配置当虚拟机与宿主都运行 macOS 13 或更高版本时可以在 VirtualBuddy 的 VM 设置中启动 VM 之前直接配置共享文件夹。配置好的共享文件夹在客户机中的挂载命令如下在 VM 的 Terminal 中执行mkdir -p ~/Desktop/VirtualBuddyShared mount -t virtiofs VirtualBuddyShared ~/Desktop/VirtualBuddyShared对应的 UI 实现位于 VirtualUI/Source/VM Configuration/Sections/Sharing/SharedFoldersManagementView.swift、SharingConfigurationView.swift底层通过 virtiofs 协议将宿主目录暴露给客户机测试覆盖见 VirtualCoreTests/ManagedSharedFoldersTests.swift。使用最新 VirtualBuddyGuest 时共享文件夹还会在客户机内自动挂载无需手动执行命令。七、从源码构建 VirtualBuddyREADME 明确在main分支上构建需要Xcode 16。完整步骤如下打开 VirtualBuddy/Config/Signing.xcconfig将VB_BUNDLE_ID_PREFIX设置为唯一前缀如com.yourname.在 Xcode 侧边栏选择 VirtualBuddy 工程在 Targets 下选择 VirtualBuddy进入 Signing Capabilities在 Signing Team 选择你的开发团队对 VirtualBuddyGuest target 重复同样操作构建名为VirtualBuddy的 scheme即名称中不含(Managed)的那个。7.1 配置体系解析工程采用多文件 xcconfig 组合的配置体系入口为 VirtualBuddy/Config/Main.xcconfig#include Paths.xcconfig #include Versions.xcconfig #include Signing.xcconfig #include Features.xcconfig #include InfoPlist.xcconfig #include Security.xcconfig各文件职责Signing.xcconfig签名身份CODE_SIGN_IDENTITY Apple Development、bundle id 前缀与派生 bundle id$(VB_BUNDLE_ID_PREFIX)codes.rambo.VirtualBuddy、GuestHelper 等并通过OTHER_SWIFT_FLAGS为 Release / Dev_Release 注入BUILDING_NON_MANAGED_RELEASE/BUILDING_DEV_RELEASE编译标志AppTarget.xcconfig仅作用于主 App target 的设置——按构建配置选择 entitlements普通版用VirtualBuddy.entitlementsManaged/Dev/Beta 用VirtualBuddy_Managed.entitlements、签名风格普通版 AutomaticManaged 系 Manual 并指定MANAGED_PROFILE、以及按渠道切换 App 图标AppIcon-Default/AppIcon-Dev/AppIcon-zBeta对应 Assets.xcassets 中的三套图标集Dev Release 的产品名带-Dev后缀Features.xcconfig功能开关InfoPlist.xcconfig 与 Security.xcconfigInfo.plist 与安全相关设置。工程还预置了多种 scheme 与配置组合见 VirtualBuddy.xcodeproj/xcshareddata/xcschemes/包括VirtualBuddy、VirtualBuddy (Dev Release)、VirtualBuddy (Managed)、VirtualBuddy (Managed - Beta)以及DeepLinkSecurity、VirtualCore、VirtualInstallation、VirtualUI、VirtualWormhole、vctool等子工程 scheme说明仓库按模块化思路组织多个 target 与库。xcschemes目录下还有VirtualBuddyGuest.xcscheme对应客户机应用 target。八、总结VirtualBuddy 的价值在于在 Apple Silicon 上以接近原生的性能运行多个 macOS 版本含 Beta与部分 ARM Linux 发行版并围绕开发者测试场景提供了内置安装向导、恢复镜像目录、Beta 设备支持文件管理、硬件自定义、状态保存/恢复、剪贴板与文件夹共享、VirtualBuddyGuest 客户机集成等一整套能力。结合本仓库源码你可以进一步深入 VirtualCore虚拟化内核与软件目录、VirtualUISwiftUI 界面与安装向导、VirtualBuddyGuest客户机应用、VirtualInstallation基于 MobileDevice 的恢复通道等模块理解每项功能背后的实现细节甚至基于 BuildManifest 等工具链自行扩展。赞分享开发工具【免费下载链接】VirtualBuddyVirtualize macOS 12 and later on Apple Silicon, VirtualBuddy is a virtual machine GUI for macOS M1, M2, M3, M4项目地址https://gitcode.com/gh_mirrors/vi/VirtualBuddy点击查看免费下载相关推荐VirtualBuddy终极指南在Apple Silicon上轻松虚拟化macOSVirtualBuddy终极指南在Apple Silicon上轻松虚拟化macOS VirtualBuddy是一款专为Apple Silicon Mac设计的开发工具MacVM: 在Apple Silicon上使用虚拟化API构建macOS VM的指南MacVM: 在Apple Silicon上使用虚拟化API构建macOS VM的指南 项目介绍 MacVM 是一个专为 Apple Silicon 设计的 mcontainer在 Apple Silicon Mac 上运行 Linux 容器的完整实战指南container在 Apple Silicon Mac 上运行 Linux 容器的完整实战指南 本文基于 container 项目的 README 与仓库源CLI虚拟化容器运行时云原生上一篇 如何用 Vue 打造高转化抽奖活动vue-lucky-draw 终极指南下一篇如何免费解锁Windows多用户远程桌面RDPWrap终极优化指南 创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考