Repository navigation
Releases: WillyAntunez/react-native-xtool
Release list
v0.1.0-alpha.4
Versions without surprises
A patch release of Expo or React Native should not need a new rn-xtool release. Expo published 58.0.22 while this release was being prepared, and rn-xtool needed no change for it.
New
- Expo SDK 57 now has a floor. rn-xtool accepts expo 57.0.31 or any newer 57.x. A newer release than the verified one builds with a warning that names the verified versions.
- Bare React Native accepts every patch of a supported minor, starting from these floors: 0.86.x from 0.86.2, 0.87.x from 0.87.1, and 0.88.x from 0.88.0.
rn-xtool doctor --projectchecks only the project, without Swift, xtool or a device. It shows:- the version line that covers your versions, or the reason none does;
- which SwiftPM scripts the build would use;
- whether React Native's prebuilt artifacts are cached, local or published;
- whether the Expo modules are precompiled;
- which podspec features your libraries use.
Changed
- On Expo SDK 57 and 58, a package from another SDK's release line (for example expo-modules-core 59.x on SDK 58) now stops the build with a remedy instead of only warning.
- The SwiftPM scripts are chosen from the layout of the installed scripts, not from the version number. Every supported version gets the same scripts as before.
Fixed
- rn-xtool needs Node 22.12 or newer, the minimum its own dependencies declare.
doctorchecks it. - A malformed
rn-xtool.config.jsonis named in the error.
Upgrading from alpha.3: nothing to do for most projects. See the CHANGELOG.
Known limits:
- No app icon or splash screen yet.
- The first launch after an install shows "No script URL provided" behind iOS's Local Network prompt: tap Allow, then Reload.
Tested with: xtool 1.23.0, Swift 6.4.1, Expo SDK 57 and 58, React Native 0.86.3, 0.87.1 and 0.88.1.
v0.1.0-alpha.3
Expo SDK 57 support, and current Expo SDK 58
alpha.2 fails on any Expo SDK 58 project created today (Expo moved to 58.0.21 / React Native 0.88.1). This release fixes that and adds SDK 57, the most used Expo SDK.
New
- Expo SDK 57 (expo 57.0.31, React Native 0.86.3). Verified on an iPhone with expo-haptics, expo-image-picker, expo-file-system, react-native-screens, safe-area-context, gesture-handler, reanimated + worklets, expo-router and expo-dev-client.
- Expo SDK 58 on a 58.0.21 floor: newer 58.x versions build with a warning. Clear checks and working remedies for version, duplicate-module and missing-binary problems.
- A precompiled-framework symbol check that stops the build instead of letting the app crash at launch.
- reanimated and worklets build on Linux with no manual patch. rn-xtool makes their
Package.swiftportable. - Bare React Native 0.88.1, and bare apps with Expo modules on SDK 58.
Upgrading from alpha.2: see the "Upgrading from 0.1.0-alpha.2" section in the CHANGELOG.
Known limits:
- No app icon or splash screen yet (they need Xcode tools; a fix is planned for the next alpha).
- The first launch after an install shows "No script URL provided" behind iOS's Local Network prompt. Tap Allow, then Reload.
Tested with xtool 1.23.0, Swift 6.4.1, Expo SDK 57.0.31 and 58.0.21, and React Native 0.86.3, 0.88.0 and 0.88.1.
v0.1.0-alpha.2
Added
- Bare React Native 0.86.2, 0.86.3 and 0.87.1, through vendored copies of React Native 0.88.0's SwiftPM scripts
(vendor/rn-spm/), arn-artifactsbuild step that downloads and, for 0.86, adapts the prebuilt artifacts, and an
exact-version gate. 0.86.3 and 0.87.1 are verified on a physical iPhone (doctor,build, install over Wi‑Fi, Metro,
Fast Refresh, and the library matrix indocs/libraries.md; reanimated/worklets only on 0.86.3); 0.86.2 is
build-verified only. - The
patchesstep warns about persisted scaffold patches made for another React Native version (for example after
moving from 0.86.3 to 0.87.1) and says which file to delete; it changes nothing on its own.
Changed
- An Expo project whose
react-nativeis not 0.88.0 now stops at thepatchesstep with a message to pin
react-nativeto 0.88.0 (before, a cleanly applying patch only warned). - Persisted scaffold patches that still carry the old
expo-xtool-scaffold-revisionmarker are re-scaffolded once (the
marker becamern-xtool-scaffold-revisionin 0.1.0-alpha.1); patches with the current marker are kept. - A React Native version rn-xtool does not support now gets one error naming the supported list (0.86.2, 0.86.3,
0.87.1 and 0.88.0); 0.88 prereleases and 0.88.x other than 0.88.0 are refused. - README and docs mark WSL2 as "should work, not tested yet" instead of supported.
v0.1.0-alpha.1
react-native-xtool 0.1.0-alpha.1 (alpha)
Build, sign and install Expo and bare React Native iOS dev builds from Linux, with no Mac, then develop with Metro and Fast Refresh over Wi-Fi.
npm i -g react-native-xtool@alpha
rn-xtool setup --xcode-xip ~/Downloads/Xcode_27.1.xip
rn-xtool auth login
rn-xtool runWhat works
- Expo SDK 58 projects, bare React Native 0.88 projects, and bare projects with Expo modules (hybrid).
- Swift, Objective-C and C++ sources in the app target; CocoaPods-only libraries get a generated Package.swift.
- Installs over USB or Wi-Fi (no cable after a one-time pairing), smart rebuilds (
rn-xtool run), Fast Refresh. - Verified on a physical iPhone: Expo and bare templates, 11+ libraries (see docs/libraries.md), expo-dev-client, clean-machine run in Docker.
Known limits
- Expo SDK 57 and older, React Native 0.87 and older: not yet.
- No iOS simulator, no production builds (use EAS), Linux x86_64 only (WSL2 works; arm64 untested).
- No Xcode tools on Linux: asset catalogs, storyboards and Metal shaders are skipped; library resource bundles and vendored xcframeworks are not supported yet.
- Free Apple ID: 7-day signatures, 3 apps.
Tested with
xtool 1.23.0, Swift 6.4.1, Darwin SDK from Xcode 27.1, Expo 58.0.19, React Native 0.88.0, Node 20+/22.