ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Madeira:免费 Apple ID 侧载,把 x86-64 Windows 游戏搬上 iPhone

Madeira:免费 Apple ID 侧载,把 x86-64 Windows 游戏搬上 iPhone

Madeira:免费 Apple ID 侧载,把 x86-64 Windows 游戏搬上 iPhone

【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira

想在自己 iPhone 上跑 Windows PC 游戏,传统路子要么买 688 元/年的付费开发者账号,要么冒风险越狱。两条都不轻松。而 Madeira 的 README 直接写明:一个免费 Apple ID 就够了,无需越狱,通过侧载(sideloading,即非 App Store 渠道自行签名安装 App 的方式)装进 iPhone,直接运行原版 x86-64 Windows 游戏。本文讲透它的原理,并给出从构建到装机的完整路线。

它凭什么能在 iPhone 上跑起 Windows 游戏 🎮

Madeira 的做法是把三套成熟方案叠成一座三层栈。

最底层是 FEX-Emu:它负责指令翻译,把游戏里的 x86、x86-64 代码在运行时实时转成 iPhone 能执行的 ARM64 指令。这里的关键能力叫 JIT——运行时现场把一种指令翻译并编译成另一种指令的能力,也是整套方案里最吃性能、最容易被系统限制的部分。

中间层是 Wine 11.4:它提供 Windows 环境本身,让游戏以为自己在调用 Windows 系统 API。Madeira 的 Wine 是按 ARM64EC 构建的——Wine 本体以 ARM 原生速度运行,只有游戏自己的 x86-64 代码才需要翻译,32 位游戏则走 WoW64 通道。

最上层是 DXMT:把 Direct3D 9/10/11 的绘制调用转成 Apple 的 Metal 图形 API 来渲染。仓库里还有一个自研的 madeira-d3d12,提供 Direct3D 12 实现,并能在运行时用 Apple 的 Metal Shader Converter 转换 DXIL 着色器。

还有一个架构上值得一提的设计:单进程。iOS 禁止 App 启动其他程序,所以 Madeira 把一切塞进一个进程里——连 Wine 的 wineserver(Wine 里负责系统服务调度的角色)都以线程形式存在,而不是独立进程。这大幅简化了 iOS 上的进程管理与内存映射。

免费 Apple ID 为什么够用 💡

先说为什么 App Store 走不通。看 Madeira.entitlements 就明白了:项目开启了com.apple.security.cs.allow-jit(允许 JIT 编译)和get-task-allow(允许调试器附加)。iOS 上创建可执行内存必须在调试器附加状态下进行,Madeira 用 StikDebug 或内置的 StikJIT 助手来完成这一步。

Because JIT needs a debugger, Madeira cannot be offered on the App Store.(README.md)

这两项权限 App Store 一概不批准,所以侧载是唯一分发路径。

那免费账号够不够?README 的 Requirements 章节原话:

A free account works; its signing expires after 7 days, so the app needs refreshing weekly.(README.md)

代价只有一个:免费账号签名的描述文件7 天过期,App 需要每周刷新一次。对比一下成本收益:每周一次重装,换来零订阅费用、不用越狱;而且 README 同时保证游戏和存档在重装后保留。

动手前的准备清单 📋

项目说明
iPhone(未越狱)iOS 26 及以上,这是当前唯一能稳定运行的版本;开发机为近年 Pro 机型
Mac + Xcode构建与签名只能在 macOS 上完成
免费 Apple ID任意免费注册账号,用于侧载签名
StikDebug 或内置 StikJIT为 JIT 提供调试器附加,详见 docs/JIT.md
微软 Visual C++ 运行时 DLL仓库不分发,需自备,获取方法见 tools/fetch-vcruntime.md

另外提醒一句:如果你选择从源码构建而非下载官方 IPA,docs/BUILDING.md 列出了仓库中缺失的输入清单(工具链、部分依赖等),其中标注 UNVERIFIED 的步骤尚未从干净环境完整复跑,请留意。

四步侧载实操:从克隆到装机 🚀

第一步,克隆仓库。注意必须带子模块:

git clone --recurse-submodules https://gitcode.com/GitHub_Trending/mad/Madeira

FEX、wine、dxmt、madeira-dock是指向 Madeira 自己 fork 的子模块,直接克隆上游仓库无法构建(README.md)。

第二步,构建原生组件链。顺序是:GnuTLS 链(GMP、Nettle、GnuTLS)→ FFmpeg → FEX(unix 静态库 + ARM64EC 模块)→ Wine(unix 侧静态库 + PE 侧 DLL 农场)→ DXMT → 原生 D3D12 运行时。每步都对应build/下的一个脚本,例如build/gnutls-ios/build.sh。docs/BUILDING.md 完整记录了每条脚本、产物位置和验证状态。

第三步,用免费 Apple ID 签名构建 App:

xcodebuild -project app/Madeira.xcodeproj -scheme Madeira \ -destination 'generic/platform=iOS' \ -allowProvisioningUpdates build

-allowProvisioningUpdates会自动用你的免费账号申请描述文件。官方强调:用 Debug 配置跑游戏,Release 构建出现过崩溃(docs/BUILDING.md)。

第四步,打包 IPA 并侧载安装。把Payload/Madeira.app压缩成 IPA,用 SideStore、AltStore、Sideloadly 等工具装上 iPhone,打开后按 docs/JIT.md 的引导启用 JIT,确认 Settings 里 JIT 和 Memory+ 都打勾,即进入 Ready to play。

装机之后的 7 天重装节奏 ⏰

每周的维护动作其实只有三个:重新执行签名构建、侧载重装新 App、打开游戏继续玩。

关键是不需要备份:App 容器在重装中保留,前缀(prefix,即 Wine 的"虚拟 C 盘")和游戏存档原样保留(README.md)。所以每周刷新不会打断你的进度。

一个小技巧:在手机日历里建一个"每 7 天重复"的提醒,标题写"重装 Madeira",一次设置长期有效,避免签名过期后游戏突然打不开。

边界与真相:研究项目的现状 🧭

先摆正预期。README 明确定位这是一个活跃的研究项目而非产品:"Many games start and some play well, but performance and compatibility vary from game to game, and things change quickly. Expect rough edges." 也就是说多数游戏能启动、部分体验良好,但帧数和兼容性因游戏而异,且变动很快。

手柄是完整支持的:已配对的蓝牙手柄通过 XInput 通道喂给 Windows 游戏,最多 4 个扩展档位,触摸虚拟手柄合并到 1 号玩家位,详见 docs/CONTROLLERS.md。

许可方面需要知道:Madeira 采用GPL-3.0-or-later加 Madeira Converter Exception,微软 VC++ 运行时 DLL 因许可限制不随仓库分发(docs/LICENSING.md)。Fork 中的 AI 辅助代码请勿向上游 FEX-Emu 提交,见 CONTRIBUTING.md。

总结:免费 Apple ID + 侧载是目前让 Windows PC 游戏真正跑进未越狱 iPhone 的可行路线,代价只是每周一次重装。

它适合两类人:想低成本尝鲜 PC 游戏的新手(下载官方 IPA 即可),以及愿意折腾构建链、关心模拟器技术细节的极客。对追求稳定成品体验的玩家,建议再观望一段时间。

【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表