免费 Apple ID 就够侧载:iPhone 运行 PC 游戏的 Madeira iOS 模拟器完整指南
【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira
Madeira 是一个开源的 iOS 模拟器,让 x86-64 Windows PC 游戏在未越狱的 iPhone 上直接跑起来。侧载安装只需要免费 Apple ID,不必注册付费开发者账号。唯一成本是签名描述文件每 7 天过期一次,需要重装一遍 App,而重装不会带走任何存档。
先对号入座:这篇写给谁
- 适合:手上有一台 A15 及以上、未越狱的 iPhone,同时能用到一台 Mac 的人。
- 适合:愿意每 7 天花几分钟重装一次,或者打算跟着仓库脚本自己构建的人。
- 不适合:想要走 App Store / TestFlight 正规分发的人。JIT 依赖调试器附加,这条路线从规则上就走不通。
- 不适合:只有一台 iPhone、希望把签名与构建环节全部交给别人的人,因为构建和签名都必须在 macOS 上完成。
它把什么塞进了 iPhone
三个组件各负责一种翻译:
- FEX-Emu:把游戏的 x86 与 x86-64 指令实时翻译成 ARM64,Apple 芯片因此能直接执行游戏代码。
- Wine(ARM64EC):提供 Windows 运行环境,把 Windows API 调用转成 iOS 能处理的系统调用,且 Wine 自身以 ARM64 原生运行。
- DXMT:把 Direct3D 9/10/11 的绘制命令翻译成 Metal,画面由 iPhone 的 GPU 直接产出。
架构上的亮点是三者跑在同一个进程里:iOS 不允许 App 拉起别的程序,连 wineserver 都以线程形式存在。目前 Thumper、ULTRAKILL 已经能正常游玩,Marvel Cosmic Invasion 可以进入游戏流程(偶有异常退出),其他游戏一般也能在较低帧率下进入流程。官方口径是研究项目而非产品,遇到怪癖属正常现象。
免费 Apple ID 凭什么够用
因果链是这样的:FEX 靠 JIT 即时生成 ARM64 代码,而 iOS 只允许在调试器附加时创建可执行内存;因此应用必须开启allow-jit与get-task-allow这两项权限(见app/Madeira/Madeira.entitlements),运行时通过 StikDebug 之类的调试器附加来满足系统要求。App Store 恰好禁止这两项,侧载就成为唯一出路。
免费账号本身不设门槛,代价全部来自描述文件的时效:
- 签名描述文件 7 天过期,每周需要重新构建并重装一次。
- 重装不会清空 App 容器,prefix 与游戏存档都保留。
动手前 60 秒自查
- 未越狱 iPhone,A15 及以上(开发机为 iPhone 13 Pro)
- Mac + Xcode,构建与签名只能在 macOS 上完成
- 免费 Apple ID,无需加入付费开发者计划
- StikDebug,为 JIT 提供调试器附加,流程见
docs/JIT.md - 微软 VCRuntime DLL,仓库不分发,按
tools/fetch-vcruntime.md自行准备
构建链横跨多个环节(Wine unix 库、ARM64EC PE 模块、FEX、DXMT、iOS App 本体),docs/BUILDING.md里还标有 UNVERIFIED 的步骤与"仓库中缺失的输入"清单,建议动手前先过一遍。
四步从克隆到装机
- 克隆仓库(含子模块):
git clone --recurse-submodules https://gitcode.com/GitHub_Trending/mad/Madeira。FEX、wine、research/dxmt 等子模块指向包含 iOS 移植工作的 fork,从上游仓库直接克隆无法构建。 - 构建原生组件链:按 GnuTLS → FEX → Wine(unix 侧 + PE 侧)→ DXMT → D3D12 运行时的顺序执行,脚本分布在
build/各子目录中,例如build/gnutls-ios/build.sh。 - 用免费 Apple ID 签名构建:
xcodebuild -project app/Madeira.xcodeproj -scheme Madeira -destination 'generic/platform=iOS' -allowProvisioningUpdates build。-allowProvisioningUpdates会自动用你的免费账号申请描述文件。⚠️ 官方提醒:用 Debug 配置跑游戏,Release 构建出现过客程序崩溃。 - 打包安装:把
Payload/Madeira.app压缩为 IPA,通过侧载方式装进 iPhone。
每 7 天的三个固定动作
- 描述文件到期后,重新执行一次签名构建,免费账号会自动刷新描述文件。
- 把新构建的包再次侧载安装,覆盖旧版本。
- 打开游戏继续之前的进度,无需做任何手动备份。
存档不丢的原因:重装只是换掉签名外壳,prefix 与进度所在的容器目录保持原样。可以在手机日历里建一条按周重复的提醒,比如起名叫"Madeira 重装截止",设一次长期有效。
避坑速答
- 重装会丢存档吗?不会,容器保留,prefix 和存档原封不动。
- 必须越狱吗?不需要,项目从设计上就是面向未越狱设备。
- TestFlight 行不行?走不通,JIT 要求调试器附加,App Store 分发规则直接排除这种应用。
- Debug 还是 Release 稳?用 Debug。构建文档明确记录了 Release 构建会让客程序崩溃。
- 手柄支持吗?支持。已配对物理手柄与横屏触摸虚拟手柄统一汇入 XInput 通道,触摸输入合并到 1 号玩家位,细节在
docs/CONTROLLERS.md。 - 分发要注意什么?协议为 GPL-3.0-or-later,分发衍生作品需保持开源;各组件许可细分见
docs/LICENSING.md与THIRD-PARTY-NOTICES.md。
想再深一层
docs/BUILDING.md— 从干净克隆出发的完整可复现构建记录,含仓库外输入清单与 UNVERIFIED 标注。docs/JIT.md— StikDebug 与内置 StikJIT 两条 JIT 路径的配对流程与故障排查点。docs/WOW64.md— 32 位游戏如何通过 WoW64 运行,以及 i386 组件链的构建方式。docs/CONTROLLERS.md— 手柄、触摸控制的映射规则与扩展档位说明。
一台免费 Apple ID 加一台 Mac,就足以让未越狱的 iPhone 跑起 Windows 游戏——付出的只有每周一重装,存档则一直原地待命。
【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考