A polished Minecraft: Java Edition launcher for iOS, optimized for Chinese users.
Forked from Amethyst-iOS-MyRemastered
Air is a customized fork of Amethyst-iOS-MyRemastered, a premium Minecraft: Java Edition launcher for iOS and iPadOS. This fork focuses on the Chinese user experience -- delivering robust Chinese localization, in-app language switching, streamlined JIT handling for iOS 26+, and bug fixes sourced from upstream issue audits.
Not sure which fork to use? See the Fork Network section below for a comparison of active forks and their unique features.
| Change | Description |
|---|---|
| LWJGL 3.4.1 Compatibility | Updated LWJGL to a 3.4.1-compatible layer, enabling mods like Sodium 0.9+ that require LWJGL >= 3.4.1. Uses developer herbrine8403's approach: 3.3.x base modules + lwjgl-callback-descriptor.jar (3.4.1) + source overlay for dual-API compatibility. |
| Minecraft 26.3 via SDL3 | MC 26.3 dropped GLFW for SDL3. We ported the SDL3-embedding approach from ZalithLauncher2 (its Android sdl_hook.c became Natives/sdl3_hook.m: ES profile forcing, main-window reuse, Vulkan loader handle sharing, EGL compat retry) and ship a patched libSDL3.dylib (patches/sdl3-amethyst.patch: uikit touch passthrough, text-field re-add safety, host-view embedding). |
| Native-Resolution Rendering Fix | Root-caused and fixed the entire resolution chain: swapped EGL query constants, 1x render-scale pin, and SDL3 point/pixel size split. The game now renders 1:1 at native 2x retina resolution with sharp visuals on both the SDL3 (26.3) and LWJGL/GLFW (26.2) paths. |
| Pixel-Accurate Touch Input | Fixed the long-standing input-offset bug (pixel-vs-point semantic mismatch across the input bridge). Touch coordinates now land exactly where your finger is, in-game and in menus. |
| Custom Controls Editor Fixes | Fixed the crash when saving an edited control (unrecognized selector doUpdateButton:from:to: -- the editor was presented through a UINavigationController wrapper) and restored the full-screen editing canvas from the Settings entry. Undo history is now scoped to the editor's lifetime. |
| Windowed Mode Restored | iPadOS 26 multitasking/windowing re-enabled (UIRequiresFullScreen removed). The earlier suspicion that windowed mode caused the split-picture/blur bugs was disproven -- the true root causes (EGL constants, px/pt semantics) were fixed instead. Backgrounding resilience (MINIMIZED event handling) is mode-independent and stays. |
| Optimized JIT Re-launch | When JIT is already enabled on non-iOS-26 devices, the game launches directly without re-requesting via stikjit://. On iOS 26+ devices that require debug JIT mapping, the UniversalJIT26 script is loaded silently (without showing a waiting dialog) to avoid background transition crashes while still ensuring brk instructions are handled. |
| In-App Language Switching | Added a language picker in Settings > General that allows switching between Follow System, Simplified Chinese, and English without restarting the app. The localize() function respects the user's choice while maintaining the full fallback chain. |
| Enhanced Chinese Localization | Complete Chinese UI translation (1955+ lines), more comprehensive than upstream. |
| Bug Fixes from Upstream Issue Audit | 8+ bug fixes identified through systematic review of upstream and upstream's upstream GitHub issues, including nil crash in JIT script loading, UIKit thread safety, KVO observer cleanup, and more. |
| Makefile Robustness | Fixed TAB-to-space indentation issues that caused CI build failures. |
PojavLauncherTeam/PojavLauncher_iOS (Original upstream - official PojavLauncher iOS port)
|
v
herbrine8403/Amethyst-iOS-MyRemastered (Major remastered fork - UI overhaul, mod management,
BMCLAPI support, multi-account, auto renderer/JVM)
|
v
Gsjsjzhznsz/Air-Minecraft-iOS-Launcher (THIS REPO - Chinese UX, JIT optimization,
in-app language switch, bug fixes, LWJGL 3.4.1)
- What is Air?
- What's Different from Upstream
- Fork Lineage
- Core Features
- Quick Start
- Contributors
- Fork Acknowledgments
- Third-Party Components
- Sponsor
- Modern UI Redesign -- The interface has been deeply refined for a contemporary, polished visual style.
- Resource Management & Downloads -- Browse, enable, disable, and delete mods, shader packs, resource packs, and other assets, with integrated Modrinth and CurseForge download support.
- Modpack Import -- Import ZIP-format modpacks directly from the launcher interface.
- Smart Download Sources -- Switch between Mojang Official, BMCLAPI mirror, and other sources on the fly for optimal download speeds.
- Complete Chinese Localization -- Fully translated interface with native-quality Chinese language support. In-app language switching between Chinese and English available in Settings.
- Unrestricted Accounts -- Local accounts, demo mode, and third-party authentication all supported; no Microsoft account required to download and play.
- Multi-Account -- Seamlessly switch between Microsoft, local, and third-party authentication accounts.
- Auto Renderer Selection -- Automatically chooses the optimal rendering backend (including MobileGlues, MoltenVK, and more) when set to Auto.
- Auto JVM Selection -- Automatically selects the correct JVM version (Java 8, 17, 21, or 25) based on the game version.
- Minecraft 26.X Support -- Experimental support for Minecraft 26.x: 26.2 runs through the LWJGL/GLFW path, 26.3+ runs through the SDL3 path (embedding approach ported from ZalithLauncher2).
- Custom Mouse Pointer -- Customize the virtual mouse pointer skin in settings.
- Custom News URL -- Configure a custom news feed URL for the launcher home screen.
- TouchController Support -- Communicates with the TouchController mod via both UDP local proxy and XCFramework, delivering full touchscreen control on iOS.
- AI Integration -- (In development) The goal is to enable AI to fully manage the launcher, including resource downloads and instance management.
- Custom App Icons -- (In development)
... and much more to explore!
Note
There are no plans to port this remastered version to Android. The Android ecosystem already has excellent launchers such as Zalith Launcher, Fold Craft Launcher, and ShardLauncher. For the official Android version, visit Amethyst-Android.
For complete documentation, refer to the Amethyst Official Wiki or the Bilibili tutorial. Below is a condensed guide.
| Tier | iOS Version | Supported Devices |
|---|---|---|
| Minimum | iOS 14.0+ | iPhone 6s+, iPad 5th gen+, iPad Air 2+, iPad mini 4+, all iPad Pro, iPod touch 7th gen |
| Recommended | iOS 14.5+ | iPhone XS+ (excl. XR/SE 2nd gen), iPad 10th gen+, iPad Air 4th gen+, iPad mini 6th gen+, iPad Pro (excl. 9.7-inch) |
Caution
iOS 14.0--14.4.2 has known critical compatibility issues. Upgrading to iOS 14.5 or later is strongly recommended. iOS 17.x and 18.x are supported but require a companion computer for initial JIT configuration (see the Official JIT Guide).
Prioritize tools that support permanent signing and automatic JIT enablement:
- TrollStore (Recommended) -- Permanent signing, automatic JIT, increased memory limits. Compatible with select iOS versions. Download from official repo
- AltStore / SideStore (Alternative) -- Requires periodic re-signing; initial setup needs a computer and Wi-Fi. Only compatible with development certificates (must include
com.apple.security.get-task-allowentitlement for JIT). Distribution certificate signing services are not supported.
Warning
Only download sideloading tools and IPA files from official or trusted sources. The author is not responsible for device issues caused by unofficial software. Jailbroken devices support permanent signing, but daily-driver jailbreaking is not recommended.
Official Release (TrollStore)
- Download the
.tipapackage from Releases. - Open the file with TrollStore via the system share menu to complete installation.
Official Release (AltStore / SideStore)
- Download the
.ipapackage from Releases. - Import the IPA into your sideloading tool following its standard installation procedure.
Nightly Builds (Development Testing)
[!CAUTION] Nightly builds may contain critical bugs including crashes and startup failures. Use only for development and testing purposes.
- Navigate to the GitHub Actions page and download the latest IPA artifact.
- Import the IPA into your sideloading tool (AltStore, SideStore, etc.) to install.
JIT (Just-In-Time compilation) is essential for smooth gameplay. Choose the approach that matches your environment:
| Tool | External Device | Wi-Fi Required | Auto-Enable | Notes |
|---|---|---|---|---|
| TrollStore | No | No | Yes | Preferred; no additional action needed |
| AltStore | Yes | Yes | Yes | Requires AltServer running on local network |
| SideStore | First time only | First time only | No | Device/network-free after initial setup |
| StikDebug | First time only | First time only | Yes | Device/network-free after initial setup |
| Jitterbug | Yes (without VPN) | Yes | No | Manual trigger required |
| Jailbroken | No | No | Yes | System-level automatic support |
- @herbrine8403 -- Original Amethyst-iOS-MyRemastered author
- @EternityQwQ -- Metal Universal Mod support
- @LanRhyme -- iOS 26 compatibility and logging improvements
- @WeiErLiTeo -- Mod download integration, TouchController optimizations
- @Li2548 -- Upstream synchronization
This project would not exist without the following fork chain:
- PojavLauncherTeam/PojavLauncher_iOS -- The original iOS Minecraft launcher that started it all.
- herbrine8403/Amethyst-iOS-MyRemastered -- The major remastered fork that added the modern UI, mod management, BMCLAPI support, multi-account, and auto renderer/JVM selection. This is the direct upstream of Air.
- ZalithLauncher/ZalithLauncher2 -- The SDL3 window-embedding approach used for Minecraft 26.3+ was borrowed from this project: its Android-side
sdl_hook.ccompatibility layer was ported to iOS asNatives/sdl3_hook.m, and its SDL embedding patches informed ourpatches/sdl3-amethyst.patchagainst the SDL uikit backend. Vendored as theThirdParty/ZalithLauncher2submodule for reference.
If you would like to contribute translations for this project, please go to Crowdin.
| Component | Purpose | License | Source |
|---|---|---|---|
| SDL3 | Game window & input backend for MC 26.3+ (embedded in the host view, patched) | zlib | GitHub -- patched via patches/sdl3-amethyst.patch; embedding approach ported from ZalithLauncher2 |
| Caciocavallo | AWT runtime framework | GPL-2.0 | GitHub |
| jsr305 | Code annotation support | BSD-3 | Google Code |
| Boardwalk | Core functionality adaptation | Apache-2.0 | GitHub |
| GL4ES | OpenGL-to-GLES translation | MIT | GitHub |
| Mesa 3D | 3D graphics library | MIT | GitLab |
| MetalANGLE | Metal-to-OpenGL ES translation | BSD-2 | GitHub |
| MoltenVK | Vulkan-to-Metal translation | Apache-2.0 | GitHub |
| openal-soft | Cross-platform 3D audio | LGPL-2.0 | GitHub |
| Azul Zulu JDK | Java runtime (8/17/21/25) | GPL-2.0 | Website |
| LWJGL3 | Java game development library | BSD-3 | GitHub |
| LWJGLX | LWJGL2 compatibility layer | -- | GitHub |
| DBNumberedSlider | UI slider control | Apache-2.0 | GitHub |
| fishhook | Dynamic library rebinding | BSD-3 | GitHub |
| shaderc | Vulkan shader compilation | Apache-2.0 | GitHub |
| NRFileManager | File management utilities | MPL-2.0 | GitHub |
| AltKit | AltStore integration | -- | GitHub |
| UnzipKit | ZIP archive handling | BSD-2 | GitHub |
| DyldDeNeuralyzer | Library verification bypass | -- | GitHub |
| MobileGlues | Third-party renderer | LGPL-2.1 | GitHub |
| LTW | OpenGL Core-to-ES wrapper | LGPL-3.0 | GitHub |
| authlib-injector | Third-party authentication | AGPL-3.0 | GitHub |
Additional thanks to MCHeads for Minecraft avatar services, Modrinth for mod distribution, and BMCLAPI for Minecraft download mirroring.
If you find this project valuable, consider supporting the original author through Ko-Fi, Afdian, or WeChat Reward Code.