NXNATIVE GUI · MAC & IOS

NX2Apple GitHub: Mac Download, Build & iPhone Setup

NX2Apple gives nxnative a graphical builder and game library. Choose your own game files, build for this Mac or install the shared game app on an iPhone or iPad. Start by matching the game profile and build tools.

NX2Apple project example: a visual game library with Library, Builds and Settings, game covers and Play controls.
NX2Apple’s published library example. Choose a game here after building.

Guide: NX2Apple 1.0.1 · Stable engine cd859c38 · 2 November 2026.

NX2Apple GitHub and the correct Mac download

The project is LNPANDY/NX2Apple on GitHub. Open its release assets and choose NX2Apple-macOS-arm64.zip. Extract the ZIP and move NX2Apple.app to Applications. The engine-only ZIP and “Source code” downloads are not the ready-to-open launcher.

Your filesBase + update + keys
NX2AppleMatch profile · build
Choose the targetMac app or signed iOS app

Open the launcher

Apple silicon Mac with macOS 13 or later. This minimum lets the launcher open; it does not mean every game can be built on that OS.

Build an NVN game

For this release, prepare macOS 26.6 or later, full Xcode 27.2 and the Metal toolchain. Follow the selected game’s requirements. Command Line Tools alone do not replace full Xcode.

Use iPhone or iPad

The project requires iOS/iPadOS 26 or later. You also need a paired device and signing through Xcode. A listed game or device option is not a guarantee of sufficient memory or stable gameplay.

NX2Apple uses nxnative’s game profiles: each profile identifies a supported game version. It does not turn an arbitrary Switch game into a working port. The 1.0.1 release specifically says the GUI cannot yet build Switch 2 games or directly use an extracted-files folder, even though the underlying engine has work in those areas.

Already following another guide? The MacNativeGames TOTK builder uses a different project and file workflow. Keep its commands, versions and save instructions separate from NX2Apple.

Prepare the Mac before choosing a game

  1. Open the downloaded application

    If macOS blocks the first launch, verify that the file came from the project’s release. Use the application-specific Open Anyway option in Privacy & Security when appropriate. Follow the guide to your exact macOS warning; do not disable Gatekeeper for the entire computer.

  2. Finish setup and inspect missing tools

    Use first-run setup, or Settings → Run setup again. Install full Xcode and let its initial component setup finish. In NX2Apple, expand Device dependencies. Use the offered action for a missing Metal Toolchain or .NET SDK 10, then choose Check again. Python and several build utilities are bundled.

    English NX2Apple Device dependencies: Check again, Xcode plus iOS SDK and Metal Toolchain Install.
    NX2Apple 1.0.1: resolve the named dependency before retrying a build. On a phone, swipe the screenshot sideways or tap it for the full-size view.
  3. Record the engine and keep the Stable channel

    Open Settings → Build tools. This guide uses engine 1.0.1, upstream cd859c38. Stable is the engine paired with the application release. Experimental follows newer upstream changes; it is a separate choice, not a required setup fix.

    NX2Apple Build engine 1.0.1 upstream cd859c38, Check for updates and Stable engine update channel.
    Save both the launcher version and engine revision when comparing a guide or reporting a problem.

Older instructions say “Download repository.” The released 1.x application manages its engine through releases and Settings. You do not need to clone the upstream repository just to follow this GUI workflow.

Select the base game, update and keys

Use game files you are entitled to use and keys from your own Switch. NX2Apple and this website do not supply game files or keys. Keep your original files unchanged while building.

NX2Apple game-file controls: Choose game folder, Base game, prod.keys, Updates and add-on content, and Save to.
The separate selectors prevent a common mistake: choosing an update package as the base game.
  1. Open Builds and choose the input

    Use Choose game folder for a folder containing your packages, or select the base NSP/XCI through Base game → Choose. A folder containing packages is different from an extracted ExeFS/RomFS directory, which the 1.0.1 GUI does not yet build directly.

  2. Add your keys and the matching update

    Select your prod.keys. Expand Updates & add-on content to add the game update or supported DLC. Match the game’s profile version; “optional” in the general interface does not mean an update is optional for a particular profile. Do not substitute the latest patch if the profile calls for another version.

  3. Choose a lasting output location

    Check Save to before starting. The build cache lives under the output location as <ID>_build. Reusing the same output location can reuse that work; a new folder starts over. Leave room for the input, extracted data, build cache and result, rather than only the compressed game package.

For profile selection, use the nxnative supported-game lookup, then verify its source date against your engine. A profile’s listed progress matters as much as its game name.

Build the game for this Mac

Play on target choices: This Mac and iPhone / iPad, with iPhone / iPad selected in this example.
Choose This Mac for desktop play. The screenshot shows the alternative iPhone/iPad selection so the two targets are easy to distinguish.
  1. Select This Mac, then Build game

    Confirm the base, update, keys and output directory first. If the action is disabled, resolve the setup message above it. Do not repeatedly change files while a build is in progress.

  2. Read the completion result

    Wait for the build to finish and follow its output location. Finished games appear in Library. If a stage stops, expand Build log and use the first relevant error to choose a fix below. A completed compile is not a gameplay test.

  3. Start with the game’s default options

    Open the game’s launch options from Library, keep its defaults and press Play. Check basic input and save loading before increasing image quality or frame-rate targets. Available options depend on the game profile.

English NX2Apple launch options example: frame rate, console mode, MetalFX, language, rumble and Reset to tested defaults.
Project example: BOTW launch options. Controls vary by game; the selected 60 fps is not a measured result.

Change one setting at a time

  • Image quality: compare the same scene before and after changing render scale or upscaling. A higher setting can increase GPU load.
  • Frame rate: selecting 60 fps is a target, not evidence that your Mac maintains it. First-visit shader compilation can cause uneven frames.
  • Controls: pair the controller with macOS first, then use Settings → Controllers or Keyboard and controller. In 1.0.1, Shift + arrow keys provides right-stick input on Mac.
  • Undo: use the game’s reset-to-defaults option rather than copying another game’s configuration.

Use Mac controller pairing for connection problems. The Monster Hunter Rise guide covers its specific nxnative profile; its results should not be applied to other titles or engine revisions.

Sign and install on iPhone or iPad

NX2Apple 1.x installs a shared game application. Several built games can live in one iOS library. This is different from the separate per-game IPA workflow in the MacNativeGames TOTK iOS guide.

  1. Prepare Xcode and pair the device

    Install Xcode with the iOS SDK. Connect the unlocked iPhone or iPad to the Mac, accept its trust prompt and pair it in Xcode’s Devices and Simulators window. Complete Developer Mode setup on the device when required. Sign in to your Apple account in Xcode and make your development team available.

  2. Choose the iPhone / iPad target

    Return to Builds, select iPhone / iPad, then choose your device under Install on. Use Refresh if you paired it after opening the launcher. If no device appears, resolve pairing and Xcode setup before building.

    Install on row with Refresh and Choose a device; no paired iPhone or iPad is currently available.
    This real unpaired state tells you what to fix before installation. It is not a successful device-installation screenshot.
  3. Build, sign and copy the game data

    Start the build after resolving dependencies. The launcher prepares the shared app, signs it through Xcode, installs it on the selected device and copies the game data. Keep the device connected and unlocked until both installation and data transfer finish. Installing the app alone does not supply romfs.img.

  4. Open the library and resolve the game’s status

    On the device, select the game. A missing-data message means you must finish copying or choose its data location. An app-update message means that the library entry needs a newer built application; repeatedly selecting the same data folder will not update its executable.

NX2Apple published iPhone library example: Needs game data status and Choose game data button.
Missing data → choose the matching game archive.
NX2Apple published iPhone settings example: Play, handheld or docked mode, frame-rate display and American English language.
Game settings → adjust this game’s options.
READ THE LIBRARY STATUS

App installed ≠ game ready

Needs game data
Finish copying the archive or choose its folder.

App update needed
Install a rebuilt application that includes this game.

Ready to play
Open the game, then check controls and save loading.

English interface examples published by NX2Apple, not a device test performed by this website.

What “no JIT” changes

This native execution route does not require enabling an emulator’s JIT session. It still requires a valid app signature, the correct game data and enough memory. Large games also depend on the increased-memory entitlement being present in both the signature and provisioning profile. Lowering render resolution does not restore a missing entitlement.

The launcher’s Xcode installation route handles signing during the build. If you choose a separate sideloader, check its entitlement handling in the project’s increased-memory instructions; an IPA that installs successfully can still be killed when memory use rises.

Update the engine without losing track of saves

01Back up

Copy saves outside the app.

02Keep identity

Same team, bundle ID and shell cache.

03Update & open

Load the expected save before cleanup.

  1. Back up before rebuilding

    Quit the game. Copy its saves to a separate dated folder outside the app and build output. For a launcher-managed Mac game, look beside the game app for its save data; a standalone nxnative build can instead use ~/Library/Application Support/nxnative/<titleID>/. Identify the actual populated folder rather than assuming every route shares one path.

  2. Keep the iOS app identity and framework cache

    For the shared iOS shell, keep the same signing team and stored bundle identifier. Installing over that same app preserves its Documents; changing the identifier starts a separate data container. Do not delete the device app to refresh its signature. Preserve the launcher’s Cache files directory too: it retains the frameworks for the other installed games.

  3. Update deliberately and check one game

    Record the current engine and application versions, then use the appropriate Check for updates action in Settings. Keep Stable selected unless you specifically need an Experimental change. Rebuild the affected game and confirm its save loads before removing your backup or older output.

1.0.1: one external folder can contain several games

The iOS data-folder picker now matches a game by the identity inside romfs.img. It searches up to two levels below the folder you select, and folder names can vary. Keep the archive intact and choose a parent folder close to your game folders. A game buried more deeply may not be discovered. Renaming an unrelated archive does not make it match.

For a device backup, copy the shared application’s Documents through Finder file sharing to a location outside that app. The launcher stores copied game data under Documents/games/<titleID>. Preserve the complete structure and any external data or save folder you selected. Keep the backup until the expected game progress opens after the update.

Find the stage that stopped

Start with the visible symptom. Changing signing tools cannot fix a failed Mac compile, and changing graphics settings cannot fix a missing game archive.

Build game is disabled, or setup reports missing dependencies
  1. Open Settings → Device dependencies and read the named missing tool.
  2. Finish Xcode’s first-run component installation. For NVN builds, match this guide’s Xcode 27.2/macOS 26.6 requirements.
  3. Install the named component and select Check again. Return to Builds only after the requirement is resolved.
Unsupported version, profile mismatch or extraction failure
  1. Confirm that Base game is the base package, not an update or DLC.
  2. Compare the selected update with the game profile for your installed engine.
  3. Check that your own keys match your dumped package. Keep the original files unchanged; do not “fix” a mismatch by renaming files.
  4. Read the first error in Build log. Report its text and engine revision if the matched inputs still fail.
No iPhone/iPad appears, or signing stops
  1. Unlock the connected device and complete trust and pairing in Xcode.
  2. Confirm Developer Mode, your Xcode account and development team.
  3. Return to Install on → Refresh. Read the signing error if installation still stops.
  4. Keep the existing bundle identifier when updating; changing it will not restore the old app’s Documents.
The iOS app opens, but the game needs data
  1. Confirm the game-data copy finished after app installation.
  2. For an external folder on 1.0.1, select a parent at most two levels above the matching romfs.img.
  3. Use the matching archive from the build. Older romfs.idx plus shard layouts are not interchangeable with this archive layout.
The game closes when loading a large scene
  1. Keep the game log and identify the exact engine, game version and device.
  2. For iOS, inspect memory headroom and signing entitlements using the project’s memory guide.
  3. Distinguish a memory kill from a graphics or game-profile failure. Do not promise a fix from lower resolution alone.
Older games disappeared after adding another iOS game

Check whether the Mac’s shared-shell framework cache was removed or a different shell root was used. The launcher needs those retained frameworks to include the existing games in the rebuilt app. Restore your retained cache or rebuild those games, keeping the original app identity and independent save backup.

NX2Apple Diagnostics and Copy diagnostics button for versions, tools and build or game logs.
Settings → Copy diagnostics gathers the version and log context. Review the report before posting; do not attach game archives or keys.

Sources and version references

The six setup-control crops were captured from the official 1.0.1 Mac application. Library, launch-options and iPhone illustrations are interface examples published in the project. They explain the workflow and do not represent a completed game build or a device benchmark by this website.

Next: nxnative command-line guide and profiles · compare the native builders · TOTK’s separate MacNativeGames iOS workflow.