NX2Apple 在 2026 年 10 月末接连推送至 v0.7.1,把项目的定位写得很直白:让 Switch 游戏在 iPhone、iPad 和 Mac 上跑起来,而且不是模拟器。游戏自己的代码直接交给 Apple Silicon 执行,画面由 Metal 渲染,中间没有一层虚拟机把整台 Switch 模拟出来。这个仓库 10 月 20 日才建,十天时间星标冲破 1943 颗,安装包下载量迅速跨过数千次。
不是模拟器:代码重写而不是整机模拟
模拟器的工作方式是虚拟出一台完整的 Switch,游戏发出的每一条指令都要被翻译、转发、再返回,代价是性能损耗和兼容性长尾。NX2Apple 走的是另一条路:把游戏可执行文件里的机器码重写成能在 Apple Silicon 上直接跑的形态,把游戏对 Switch 系统服务的调用接到一个宿主层上,再把图形调用换成 Metal。
四步流程都在本地完成。先解包 NSP 或 XCI,拿到游戏本体、更新和追加内容;然后用 NSO 重写器处理可执行文件;接着翻译着色器,这一步借的是 Ryujinx 的着色器翻译器,把 Switch 图形芯片的 Maxwell 着色器转成 SPIR-V,再经 SPIRV-Cross 落成 Metal Shading Language;最后打包成 Mac 应用或 iOS 应用。游戏的数据文件 romfs.img 可以放在外置硬盘上,由「文件」App 挂进来。
这套引擎不是这个仓库写的。NX2Apple 是 nxnative 的社区分支,上游负责 NSO 重写器、Horizon 宿主层、NVN-on-Metal 和每一款游戏的档案,这个 fork 加上的是一个 Mac 启动器和一串补丁。上游最早又源自 d2r-mobile,着色器翻译依赖 Ryujinx,读 NSP 靠 LibHac。作者在 NOTICE 里把哪些代码是谁写的标了出来。
v0.6.0 把整条工具链塞进了 App
此前想用这个工具,得先自己装 Homebrew、装 Python、配 Xcode 命令行工具,卡在环境上的时间可能比构建还长。v0.6.0 把 zstd、glslangValidator、spirv-cross、xcodegen 和一份 CPython 3.13 连同构建需要的全部包一起打包进了应用,全部来自校验过 sha256 的源码,许可文件一并附带。安装包因此从 2.6 MB 涨到 49.5 MB,换来的是不必再碰终端。
首次启动改成了引导式:欢迎页、选平台(Mac、iPhone 或两者都要)、装 Xcode、指定密钥、挑游戏,一步一步走。Xcode 那一步会自己打开 App Store 并轮询安装状态,跑一次管理员授权切换工具链,再下载 Metal Toolchain 和 iOS 平台。中途退出下次接着来,已经配好的用户不会看到这个引导。系统门槛仍是 macOS 13。

启动器本身也重做了。游戏库按卡片排列,每张卡片带着游戏主视觉和构建状态,没构建的标 Not built yet,构建好的标 Ready on Mac。底部那条进度条会显示当前阶段和剩余文件数,比如 shader split 阶段走到 41062 个文件里的 10577 个。构建可以中途停,下次从断点续。
免费 Apple ID 那七天签名,现在能原地续
iOS 侧载最烦人的不是装,是七天。用免费 Apple ID 签的应用, provisioning 只有七天有效期,到期就打不开,过去只能删了重装,存档一起没。v0.6.0 把这件事做成了按钮:游戏卡片上直接显示签名还剩几天,点 Renew 原地重签,Xcode 复用全部已编译产物,只换签名,然后覆盖安装回去,游戏数据和存档都留着。
配套还加了三个功能。重装不用重新构建,devicectl 把上次构建好的签名应用几秒钟送回设备;保存 IPA 可以把成品导出成标准 IPA,交给侧载工具或另一台 Mac;设备检测会告诉你每款游戏到底装没装在那台连接的手机上,删掉了会显示橙色的「不在 X 上」,并直接给重装按钮而不是全量重建。
94 款游戏有档案,3 款在手机上完整验证过

仓库里 94 款游戏有移植档案,其中 3 款在这个 fork 上走完了构建、安装到手机上开玩的全流程。《塞尔达传说 王国之泪》的档案记着 304243 个文件、约 17 GB、逐字节校验过;《Hades II》同样验证通过;《集合啦!动物森友会》在手机上运行流畅。另有 45 款是上游报告在 iPhone 上可玩,包括《超级马力欧 奥德赛》《塞尔达传说 旷野之息》(1.9.0 版能到 60 帧)和《马力欧卡丁车 8 豪华版》。剩下的有档案但还没人在手机上试过。
一款没有档案的游戏不会自己跑起来,需要单独做移植适配,仓库里给了给开发者看的移植指南。这也是这类工具和模拟器的根本区别:模拟器兼容面广但慢,原生移植快但一款一款啃。

每款游戏都有自己的启动选项,可以调帧率(30 或 60)、主机模式(Docked 或 Handheld)、放大方式。放大一项给了 Standard 和 MetalFX 两档,界面直接标了 MetalFX 会占用更多 GPU 时间、可能让机器更热。语言也在这一层改,选项表里没有的可以写一行 env.txt,比如 DM_LANG=zh-Hans 换成简体中文,这行设置存在应用支持目录里,重新构建也不会丢。
v0.7.1 连发两版:底座全屏、iCloud 存档跨端打通与金手指
在 v0.6.0 解决基础安装后,开发团队在 10 月 29 日夜间连发 v0.7.0 与 v0.7.1 两个版本,把启动器往真正的「游戏机体验」推进了一大步。
主机模式直接全屏。此前在 Mac 上选主机(Docked)模式运行,游戏依然开在一个独立窗口里。v0.7.1 强制开启 DM_FULLSCREEN,只要在主机模式点下 Play,游戏窗口就会直接铺满整个屏幕,模拟 Switch 插上电视底座后的沉浸观感;在双显示器环境下,窗口会自动定位在启动器所在的主屏幕(DM_SCREEN)。
Mac 与 iPhone 存档走 iCloud 打通。这是很多玩家最期待的能力:v0.7.0 把两端的存档目录统一引向同一个 iCloud Drive 路径。你在 Mac 上跑完的神庙或进度,拿起 iPhone 能接着打,不需要再借助文件管理器来回手动搬运 save/ 目录。
金手指与构建失败智能诊断。新版启动器内置了每款游戏的独立金手指面板(Cheats sheet),支持直接开启和编辑金手指代码文件。构建流程的容错也大幅改善:过去新手遇到缺少 keys 或依赖未满足时只会看到报错退出,v0.7.1 的失败卡片把密钥、游戏包、磁盘空间、签名和设备安装单独拆成行,哪一项出问题就亮起红灯,并附带直接对应的「选择 keys」「打开 Xcode」或「一键修复」按钮。
硬门槛:iPhone 的内存上限和侧载
大游戏在 iPhone 上会撞内存墙。不给 Increased Memory Limit 这个权限时,iOS 只让应用用到约 3.4 GB,《王国之泪》这种 17 GB 的体量根本不够。应用会主动申请这个权限,但只有 AltStore Classic 2.2 以上、Impactor,以及带个人团队的 Xcode 能保住它;SideStore 配免费 Apple ID 要做一次性的 App ID 修复,Sideloadly 则会把它丢掉。
另一个门槛是签名。启动器和打出来的 iPhone 应用都没有替你签名,必须自己侧载。构建侧要求一台 Apple Silicon Mac、带 iOS SDK 的 Xcode;跑 NVN 图形的游戏需要 Xcode 27.1 和 macOS 26.6 以上,除非用 --allow-other-metal 另走一条路。手机侧要 iOS 26 以上,老设备没测过。
它是什么,以及它不能替你做什么
这个项目在自己的法律声明里把边界写得很清楚:它是一个给已经拥有的游戏做构建的工具,读的是你自己在你自己机器上做的 dump,产物给你自己的设备用;仓库、应用和任何一个发布包里都不包含任天堂的代码、美术、文本、数据、着色器、固件或密钥。整条流水线没有游戏和密钥的来源,它要求用户自己的 prod.keys 和自己的 NSP 或 XCI,不连任何服务器。声明同时注明与任天堂没有关联。
它能跑起来的前提是自己动手把游戏从卡带或已购内容里 dump 出来,再从自己的主机里导出密钥,这两件事在国内涉及主机破解与规避技术措施,风险由用户自己承担。项目本身是 MIT 协议,代码来源在 NOTICE 里逐项列明。
官方入口
项目仓库:github.com/LNPANDY/NX2Apple,中文说明在 README.zh-CN.md,游戏清单在 GAMES.zh-CN.md。上游引擎:github.com/seedds/nxnative。Mac 安装包是 NX2Apple-macOS-arm64.zip,解压后首次启动要右键选打开,因为应用没有用付费开发者证书签名。Windows 版目前只在 Actions 产物里,发布页没有提供。
声明:本文来自苹果迷投稿,不代表苹果家园立场,版权归原作者所有,欢迎分享本文,转载请保留出处!