三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Windows系统通过VMware虚拟机安装macOS并运行Xcode完整指南

Windows系统通过VMware虚拟机安装macOS并运行Xcode完整指南

1. 为什么要在Windows上折腾macOS虚拟机?

如果你是一名iOS或macOS平台的开发者,或者对苹果生态的软件有刚需,但主力机是Windows,那么“在Windows上运行macOS”这个念头大概率在你脑海里出现过。直接购买Mac设备固然是最佳选择,但对于预算有限、只想临时测试,或者像我一样,想在工作用的Windows台式机上“摸鱼”体验一下macOS生态的人来说,虚拟机就成了一个极具吸引力的方案。尤其是当你的工作需要用到Xcode来编译、调试iOS应用,或者只是想体验一下SwiftUI开发时,一个能稳定运行的macOS虚拟机就是你的“上班摸鱼神器”。

然而,这条路从一开始就布满了荆棘。苹果的macOS系统,其许可协议明确限制了它只能在苹果品牌的硬件上安装和运行。这意味着,无论是VMware还是VirtualBox这类主流虚拟机软件,在默认情况下都无法直接创建macOS虚拟机。你需要通过一些“非官方”的手段来解锁这个功能。整个过程涉及寻找合适的macOS镜像(ISO/VMX)、使用解锁工具破解虚拟机软件、进行复杂的虚拟机配置,以及在安装Xcode时可能遇到的各种兼容性问题。网上的教程五花八门,但很多要么步骤缺失,要么版本过时,照着做很容易卡在某个报错界面,让人无从下手。

我花了差不多两个周末的时间,把VMware Workstation Pro里安装macOS Monterey到Ventura的几个版本都折腾了一遍,中间踩遍了几乎所有能踩的坑:从“应用程序‘xxxx’的这个版本不能与此版本的macOS配合使用”到“未能启动虚拟机,模块‘Disk’启动失败”,再到Xcode安装后模拟器无法启动。这篇文章,就是把我这一路的折腾、试错和最终成功的完整过程记录下来。目标很明确:给你一份从零开始,在Windows系统的VMware虚拟机里,搭建一个能流畅运行Xcode的macOS环境的详细指南。我会重点讲解那些教程里通常一笔带过,但实际却最容易出问题的关键环节。

2. 前期准备:工具选择与资源获取的避坑要点

在开始动手之前,准备好正确的工具和资源是成功的一半。这里的选择直接决定了后续安装过程的顺利程度。

2.1 虚拟机软件:为什么是VMware Workstation Pro?

市面上主流的虚拟机软件有VMware Workstation Pro(或Player)、Oracle VirtualBox和Parallels Desktop(仅限macOS主机)。对于Windows主机,我强烈推荐VMware Workstation Pro。原因有以下几点:

  1. 性能与兼容性更优:VMware对macOS的虚拟化支持(经过解锁后)相对更成熟,显卡虚拟化(SVGA)和CPU指令集模拟做得更好。这意味着在虚拟机里运行macOS的UI动画、启动Xcode模拟器会更流畅。VirtualBox虽然免费,但在macOS下的图形性能和硬件兼容性上时常会遇到问题,比如分辨率适配不佳、显卡加速无法开启等。
  2. 快照与克隆功能:Pro版的快照功能是救命稻草。你可以在安装macOS的关键步骤(如系统安装完成、安装VMware Tools前、安装Xcode前)创建快照。一旦后续配置出错或系统崩溃,可以瞬间回滚到健康状态,无需重头再来。这个功能在折腾黑苹果或非官方虚拟机时价值连城。
  3. 网络与硬件模拟更稳定:VMware的虚拟网络配置更灵活,对于需要联网激活、下载Xcode的步骤至关重要。其虚拟硬盘(VMDK)和硬件模拟的稳定性也经过更长时间的考验。

注意:请务必从VMware官网下载正版试用或购买许可证。网络上流传的所谓“破解版”或“绿色版”很可能内置了恶意软件,或与解锁工具(Unlocker)产生冲突,导致无法预知的问题。官网下载的版本是最干净的。

2.2 核心资源:macOS镜像与解锁工具

这是整个过程中最容易出错的两个环节。

1. macOS 安装镜像(ISO/VMX)

你绝对不能直接去搜索引擎找“macOS镜像文件iso下载”,然后随便下载一个。很多来源不明的镜像文件可能被修改过,内含恶意软件,或者版本不完整,导致安装失败。安全且推荐的做法是:

  • 从苹果官方获取,然后自行转换(推荐给有经验者):在一台真正的Mac上,从App Store下载macOS安装器(如“安装 macOS Ventura”),然后使用第三方工具(如createinstallmedia命令配合特定脚本)将其制作为ISO文件。这种方法最纯净,但门槛较高。
  • 使用社区预制的可引导镜像:这是对Windows用户最友好的方式。一些技术社区(如OSx86)的资深爱好者会制作并分享专为VMware/VirtualBox优化过的macOS安装镜像(通常是.cdr或转换后的.iso格式)。这些镜像已经集成了必要的引导文件和基础驱动,大大简化了安装流程。寻找时,请关注镜像对应的macOS具体版本号(如Monterey 12.6.1, Ventura 13.2.1)和发布者的信誉。文件名通常包含“VMware”、“Unlocker”、“Bootable”等关键词。

2. VMware Unlocker 工具

这是让VMware能够识别并创建macOS虚拟机的钥匙。它的原理是修改VMware的一些程序文件,添加对macOS作为客户机操作系统的支持。你需要寻找与你的VMware Workstation版本相匹配的Unlocker工具。GitHub上有一个广为人知的项目叫“VMware Unlocker”,由开发者DrDonk维护。使用前务必查看其Release说明,确认支持你的VMware版本。

重要提示:运行Unlocker前,必须彻底关闭所有VMware相关的进程和服务。包括VMware Workstation主程序、VMware托盘工具,以及后台服务(如VMware Authorization Service,VMware DHCP Service等)。最好在任务管理器中确认所有vmware-开头的进程都已结束。否则,解锁过程会因文件被占用而失败,导致虚拟机创建时根本没有“Apple Mac OS X”的选项。

2.3 硬件要求建议

虚拟机运行macOS,尤其是还要跑Xcode,对宿主机的硬件有一定要求。以下是我的建议配置:

  • CPU:支持Intel VT-x或AMD-V虚拟化技术的64位处理器。必须在主板BIOS/UEFI设置中开启虚拟化技术,这是必须项,否则虚拟机性能极差甚至无法安装。
  • 内存:至少16GB物理内存。分配给macOS虚拟机建议不少于8GB(8192 MB)。Xcode和iOS模拟器都是内存大户,4GB会非常卡顿。
  • 存储:固态硬盘(SSD)必备。为虚拟机预留至少80GB的硬盘空间(动态分配即可,但初始大小建议50GB以上)。系统安装、Xcode(动辄10GB+)和模拟器会占用大量空间。
  • 显卡:无特别要求,集成显卡亦可。VMware会使用虚拟显卡。

3. 详细安装步骤:从解锁VMware到进入macOS桌面

假设你已经下载好了VMware Workstation Pro 17(或16),一个可靠的macOS Ventura 13.x的ISO镜像文件,以及对应版本的VMware Unlocker工具。

3.1 步骤一:彻底解锁VMware

  1. 完全退出VMware Workstation。打开Windows任务管理器,切换到“详细信息”或“服务”标签页,找到所有vmware-开头的进程,右键结束任务。也可以使用命令提示符(管理员)运行net stop命令停止相关服务,但最直接的方法是重启电脑,在启动后不打开任何VMware软件的情况下进行操作。
  2. 将下载的Unlocker工具压缩包解压到一个没有中文和空格路径的目录下,例如D:\VMwareUnlocker
  3. 右键点击解压目录中的win-install.cmd脚本,选择“以管理员身份运行”。这个操作会修改VMware的核心文件,因此需要最高权限。
  4. 等待命令行窗口自动执行完毕,出现“Press any key to continue...”时按任意键关闭。如果脚本执行成功,你不会看到任何关于“macOS”的错误提示。

验证解锁是否成功:重新启动VMware Workstation,点击“创建新的虚拟机”。在“选择客户机操作系统”步骤,你应该能在“Apple Mac OS X”下看到对应的macOS版本选项(如macOS 12, macOS 13)。如果看不到,说明解锁未成功,请返回检查进程是否关闭彻底,并尝试以管理员身份重新运行脚本。

3.2 步骤二:创建并配置macOS虚拟机

这是最关键的一步,配置不当会导致安装失败或后续性能低下。

  1. 新建虚拟机:选择“典型”或“自定义”均可。我偏好“自定义”,以便更精细控制。
  2. 硬件兼容性:选择你VMware的版本(如Workstation 17.x)。
  3. 安装来源:选择“安装程序光盘映像文件(iso)”,并浏览到你下载的macOS ISO文件。
  4. 选择系统:这时应该能正确识别为“Apple Mac OS X”和对应的版本(如macOS 13)。如果识别为“FreeBSD 64-bit”或其他,说明解锁有问题。
  5. 命名与位置:给虚拟机起个名字,并选择一个剩余空间充足的硬盘位置。
  6. 固件类型务必选择“UEFI”。传统BIOS对macOS的支持很差。
  7. 处理器配置:根据宿主机核心数分配。建议至少2个核心(2处理器,每处理器1核心)。如果你的CPU有超线程,可以适当多给,但不要超过宿主机逻辑核心数的一半。例如,8核16线程的CPU,可以分配4核心。
  8. 内存:如前所述,分配8192 MB(8GB)或更多。
  9. 网络类型:选择“NAT”即可,这样虚拟机会共享宿主机的网络连接,方便上网。
  10. I/O控制器和磁盘类型:保持默认的“LSI Logic”和“SCSI”即可。
  11. 选择磁盘:创建新虚拟磁盘。
  12. 磁盘容量:建议80 GB以上。选择“将虚拟磁盘拆分成多个文件”,便于迁移。不要选择“立即分配所有磁盘空间”,除非你的硬盘空间非常充裕。
  13. 磁盘文件命名:默认即可。
  14. 自定义硬件(关键!):在完成前,点击“自定义硬件”。
    • USB控制器:移除USB 3.0控制器(如果存在),因为macOS虚拟机对其兼容性可能不佳。保留USB 2.0即可。
    • 打印机声卡:可以移除以节省资源。
    • 显示器:取消勾选“加速3D图形”。虽然这能提升一些图形性能,但在很多情况下是导致虚拟机启动黑屏或花屏的罪魁祸首。我们先以求稳为主,安装成功后再尝试开启。
    • CPU虚拟化引擎:确保“虚拟化Intel VT-x/EPT或AMD-V/RVI”是勾选的。

完成以上设置后,关闭硬件窗口,点击完成创建虚拟机。

3.3 步骤三:修改虚拟机配置文件(.vmx)

为了让macOS能顺利安装和运行,我们还需要手动编辑虚拟机的配置文件。

  1. 找到你存放虚拟机的目录,里面有一个后缀为.vmx的文件(与你虚拟机名相同)。
  2. 用记事本或其他文本编辑器(如VS Code)以管理员身份打开这个文件。
  3. 在文件末尾添加以下几行关键参数:
    smc.version = "0" cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011" cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111" cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110" cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001" cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001" cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000" cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011" cpuid.1.edx = "0000:0111:1000:1011:1111:1011:1111:1111" hw.model = "MacBookPro14,3" board-id = "Mac-551B86E5744E2388"
    • smc.version = “0”:这是绕过苹果系统管理控制器检查的关键,必须添加。
    • cpuid.*系列参数:这些是CPU ID掩码,用于让macOS的安装程序认为它运行在兼容的Intel Mac硬件上,避免因CPU型号不被支持而卡住。
    • hw.modelboard-id:定义了虚拟机的硬件型号为MacBookPro14,3,这是一个被广泛支持用于虚拟机的型号。
  4. 保存并关闭文件。

3.4 步骤四:安装macOS系统

  1. 启动虚拟机。如果配置正确,你会看到苹果Logo和进度条。
  2. 经过一段时间的加载,会进入“macOS实用工具”界面。
  3. 选择“磁盘工具”。
  4. 在左侧选择VMware虚拟出来的硬盘(通常显示为“VMware Virtual SATA Hard Drive Media”,容量约80GB)。
  5. 点击顶部“抹掉”按钮。
    • 名称:Macintosh HD(或其他你喜欢的名字)。
    • 格式:选择“APFS”。这是macOS High Sierra及之后版本推荐的格式,性能更好。不要选“Mac OS扩展(日志式)”。
    • 方案:GUID分区图。
  6. 点击“抹掉”,完成后退出磁盘工具。
  7. 回到实用工具主界面,选择“安装macOS ...”,然后按照屏幕提示操作。
  8. 在选择安装磁盘时,选择你刚刚抹掉的“Macintosh HD”。
  9. 安装过程会重启数次,全程自动进行,只需耐心等待。整个过程可能需要30分钟到1小时,取决于你的硬盘速度。

安装完成后,虚拟机将重启进入全新的macOS设置向导(选择国家/地区、创建用户账户等)。按照提示完成初始设置,你就可以进入macOS桌面了。

4. 安装后优化与VMware Tools集成

刚安装好的macOS虚拟机,屏幕分辨率可能不对,无法全屏,也无法在宿主机和虚拟机之间拖放文件、共享剪贴板。这就需要安装VMware Tools(在macOS中称为“VMware Tools”)。

4.1 安装VMware Tools

  1. 在VMware菜单栏,点击“虚拟机” -> “安装VMware Tools”。这会在macOS桌面上挂载一个名为“VMware Tools”的虚拟光盘。
  2. 打开这个光盘,你会看到一个.pkg安装包(如Install VMware Tools.pkg)。
  3. 双击运行这个安装包,按照图形化向导一步步安装即可。这需要输入你的macOS用户密码。
  4. 安装完成后,必须重启虚拟机

重启后,你会发现:

  • 屏幕可以自适应VMware窗口大小,并支持全屏了。
  • 可以在宿主机和虚拟机之间自由复制粘贴文本。
  • 文件拖放功能可能仍需在VMware设置中手动启用(虚拟机设置 -> 选项 -> 客户机隔离)。

4.2 性能优化设置

  1. 开启3D加速(可选但推荐):关闭虚拟机,打开虚拟机设置。在“显示器”选项中,现在可以尝试勾选“加速3D图形”。然后启动虚拟机。如果启动后显示正常,UI流畅度会有显著提升。如果出现黑屏、花屏,则关闭此选项。
  2. 调整内存与CPU:根据宿主机的负载情况,你可以在虚拟机未运行时,适当增加分配给它的内存和CPU核心数,以获得更好的性能。
  3. 清理Spotlight索引(可选):虚拟机初次建立,Spotlight会疯狂索引文件,导致卡顿。你可以暂时在“系统设置”->“Siri与聚焦”中关闭一些不需要索引的目录,或者等它索引完成。

5. 安装与配置Xcode:解决常见报错

进入macOS,接下来就是安装我们的目标——Xcode。

5.1 通过App Store安装

这是最官方的方法。

  1. 打开App Store,登录你的Apple ID(如果没有,需要注册一个)。
  2. 在搜索栏搜索“Xcode”。
  3. 点击“获取”->“安装”。Xcode体积巨大(通常超过10GB),下载和安装需要很长时间,请确保网络稳定。

5.2 解决“应用程序不能与此版本的macOS配合使用”错误

这是最常见的一个坑。你可能会在启动已安装的Xcode,或安装从其他途径下载的旧版Xcode时,遇到弹窗提示“应用程序‘Xcode’的这个版本不能与此版本的macOS配合使用。”

原因:这是因为Xcode应用程序包内的Info.plist文件里,定义了它支持的最低macOS版本(LSMinimumSystemVersion)。你当前虚拟机的macOS版本可能低于这个要求,或者版本信息不匹配。

解决方案

  1. 找到安装好的Xcode应用(通常在“应用程序”文件夹里)。
  2. 右键点击“Xcode.app”,选择“显示包内容”。
  3. 进入Contents文件夹。
  4. 找到Info.plist文件,用“文本编辑”或Xcode等工具打开它。
  5. 寻找<key>LSMinimumSystemVersion</key>这一行,它下面跟着的<string>标签里就是要求的最低系统版本号,例如<string>12.5</string>
  6. 方法一(推荐):将这个版本号修改为你当前虚拟机的macOS版本号,或者修改为一个更低的、你知道兼容的版本号(例如11.0)。保存文件。
  7. 方法二(终端命令):更粗暴但有效的方法是,在终端里执行一条命令来绕过这个检查:
    sudo xattr -dr com.apple.quarantine /Applications/Xcode.app
    这条命令移除了Xcode应用的隔离属性,有时也能解决此问题。但修改Info.plist是更对症的方法。
  8. 修改后,再次尝试打开Xcode。

5.3 首次运行与组件安装

首次运行Xcode,它会提示你安装额外的“命令行工具”组件。务必同意安装,这是编译和链接代码所必需的。安装过程需要联网,并可能需要输入密码。

安装完成后,你可以创建一个简单的SwiftUI项目(例如“Hello World”)并尝试编译运行。如果项目能成功构建并在内置的iOS模拟器中运行(模拟器可能需要从Xcode的“Devices and Simulators”窗口单独下载),那么恭喜你,整个环境就基本搭建成功了。

6. 疑难杂症与进阶排查

即使按照上述步骤,也可能遇到一些奇怪的问题。这里列举几个我遇到过的及其解决方法。

问题一:虚拟机启动时卡在“Apple Logo”或黑屏,进度条不动。

  • 排查:首先检查.vmx配置文件中的参数是否添加正确,特别是smc.version = “0”。确保在BIOS中开启了CPU虚拟化支持(Intel VT-x/AMD-V)。
  • 尝试:关闭虚拟机,在设置中尝试将显卡的“加速3D图形”选项关闭。将硬盘控制器从“SCSI”改为“SATA”试试(需要在创建虚拟机时选择,后期改可能需要新建虚拟磁盘)。

问题二:安装macOS过程中,提示“安装器资源已过期”或无法选择磁盘。

  • 排查:这通常是因为下载的macOS镜像版本与虚拟机设置的型号不兼容,或者镜像本身损坏。尝试更换一个不同版本(如从Ventura换到Monterey)或来源更可靠的镜像。确保在磁盘工具中正确格式化为APFS格式。

问题三:Xcode模拟器无法启动,提示“未能启动iOS模拟器”。

  • 排查:模拟器对图形驱动有一定要求。首先确保已安装VMware Tools且3D加速已开启(如果开启后系统稳定)。在Xcode的“Preferences” -> “Components”中,检查模拟器运行时是否已下载完整。有时,删除现有的模拟器(在~/Library/Developer/CoreSimulator/Devices/目录下,谨慎操作)并重新下载安装可以解决问题。
  • 终极方案:如果只是需要编译和调试,可以暂时使用“My Mac”作为运行目标,跳过模拟器。但这无法调试iOS特有的UI和功能。

问题四:虚拟机运行非常卡顿。

  • 排查:检查宿主机资源是否充足。使用任务管理器查看CPU、内存和磁盘占用。确保宿主机没有运行其他大型程序。
  • 优化:为虚拟机分配更多内存(如12GB-16GB)和CPU核心。务必使用SSD。在macOS的“系统设置”->“程序坞与菜单栏”中,将“最小化窗口时使用”改为“缩放效果”而非“神奇效果”,可以减轻一些图形负载。

搭建一个用于开发的macOS虚拟机,更像是一个精细的“系统工程”而非简单的软件安装。每一个环节的疏漏都可能导致前功尽弃。我的经验是,保持耐心,在关键步骤(如解锁后、安装系统前、安装Xcode前)创建虚拟机快照,这样你就有充足的资本去尝试和排错。最终,当你在Windows的窗口里,看到熟悉的macOS桌面和Xcode编译成功的提示时,那种成就感会让你觉得这一切的折腾都是值得的。这个环境虽然无法媲美真机性能,但对于学习SwiftUI、测试跨平台代码、或者临时处理一些macOS特定的任务来说,已经是一个相当完美的解决方案了。

← 返回列表