ns2ios-shell

ns2ios-shell separates a reusable, game-independent iOS shell from local per-game packing. CI builds the shell once, while the packer combines a user’s game files with the shell on Windows, Linux or macOS without requiring Xcode.

Third-party

Checked 3 November 2026

Requirements

  • The local packer needs an NSP or XCI dump and prod.keys. NSZ content must be decompressed first. The documented Windows GUI downloads the shell and tool dependencies for you.
  • The shell serves several games, but programs and shaders are packed per title. Some games require a one-time shader capture on the device, and Oodle or LZ5 shader archives are not supported yet.

Get started

  1. Download the ns2ios-packer.exe release on Windows, then launch it and let it download the current shell and tools.
  2. Install the local Python dependencies when prompted and select the game package plus prod.keys.
  3. Start packing and keep the generated package and device instructions together.
  4. Install the signed shell or package with the supported device workflow, then complete any documented shader-capture step for that game.

Usage & troubleshooting

  • The workflow is cross-platform: the shell can be built in CI, while packing runs locally on Windows, Linux or macOS. The Windows GUI is the easiest documented path.
  • One shell does not mean universal game compatibility. Programs and shaders live inside Guest.framework and game data, so pack and validate each title separately.
  • For Oodle/LZ5 shader archives or a missing game-specific capture, stop at the project’s support status rather than treating a package failure as a signing issue.

Source documentation ↗

← Community tools and compatibility