Repository navigation
Releases: xtool-org/xtool
Release list
v1.23.0
Breaking changes
If you use Apple ID authentication (as opposed to an App Store Connect API key), you'll need to log in again after updating (#380).
What's Changed
- fix: strip trailing carriage return in console prompt on crlf terminals by @bitxwolf in #328
- certs: match certificates whose serial starts with 0 by @chintan100 in #306
- sdk: enable cross-import overlays with SwiftBuild by @SrgGrch in #361
- gsa: fall back to a trusted-device code when SMS 2FA fails by @javiertrejoyam in #349
- sdk: update OpenAppleMacros to v1.4.1 by @kabiroberai in #371
- sdk: support env overrides for tarballs by @kabiroberai in #372
- gsa: use macOS Omnisette by @kabiroberai in #380
New Contributors
- @bitxwolf made their first contribution in #328
- @chintan100 made their first contribution in #306
- @SrgGrch made their first contribution in #361
- @javiertrejoyam made their first contribution in #349
Full Changelog: 1.22.2...1.23.0
v1.22.2
Breaking Changes
This release updates the device fingerprint used for Apple ID-based login (we now present to Apple as a Pixel 7 device), fixing auth issues.
If you use Apple ID auth, you'll need to log in again after updating.
What's Changed
- planner: skip macro targets by @pawlowskialex in #208
- packer: use XcodeProjectFormat for generate-xcode-project by @kabiroberai in #300
- packer: custom SwiftVersion parser by @kabiroberai in #303
- gsa: fix login using mismatched client-info by @kabiroberai in #337
- http: add newer Apple Root CAs by @kabiroberai in #340
New Contributors
- @pawlowskialex made their first contribution in #208
Full Changelog: 1.21.0...1.22.2
v1.21.0
Breaking Changes
Darwin hosts: the deployment target for xtool is now macOS 14.0 / iOS 17.0. This shouldn't matter to CLI users because Swift 6-compatible toolchains require macOS 14.5+ anyway, but may be relevant to consumers of the XKit/XToolSupport libraries.
What's Changed
- sdk: get clang resources from swift toolchain by @kabiroberai in #274 (fixes #273)
- deps: bump deps by @kabiroberai in #271, #278, #281, #298
- build: compile xtool with Swift 6.4 by @kabiroberai in #272
- package: bump Darwin deployment targets to Fall2023 by @kabiroberai in #277
- sdk: prune Xcode when installing from xip by @kabiroberai in #280
- tests: derive CFBundleSupportedPlatforms from the build triple by @mvanhorn in #289
- build: link xtool dynamically inside AppImage by @kabiroberai in #296
New Contributors
Full Changelog: 1.20.1...1.21.0
v1.20.1
What's Changed
- Adds support for FoundationModels macros (#270)
- Fixes
ld64.llderroring out with "unknown architecture: arm64e.x1-ios" when linking apps built using Xcode 27 (#270) - Fixes failure to find
dsymutilwhen building for release on Swift 6.4 (#270)
Full Changelog: 1.20.0...1.20.1
v1.20.0
This release adds support for Swift 6.4 (#229) and SwiftUI macros (#101).
Behavior is a lot closer to Xcode thanks to SwiftBuild, which should resolve many previous incompatibilities (such as issues with xcframeworks). There will probably be some growing pains, so please file any issues that you encounter.
Breaking changes
Linux
You'll need to re-install the Darwin SDK after updating. We recommend you take this opportunity to update to Xcode 27 + Swift 6.4.
Reinstallation is needed because we have a new Darwin SDK layout. It allows xtool to automatically rebuild the SDK any time we change the layout / add new components in the future (#110). For example, if a future update of xtool added watchOS support (or, more imminently, added more macros), the new layout means you wouldn't need to re-install the SDK again.
One tradeoff: the new format bundles the entirety of Xcode.app/Contents/Developer, which increases size on disk from ~3 GB to ~7 GB. You may opt out with xtool sdk install --slim (this may be useful in ephemeral environments like CI).
macOS
The authentication backend (Anisette provider) has changed from Omnisette to XADI. If you use Apple ID auth (i.e. not an App Store Connect API key), you'll need to log in again after updating. (#259)
General
IDE support now relies on a BSP (Build Server Protocol) server. On Swift 6.4, we directly tap into SwiftBuild rather than using SwiftPM's --swift-sdk. This means we can't "simply" use a .sourcekit-lsp/config.json for IDE support. Instead, we now create a .bsp/xtool.json file that points SourceKit to our custom Build Server. xtool will automatically create this file for you when using Swift 6.4. If needed, you can disable it by setting skipLSP: true in xtool.yml.
New Contributors
- @genkernel made their first contribution in #261
Full Changelog: 1.19.2...1.20.0
v1.19.2
What's Changed
- gsa: more fixes to resolve HTTP 503 errors on auth (#246, #247, #257)
- sdk: fix permission issue (#254) when copying clang resources (#255)
New Contributors
- @Robetronica made their first contribution in #246
Full Changelog: 1.19.0...1.19.2
v1.19.0
Fixes #243 ("Data was corrupted" error on login)
What's Changed
- gsa: update user agent to fix auth • @kabiroberai in #244
Full Changelog: 1.18.1...1.19.0
v1.18.1
Breaking change
xtool sdk build now produces a .xtoolsdk instead of a .artifactbundle. To install it, use xtool sdk install instead of swift sdk install. This is necessary because xtool sdk install now has a post-processing step that must be run on the builder machine (#228).
This is only relevant if you're using two-phase SDK installation (e.g. building the SDK on one machine, and copying it over to another). The standard flow for installing the SDK from Xcode.app/Xcode.xip remains unchanged.
What's new
Features
- Add
build --signto sign without installing • @kabiroberai in #224 - Add prebuilt Docker image • @kabiroberai in #233
- Support wifi-aware entitlement • @SuperKenVery in #240
Fixes
- Fix clang headers for Xcode 26.3 • @reklis and @kabiroberai in #228
- Fix tmpdir reentrancy • @kabiroberai in #234
Chores
- Migrate to swift-subprocess • @kabiroberai in #225
- Document alternate WSL setup • @kabiroberai in #239
- Enable copy-to-clipboard in docs • @kabiroberai in #241
New Contributors
- @SuperKenVery made their first contribution in #240
Full Changelog: 1.17.0...1.18.1
v1.17.0
What's Changed
- Validate SDK before overwriting by @kabiroberai in #192
- Fix tmpfs EINVAL on SDK install by @swapnilnakate7 in #211
- Fix capability creation via public API by @kabiroberai and @reklis in #220
- General dependency updates
New Contributors
- @swapnilnakate7 made their first contribution in #211
Full Changelog: 1.16.1...1.17.0
v1.16.1
What's Changed
- Bump deployment to macOS 13, iOS 16 by @kabiroberai in #173
- Bump zsign to 1.7.0 by @kabiroberai in #180
- This should fix #14
Full Changelog: 1.16.0...1.16.1
