# nxnative Easy **English** · [Español](README-es.md) **Run your own supported Nintendo Switch games natively on Mac, iPhone and iPad — with Metal graphics, physical controllers and editable touch controls.** ## Start here **First:** install full [Xcode](https://apps.apple.com/app/xcode/id497799835) from the Mac App Store and open it once. **Xcode compiles the games too**, so a prebuilt launcher cannot remove this requirement. **Then:** paste this single command into Terminal: ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/nalancer08/nxnative-easy/main/install.sh)" ``` It downloads nxnative Easy, installs Homebrew and the missing build tools, **compiles your own Mac interface and opens it**. Follow the four numbered setup stages and any password or confirmation prompts in Terminal. No Apple developer account is used. If you run setup again, it verifies the new app before replacing your installed version and keeps the previous app as a backup. **Already downloaded this repository?** Double-click **START-HERE.command** in its top-level folder. It performs the same setup; you do not need to find a script under `scripts/`. If macOS blocks that file, use the Terminal command above. When the app opens: 1. In **My library**, click **Add game** and choose **Mac** or **iPhone / iPad**. 2. Follow the steps: game folder (or drag your files), your keys, then review. 3. Click **Prepare game** and follow the stages, counters and live log. For iOS, continue with device → global Apple account if needed → review → install. **After setup:** open **nxnative Easy.app** in your home **Applications** folder. The setup keeps its source checkout separately, so you can delete the downloaded ZIP and folder. **Mac:** creates one complete game `.app`, with its game data included inside; click **Play on Mac**. No separate RomFS folder to copy. No Sideloadly or iPhone needed. Saves stay in `~/Library/Application Support/nxnative/
## What this version adds
Built on [seedds/nxnative](https://github.com/seedds/nxnative). The original project provides the engine, game profiles and compatibility work. **nxnative Easy** adds:
- **Guided preparation:** platform → identify your game → review → live build progress. Choose `prod.keys` to read the real game name, base version, updates and selected version before compiling. Your originals stay in place.
- **A library that explains readiness:** local Mac/IPA outputs, verified device installations and clearly dated last-seen devices.
- **Rebuild advice, redacted diagnostics and background completion notifications.** Apple Account is shared across the app; free-team device slots are clearly labelled estimates, with a registration warning before installing on a new device.
- **Editable iPhone touch controls:** position, size and opacity, saved per game and 2D/3D layout.
- **Lightweight IPA export for iPhone/iPad only:** RomFS data live separately; existing outputs and valid caches are preserved.
- **Your own keys:** select your own `prod.keys` file directly. No games or keys are included, downloaded or distributed.
- **Local preparation:** no Apple account or company certificate is used to build the desktop app.
We provide **source code, a preparation interface and build tools**. The output is a local Mac game app, or an unsigned iPhone/iPad IPA that you sign/install with your own account using the experimental integrated installer or Sideloadly. Games, console keys, shared Apple accounts/certificates and universal game compatibility are not provided.
## Engine updates and multiplayer
Our main incorporates the upstream revision recorded in the [integration review](docs/personal-pr-review.md). Future core updates are merged and tested in a separate checkout while preserving our interface and controls. Every accepted game is synchronized across the app, screenshots, notes and both README galleries; CI checks that none are missing. **Update now** installs our tested releases, rather than unreviewed upstream changes.
The current runtime plays **offline**. Nintendo online services, LAN/netplay and Windows are not supported. A Nintendo Switch Online subscription does not enable them here. Local controllers on one Mac are a separate feature. [How the game code, mods and networking work](docs/development.md#game-binaries-mods-and-networking).
When **Remember session** is enabled, the app attempts to restore your Apple session from this Mac’s Keychain after reopening. If recovery fails, retry or sign in again; the password is not saved.
## Language
The app starts in **English**. Choose **Español** under **Settings → General**; your selection is remembered on this Mac. This changes the interface language, not the game's language. Build diagnostics keep their original language.
## Updating the app
From **version 1.4**, the app checks for new releases at launch and every six hours while open. When one is available, click **Update now**. It downloads the new source and game profiles, builds and verifies the new Mac interface, then restarts it. Progress stays in the window. You can also use **nxnative Easy → Check for updates…**.
The update uses a separate source folder and keeps the previous app as a backup. It does not reset your checkout or modify your game files, keys or saves. Updates are disabled while preparing a game. To apply new engine or profile changes to a previously prepared game, prepare that game again.
**Using version 1.3 or earlier?** Run the setup command above once, or double-click **START-HERE.command**. Future updates then appear inside the app.
## What happens after Prepare game?
The app prepares the tools and builds for your chosen device. **Mac** produces a game app with **Open game** and **Show app** buttons. **iPhone / iPad** produces a lightweight IPA and offers **Install on iPhone / iPad**, including game-data transfer. Your own files and previous outputs stay in the game folder.
Setup keeps a separate source checkout and preserves local edits. Developers can still use [`scripts/Abrir-interfaz.command`](scripts/Abrir-interfaz.command).
## How the Mac app is built
The launcher uses Xcode's Swift compiler. The desktop app is explicitly **ad-hoc signed**, locally, with no Apple account, certificate or team (`TeamIdentifier` is unset). No company account is used. You enter your personal Apple account in the integrated installer when signing the **iPhone/iPad IPA**. Sideloadly remains an alternative.
The app has an original phone-and-controller icon. Game cards use the existing upstream screenshots in this repository as a support reference; they do not provide or download games.
## Your game library
**My library** opens first: your own game folders, artwork, search and separate
Mac/iPhone readiness. Open a prepared Mac game or install an existing IPA directly
from its card. **Prepare or update** uses the same build flow; removing a card
only removes the shortcut, never game files or saves. The compatible-game catalog
is separate from your collection.
Compilation stays visible while browsing: a dock shows the current stage,
reported counts and ETA, with **View activity** for the timeline and original logs.
It shows real stage progress, not a guessed overall percentage.
[Library behavior and frontend contract](docs/frontend-library.md).

*Synthetic progress example; counts and ETA in the app come from the real build stream.*
## Integrated installation and refresh (experimental)
Version 1.8 adds **Install on iPhone / iPad**: personal Apple login/2FA, explicit
team and existing-app selection, native ARM64 signing/install, RomFS transfer and
opt-in renewal before the actual provisioning profile expires. It uses an open
source engine; no Sideloadly app is needed for this path. **Real-account/device
validation is still pending**; the tested Sideloadly route remains available.
The password is not stored; optional session and signing keys use macOS Keychain.
Auto-refresh needs this Mac awake, the app running, Internet and a reachable
paired device. Keep the original IPA. [Implementation and current limits](docs/sideloading.md).
**Saves:** use **Your saves** in the result screen for the correct Mac path or
iPhone/iPad Finder instructions. Progress is local to the device, separate from
RomFS and control profiles. [Save locations and backup limits](docs/saves.md).
## Put your game on iPhone or iPad
1. Choose iPhone/iPad, your game folder and keys. Keep lightweight mode or turn it off for a complete IPA, then press **Prepare game**. Installation continues on the same screen when preparation succeeds: device → account → review → install.
2. Connect and unlock your device. Trust the Mac and enable Developer Mode when iOS asks.
3. Sign in with your own Apple account, enter the verification code and choose your personal team.
4. If the game is already installed, select that existing app to retain its identity. Choose **Sign and update**; keep the previous app installed.
5. Keep the game closed while signing, installation and game-data copying finish. Optional refresh remembers the session in Keychain.
The final **Sign and install** action stays visible during review and tells you what is missing. Installing later from your library opens the same guided installer in a modal. Manage the shared Mac session in **Settings → Apple Account**. Full logs are available under **Activity**, collapsed by default. **IPA ready to install** refers to the file on your Mac; **Installed on…** refers to a verified device installation. Historical records are labelled separately. You can dismiss the finished activity notice without deleting its logs.
