Skip to content

Guide · Open source

How to use nxnative: build an IPA or Mac app from your own games

Updated · written with AI from the project's own documentation and checked against our catalogue data

nxnative is a free, MIT-licensed Python script that takes Nintendo Switch game files you already own, an NSP file plus your prod.keys, and packs them into an unsigned IPA you can sideload onto an iPhone or iPad, or a Mac app. This guide explains what it does, what you need before you start, and how to run the build from Terminal. It is written for readers who are comfortable with the command line but are not developers.

nxnativeseedds/nxnative · ★ 11.2k · MIT

Quick start

  1. 1Check your Mac and install Xcode. Confirm you have a Mac with the macOS and Xcode releases the README names, plus Homebrew and an arm64 Python. Select Xcode with xcode-select before you start.
  2. 2Install the tools. Run the Metal toolchain download, clone the repository, then install the Homebrew and Python packages from the README.
  3. 3Gather your files. Place your NSP files and any update or DLC in one folder, and keep your prod.keys from your own Switch ready.
  4. 4Run the build. Run the packing script with your game folder and your prod.keys. Allow 30 to 60 minutes for the first build.
  5. 5Install the IPA or open the Mac app. Sideload the IPA with AltStore, Sideloadly or LiveContainer, or open the Mac app from Finder if you built with the mac-app platform.
  6. 6Read the playing notes. Check the project's playing documentation for controls, saves and settings.

What nxnative does and does not do

nxnative is not an emulator. According to its README, the game's own code runs directly on the Apple chip, and the Switch graphics are rebuilt on Metal, Apple's graphics API.

The repository contains nothing from any game. You must supply your own game files and your own prod.keys from your Switch. The project is not affiliated with Nintendo or any game publisher.

  • Works from NSP files you own, with your prod.keys
  • Produces an unsigned IPA for iPhone or iPad, or a Mac app with a platform option
  • Built and run on a Mac

Check the requirements before you start

The build runs on a Mac. The README asks for a recent macOS release, a matching Xcode release, Homebrew, and an arm64 build of Python 3.12 or newer. An Intel Homebrew will not work for this. An iPhone build also needs Xcode's iOS platform, which you add under Xcode, Settings, Components.

For playing on iPhone or iPad, the README lists an iPhone 15 Pro or newer, or an iPad with an M1 chip or later, running a recent iOS or iPadOS release. Older iPhones cannot read the games' BC-compressed textures.

  • A Mac with a recent macOS and the Xcode release the README names
  • Homebrew
  • arm64 Python 3.12 or newer
  • prod.keys from your own Switch
  • For iPhone or iPad play: iPhone 15 Pro or newer, or an M1 iPad, on a recent iOS or iPadOS

Install the tools, once

Run these commands in Terminal. The first line installs the Metal toolchain, the second downloads the repository, and the rest install the Homebrew and Python packages the script uses. The README also says to select Xcode before step 1 with sudo xcode-select -s /Applications/Xcode.app.

xcodebuild -downloadComponent MetalToolchain git clone https://github.com/seedds/nxnative.git && cd nxnative brew install xcodegen zstd glslang brew install --cask dotnet-sdk python3 -m pip install lz4 "capstone>=5,<6" fonttools nsz zbic "backports.zstd; python_version < '3.14'"

Put your game files in one folder

Create a folder for the game. It should contain the game file and its update and DLC if you have them. The README accepts .nsp, .xci, .nsz and .xcz files. Keep the folder simple so you can point the script at it in the next step.

  • Include the base game, plus any update or DLC you own
  • Accepted extensions: .nsp, .xci, .nsz, .xcz
~/Games/MarioWonder/ Super Mario Bros. Wonder [010015100B514000][v0].nsp Super Mario Bros. Wonder [010015100B514800][v327680].nsp

Build the IPA or Mac app

Run the packing script with your game folder and your prod.keys. The IPA is written into the game's folder. The first build takes 30 to 60 minutes and needs free disk space of about twice the game's size plus 10 GB. Later builds are much faster.

To play on the Mac instead, add --platform mac-app. You get a Mac app you can open from Finder. The README links to a full list of options in its packing script section.

  • First build: 30 to 60 minutes
  • Free space needed: about twice the game's size plus 10 GB
  • Repeat builds are much faster
python3 scripts/build_ipa_from_nsp.py ~/Games/MarioWonder -k ~/keys/prod.keys

Install the IPA on your iPhone or iPad

Install the IPA with a sideloading tool. The README names AltStore, Sideloadly and LiveContainer. If your tool offers Increased Memory Limit, turn it on, because the bigger games need it.

If the game is too large to install, the README suggests building with --romfs separate, then running the command the script prints once to copy the game files to your phone.

  • Sideloading tools named in the README: AltStore, Sideloadly, LiveContainer
  • Turn on Increased Memory Limit if your tool offers it
python3 scripts/build_ipa_from_nsp.py ~/Games/MarioWonder -k ~/keys/prod.keys --romfs separate

Know which games are tested

The README keeps a list of tested games, with notes on progress and known issues. Other games are not supported yet. For an untested game the script still tries to pack an IPA, guessing the settings, and writes a survey. The README warns that such an IPA may not start.

Switch 2 games are handled differently. They are built from a folder of files rather than NSPs, need no prod.keys, and are tested on the Mac only. The README gives Donkey Kong Bananza as a Mac example.

  • Tested games are listed in the per-game notes linked from the README
  • Untested games may not start
  • Switch 2 games: Mac only in testing, built from a folder, no prod.keys needed

Use a community Mac app if you do not want the command line

If you want no Terminal work, the README points to separate community Mac apps built on nxnative. They are independent projects, so questions about them belong on their own pages. The README lists NX2Apple, NX Play, NxNative Launcher and LumaNX.

  • NX2Apple
  • NX Play
  • NxNative Launcher
  • LumaNX

What people use it for

  • Playing a Switch game you own on an iPhone 15 Pro or newer, sideloaded from an IPA built on your Mac
  • Making a Mac app from your own game files to open from Finder
  • Studying a native-execution approach to console games as a developer
  • Trying Switch 2 games on a Mac from a folder of game files you own

Frequently asked questions

Is nxnative free?

nxnative is released under the MIT licence, according to its README. The project does not include any game, so you must supply your own game files and prod.keys.

Do I need a Mac to use nxnative?

Yes. The build runs from Terminal on a Mac with the macOS and Xcode releases the README names. Users without a Mac cannot run the build from the README instructions.

Is nxnative an emulator?

No. The README says the game's own code runs directly on the Apple chip, with Switch graphics rebuilt on Metal. It describes itself as not an emulator.

Which iPhone or iPad works with nxnative?

The README lists an iPhone 15 Pro or newer, or an iPad with an M1 chip or later, on a recent iOS or iPadOS release. Older iPhones cannot read the BC-compressed textures the games use.

Can I use nxnative without the command line?

Not directly. The README says that for a no-command-line experience it points to separate community Mac apps, such as NX2Apple, NX Play, NxNative Launcher and LumaNX.

What are the alternatives to nxnative?

The README lists comparable projects: d2r-mobile, MacNativeGames, Ryujinx and Atmosphère. nxnative itself credits d2r-mobile as the project it started from, and credits Ryujinx and Atmosphère as references.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

nxnative suits people who own the Switch games they want to play, are comfortable with Terminal, and have a Mac and a supported device. It is a poor fit for anyone without a Mac, anyone with an older iPhone, or anyone who wants a game not on the tested list.

Install options & downloads