15分钟跑通Whisky:在Apple Silicon Mac上运行Windows程序的操作手册
15分钟跑通Whisky:在Apple Silicon Mac上运行Windows程序的操作手册
【免费下载链接】WhiskyA modern Wine wrapper for macOS built with SwiftUI项目地址: https://gitcode.com/gh_mirrors/wh/Whisky
被Windows版工具卡住时的一个选择
你手上这台Mac,偏偏要跑一个只有Windows版的工具。装虚拟机嫌卡,装双系统嫌烦,自己翻Wine的命令行更劝退。Whisky就是为这个场景做的:一个原生SwiftUI应用,让你在Mac上运行Windows程序——建个容器,把安装文件拖进去,全程不用碰命令行。它底层用的是CrossOver 22.1.1和苹果官方的Game Porting Toolkit(D3DMetal),图形和游戏兼容性有官方技术打底,不是裸跑的Wine。
Whisky 运行 Windows 程序的3项前提与2条装法
| 项目 | 要求 | 备注 |
|---|---|---|
| 芯片 | Apple Silicon(M1/M2/M3) | Intel Mac不支持 |
| 系统 | macOS Sonoma 14.0及以上 | 代码里写死了macOS 14基线 |
| 存储 | WhiskyWine加一个容器,预留2GB以上 | 装得越多容器越大 |
Intel芯片的Mac没有Whisky这条路,只能考虑虚拟机或老式Wine方案。另有一句实话:README里已注明项目不再积极维护,某个老程序哪天跑不动了,别太意外。
主路径(推荐):
brew install --cask whisky✅ 一条命令装好,后续更新也由Homebrew接管,最省心。
备路径(手动):
- 从项目仓库下载最新的Whisky应用包
- 把Whisky.app拖进"应用程序"文件夹
- 首次启动被拦截的话,到"系统设置→隐私与安全性"里允许
动手前搞懂3个词:Bottle、WhiskyWine与DXVK
Bottle(容器):每个Bottle就像一个"样品箱":里面封着一套完整的小Windows,有自己的系统文件、自己的注册表、自己的C盘。动一箱不碰另一箱,删一箱全部归零。
WhiskyWine(运行时):Whisky本身只是"底盘",WhiskyWine才是"发动机"——Whisky定制的Wine运行时,首次启动时下载安装,装一次,所有容器共用。
DXVK(图形转换层):给图形走一条"绕路":把DirectX调用改走Vulkan的中转站,再接入Metal的本地路网,DX9/10/11游戏收益最大。
只记一句话:Whisky管界面,WhiskyWine管执行,Bottle管边界。
用Whisky运行Windows程序:一条12步的操作流
- 打开Whisky → 首次启动进入引导页 → 应用不带运行时,这一步就是"装发动机"
- Rosetta 2检查 → 显示已装,或出现一键安装按钮 → 没装就点它,几分钟的事
- 下载WhiskyWine → 进度条开始走 → ⚠️ 中途断网别慌,重启Whisky它会检测未完成状态并接着来
- 安装WhiskyWine → 解压装完,引导自动关闭
- 点工具栏左上角"+" → 弹出新建容器窗口
- 输入容器名,比如"办公" → 名字不能为空,为空时"创建"按钮是灰的
- Windows版本保持默认Windows 10→ 对大多数程序最稳妥
- 存放路径保持默认 → 默认在应用容器目录内,点"浏览"可自定义
- 点"创建" → 主界面容器图标亮起来 → ⚠️ 首次创建要初始化一整套Windows前缀,几分钟属正常
- 点底部"运行"选.exe/.msi安装文件(也可以直接把文件拖进窗口) → 弹出Windows安装向导
- 一路"下一步" → 程序进入开始菜单列表,并被自动Pin到容器首页
- 双击首页里的程序 → Windows窗口出现,收工
GUI能做的,命令行都能做。在设置页启用CLI工具后,whisky命令直接可用:
whisky list # 列出所有容器及Windows版本 whisky create "办公" # 新建容器(默认Win10) whisky run "办公" "/path/to/setup.exe" # 在指定容器里跑程序 eval "$(whisky shellenv "办公")" # 把容器环境变量加载进当前终端掉帧、高占用、不兼容:3类症状的对症配置
掉帧(DirectX 9/10/11游戏) 先查同步模式:配置页里同步模式应为msync(默认值),个别游戏在msync下异常就退回esync试试。再打开DXVK(DXVK Async默认就是开的,保持即可)。然后打开Metal HUD,如果GPU浮层打满而CPU闲着,瓶颈在渲染侧,去查游戏自身设置。预期:帧数和稳定性上一个台阶。这个思路可以在WhiskyKit/Sources/WhiskyKit/Whisky/BottleSettings.swift里看到——msync开启时会同时写入WINEESYNC=1,因为D3DMetal检测到esync会改变行为,必须"谎报"一次。
CPU占用高、风扇狂转先确认同步模式不是none,msync的本事就是压住多线程空转。再关掉macOS侧的后台高占用应用。再看容器所在磁盘是不是慢盘,游戏容器挪到更快的盘上,创建时改路径就行。预期:风扇噪音降一档。
某类程序起不来或报错先切Windows版本:老程序可能认Win7甚至XP,配置页的版本下拉框随时可换。再补运行库:底部"Winetricks"按钮,在dlls和apps分类里装vcrun、dotnet这类常见组件。程序明确需要AVX指令集、系统又是macOS 15以上,可以试AVX开关(带警告,谨慎开)。预期:换版本能解决大半起不来的情况,省得一个个盲试。
3种人,3套配置:按你的场景取用
如果你是办公用户(Office、财务软件): 推荐配置:Windows 10 + 默认msync,其余全不动。 最容易踩的坑:① 不同项目挤在一个容器里,出问题没法隔离;② 忘了容器存在哪(默认在~/Library/Containers下的应用容器里),要备份时找不到。 进阶才需要:whisky shellenv把容器环境灌进终端,绕过GUI直接跑单个exe。
如果你是游戏玩家: 推荐配置:Windows 10/11 + msync + DXVK,游戏单独开容器。 最容易踩的坑:① 非DirectX游戏也开DXVK,纯属多此一举;② 录屏或展示时忘了关DXVK HUD和Metal HUD,画面多了层浮层。 进阶才需要:M3/M4芯片上配置页会出现DXR开关,光追类游戏值得一试。
如果你是开发/测试: 推荐配置:Windows 10 + 打开Retina模式,同步用默认值。 最容易踩的坑:① 开着Metal HUD录教程,浮层进了成片;② Pin了可移动磁盘上的程序,拔盘后图标还在——这是设计如此,可移动磁盘的Pin会被单独记住,盘插回来自动复活。 进阶才需要:Metal Trace抓取GPU帧跟踪,用来分析渲染行为。
| 用户 | 推荐配置组合 | 常见坑 | 进阶项 |
|---|---|---|---|
| 办公 | Win10 + 默认msync | 多项目挤一个容器 | shellenv进终端跑 |
| 游戏 | Win10/11 + msync + DXVK | 非DirectX游戏开DXVK | M3/M4试DXR |
| 开发 | Win10 + Retina | 录制忘关HUD | Metal Trace抓帧 |
起不来别卸载:4个高频故障按图排查
装完程序启动不了
最可能原因:容器Windows版本和程序年代不匹配,或缺运行库。 30秒检查:打开容器的Winetricks,看vcrun、dotnet这类组件装没装。 彻底解决:配置页换Windows版本(Win10、Win7、Win11逐个试)→ Winetricks装常用组件 → 重启程序验证 → 还不行就打开容器页面和底部"终端",看具体报错输出。
中文界面全是方块
最可能原因:容器缺CJK字体。 30秒检查:Winetricks的fonts分类里装一个中文字体组件,立刻看效果。 彻底解决:Winetricks装字体包 → 配置页点winecfg把容器区域语言设为简体中文 → 重启容器生效。
Bottle一直卡在"创建中"
最可能原因:首次初始化前缀本来就慢,不是卡死。 30秒检查:点"C盘"按钮打开容器目录,看文件夹大小还在不在涨。 彻底解决:先耐心等几分钟 → 超过10分钟毫无动静再删除重建 → 检查磁盘剩余空间,容器尽量放在空间充足的卷上。
窗口模糊发虚
最可能原因:Retina模式没开,或DPI停在默认96。 30秒检查:配置页打开Retina开关。 彻底解决:仍模糊就打开配置页的DPI设置,滑到192以上,页面内置预览能立刻看到字体大小变化。
排查总原则:查配置 → 补组件 → 看日志 → 去提问;提问时附上报错截图和复现步骤,回复效率翻倍。
4个目录看懂源码,4步参与贡献
| 目录 | 职责 |
|---|---|
Whisky/Views/ | 全部SwiftUI页面:建容器、配置、程序列表、首次引导 |
Whisky/Utils/ | 小工具件:Winetricks调用、快捷方式、CLI工具安装 |
WhiskyKit/Sources/WhiskyKit/ | 核心引擎:Bottle数据模型、Wine调用、配置序列化 |
WhiskyKit/Sources/WhiskyKit/PE/ | 内置Windows PE文件解析器,程序图标和快捷方式都靠它读 |
WhiskyCmd/Main.swift | CLI实现,list、create、run、shellenv等6个子命令 |
想参与进来,4步就够,同行之间说点实在的:
git clone https://gitcode.com/gh_mirrors/wh/Whisky- 读
CONTRIBUTING.md:Xcode 15构建,SwiftLint零违规是硬门槛 - 从最小可提交单元入手:修一个typo、补一行英文文案(key加在
Whisky/Localizable.xcstrings,具体翻译走平台协调,PR里只加英文key)、修一个UI bug(附截图) - CI通过后提PR,等评审
现在去做这3件事
- 今天:
brew install --cask whisky,建出第一个Bottle,装上那个惦记很久的Windows程序。 - 这周:在设置里启用命令行,用
whisky run把同一个程序以CLI方式再跑一遍,感受界面和命令是同一套数据模型的两副面孔。 - 之后:顺手clone一份仓库,改一行typo,提你的第一个PR。
Windows世界没你想的那么远——打开终端敲下那条brew命令,15分钟后你的Mac里就多了一台Whisky。
【免费下载链接】WhiskyA modern Wine wrapper for macOS built with SwiftUI项目地址: https://gitcode.com/gh_mirrors/wh/Whisky
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考