Releases: XcodesOrg/XcodesApp
4.0.0 Beta 1
XcodesApp Release Notes
Highlights
- Refactored XcodesApp to use the shared, concurrency-enabled
XcodesKitpackage. - Added architecture-aware filtering for Xcode and runtime lists.
- Defaulted architecture filtering to the current Mac, with filter labels that indicate “This Mac”.
- Added an optional grouped Xcode list view that collapses versions by major/minor release.
- Added federated Apple ID authentication support.
- Updated install, runtime, update, helper, selection, and uninstall flows to use Swift concurrency tasks instead of Combine publishers.
- Removed duplicated in-app Apple API/XcodesKit model code now provided by shared packages.
- Updated dependencies, including
XcodesKit1.0.0 andXcodesLoginKit. - Cleaned up obsolete dependencies such as
ErrorHandlingandCombineExpectations. - Improved test coverage around app state, update behavior, grouped-list defaults, and shared
XcodesKitmocks.
Xcode And Runtime Filtering
- Xcode list filtering now uses shared
XcodesKitfilter logic. - Runtime and Xcode architecture filters are handled consistently through architecture variants.
- The architecture filter defaults to the best match for the current machine.
- Architecture labels are localized and can show the current-machine hint.
Xcode List
- Added grouped Xcode list support with expandable major and minor version sections.
- Added a General preference to enable or disable grouped list behavior.
- Preserved the existing flat list as the fallback view.
- Added persisted expansion state for grouped Xcode versions.
Sign In
- Added a federated authentication view for Apple IDs managed by an organization.
- Added support for validating federated callback URLs.
- Moved sign-in and security-key flows onto
XcodesLoginKit/XcodesLoginKitSecurityKey.
Localization
- Added new strings for grouped list controls, federated authentication, architecture labels, and “This Mac”.
- Included zh-Hans updates for architecture and filter-related strings.
Dependency And Build Changes
- Added
XcodesKitas a shared package dependency. - Added
XcodesLoginKitandXcodesLoginKitSecurityKey. - Updated
LibFido2Swiftpackage resolution. - Refreshed generated acknowledgements/licenses.
- Kept the libfido2 framework structure fix in the build pipeline.
PRs And Contributors
- Includes zh-Hans localization and localized architecture display work from #761 by @megabitsenmzq.
- Builds on the grouped/collapsible list direction from #751 by @anciltech.
- Builds on the compact filter menu UX from #746 by @LiYanan2004.
- Continues the Xcode 26 / libfido2 build compatibility work from #753, including the fix credited in that thread to @anciltech.
Currently tracked in concurrency-shared-xcodeskit branch
3.0.2
Install Xcodes using one of the methods listed here.
Update Xcodes by selecting Check for Updates... in the Xcodes menu in the menu bar.
v 3.0 🎉
Ability to install Apple Silicon Architectures for Xcode as well as runtimes. (Xcode 26 required)
New icon designed by Matthew Skiles https://matthewskiles.com/
Thanks to @aerickson14 for getting Fido2 library over the build hump
🚀 Enhancements
- New Icon - who dis? (#755) @MattKiazyk
- Improve filtering UI/UX on Xcode List (#746) @LiYanan2004
- feat: improve user experience with a redirect window to sign-in (#741) @r1b2ns
- Support Showing and Downloading Multiple Xcode Architectures. (#743) @MattKiazyk
- Support Xcode 26 multiple Architectures (#730) @MattKiazyk
- fix: xcode 26 check for Apple Silicon installs (#753) @MattKiazyk
🌎 Localization
- Add Thai translations (#756) @neetrath
- Update zh_Hans translations. (#727) @megabitsenmzq
- Fixes Brazilian Portuguese translations (#744) @leschlogl
v3.0.0 Beta 1
Install Xcodes using one of the methods listed here.
Update Xcodes by selecting Check for Updates... in the Xcodes menu in the menu bar.
3.0 Beta 1
Some more changes coming - including a new icon 🎉
This will be a prerelease to unblock downloading Xcode 26 Beta 5+ that support multiple architecture variants as well as the variants for the runtimes.
Changes
🚀 Enhancements
- Support Showing and Downloading Multiple Xcode Architectures. (#743) @MattKiazyk
- Support Xcode 26 multiple Architectures (#730) @MattKiazyk
v2.4.2 - or is it v26?
Install Xcodes using one of the methods listed here.
Update Xcodes by selecting Check for Updates... in the Xcodes menu in the menu bar.
Changes
- send usernames as lowercase to prevent some login failures (#678) @mahadshahib
- Support FIDO2 authentication with devices that don’t have a PIN code (#655) @MultiColourPixel
v2.4.1 - Now with 101% more login
Install Xcodes using one of the methods listed here.
Update Xcodes by selecting Check for Updates... in the Xcodes menu in the menu bar.
Thanks to @kabiroberai this release should fix any users that still had the bad username/password after updating to 2.4.0
Changes
🐛 Bug Fixes
- Fix handling of s2k_fo (#650) @kabiroberai
v2.4.0 - Now with 100% more login
Install Xcodes using one of the methods listed here.
Update Xcodes by selecting Check for Updates... in the Xcodes menu in the menu bar.
Big shout out to @abiligiri 🎉 for getting the new Apple SRP login changes over the line! 🙏
Changes
🐛 Bug Fixes
- Support SRP Login (#640) @MattKiazyk
- Add support for SRP Login (#638) @abiligiri
🚀 Enhancements
- Add preference keys for 'Restrict allowed versions' & hide 'Support Xcodes' (#632) @abiligiri
v2.3.0 - Welcome back runtimes
Install Xcodes using one of the methods listed here.
Update Xcodes by selecting Check for Updates... in the Xcodes menu in the menu bar.
Changes
2.3.0 brings back the ability to download all runtimes. Starting with iOS 18, tvOS 18, watchOS 11, visionOS 2, Apple removed the direct downloads and instead used the same architecture that is used in downloading OS updates. This change brings more security but also turns it into a black box.
Fortunately, starting with Xcode 16.1 Beta 3, xcodebuild provides a way to download a single version using the new way. In order for Xcodes to work, you must have at least Xcode 16.1 beta 3 + installed and selected.
Thanks to the Apple engineer who added that into xcodebuild. 🙏
🚀 Enhancements
- allow cancelling of runtime downloads, cleanup (#628) @MattKiazyk
- Terminate Xcodes app after last window closed (#621) @Kyle-Ye
- Disallow changes to managed preferences (#569) @abiligiri
- Implement Security Key Auth (#617) @kinoroy
- feat: support downloading of cryptex (ex iOS 18+) runtimes (#622) (Xcode 16 Beta 3+ required) @MattKiazyk
- Add
authenticatingto theXcodeInstallationStep(#613) @chuganzy
🐛 Bug Fixes
- Update label for Cancel Install Button (#603) @LiYanan2004
🌎 Localization
- Update Localizable.xcstrings for Russian language (3) (#598) @duffpod
- Update translation in zh-Hant (#593) @pan93412
- Fix one Greek localization. Add one zh_Hans localization. (#609) @megabitsenmzq
🧰 Maintenance
- Bump ruby/setup-ruby from 1.190.0 to 1.197.0 (#629) @dependabot
- Bump actions/cache from 4.0.2 to 4.1.1 (#625) @dependabot
- Bump ruby/setup-ruby from 1.177.1 to 1.190.0 (#601) @dependabot
- chore: update sparkle framework (#624) @MattKiazyk
- chore: set CI to MacOS 14, Xcode 16 (#623) @MattKiazyk
v2.2.0 - Nobody likes a bully
Install Xcodes using one of the methods listed here.
Update Xcodes by selecting Check for Updates... in the Xcodes menu in the menu bar.
Changes
🚀 Enhancements
- Left Align Unarchiving Pane (#564) @LePips
- InfoPane UI Tweaks (#540) @marlonjames71
🐛 Bug Fixes
- Fix runtime downloading (#585) @MattKiazyk
- Fix broken DockProgress Bar (#545) @Kyle-Ye
🌎 Localization
- Update Korean localisation (#568) @floydkim
- ADD: Added Arabic Localizations To Xcodes (#576) @MohamediosDev
🧰 Maintenance
- fix: Update GitHub URLs in help menu (#581) @Person2099
- Resolve concurrency check warning on Swift 5.10 (#522) @LiYanan2004
- Bump ruby/setup-ruby from 1.173.0 to 1.177.1 (#563) @dependabot
- chore: lossless png compression (#560) @mikeirvingweb
- Update README.md (#548) @alladinian
- fix: product name casings (#559) @mikeirvingweb
- Set explicit SwiftPolyglot tag and update clone path (#547) @roddymunro
- Bump ruby/setup-ruby from 1.172.0 to 1.173.0 (#542) @dependabot
- Bump actions/cache from 4.0.1 to 4.0.2 (#543) @dependabot
- adds localization validation on PR's (#533) @MattKiazyk
v2.1.2 - I'm just Xcodes
Install Xcodes using one of the methods listed here.
Update Xcodes by selecting Check for Updates... in the Xcodes menu in the menu bar.
Changes 2.1.2
🐛 Bug Fixes
- fix: xcode list row text hidden on macOS 14.4 (#538) @vvisionnn
Changes 2.1.1
🚀 Enhancements
- Replace AttributedText with markdown to fix the layout issues (#531) @huihuisang
- replace default icon in info page (#530) @huihuisang
- Improve Filter Button style (#526) @chickdan
- Improve the layout of the sidebar (#504) @huihuisang
- Improve signing experience when using non-english keyboard (#521) @LiYanan2004
- Improvements in the layout of the Settings window (#506) @alladinian
- Allow selecting text for version info (#503) @clementpadovani
🐛 Bug Fixes
- fix runtime not appearing when multiple runtimes exist for same build (#523) @MattKiazyk
- fix: adds back in sidebar toggle button so users don't get stuck (#499) @MattKiazyk
🌎 Localization
- chore: cleanup some localizeable.xcstrings (#532) @MattKiazyk
- Updated german localization (#519) @Schr0eder
- l10n(zh-Hant): Update translation for 2.0.2 (#502) @pan93412
- Update Ukrainian localisation (#510) @kikiwora
- Greek language localization (#505) @alladinian
- Update zh_Hans Localizations. And more. (#482) @megabitsenmzq
🧰 Maintenance
- Remove outdated version checks (#527) @chickdan
- Bump ruby/setup-ruby from 1.171.0 to 1.172.0 (#509) @dependabot
- Bump actions/cache from 4.0.0 to 4.0.1 (#515) @dependabot
- Bump release-drafter/release-drafter from 5 to 6 (#497) @dependabot
- Bump ruby/setup-ruby from 1.169.0 to 1.171.0 (#495) @dependabot
v2.1.1 - I'm just Xcodes
Install Xcodes using one of the methods listed here.
Update Xcodes by selecting Check for Updates... in the Xcodes menu in the menu bar.
Changes
🚀 Enhancements
- Replace AttributedText with markdown to fix the layout issues (#531) @huihuisang
- replace default icon in info page (#530) @huihuisang
- Improve Filter Button style (#526) @chickdan
- Improve the layout of the sidebar (#504) @huihuisang
- Improve signing experience when using non-english keyboard (#521) @LiYanan2004
- Improvements in the layout of the Settings window (#506) @alladinian
- Allow selecting text for version info (#503) @clementpadovani
🐛 Bug Fixes
- fix runtime not appearing when multiple runtimes exist for same build (#523) @MattKiazyk
- fix: adds back in sidebar toggle button so users don't get stuck (#499) @MattKiazyk
🌎 Localization
- chore: cleanup some localizeable.xcstrings (#532) @MattKiazyk
- Updated german localization (#519) @Schr0eder
- l10n(zh-Hant): Update translation for 2.0.2 (#502) @pan93412
- Update Ukrainian localisation (#510) @kikiwora
- Greek language localization (#505) @alladinian
- Update zh_Hans Localizations. And more. (#482) @megabitsenmzq
🧰 Maintenance
- Remove outdated version checks (#527) @chickdan
- Bump ruby/setup-ruby from 1.171.0 to 1.172.0 (#509) @dependabot
- Bump actions/cache from 4.0.0 to 4.0.1 (#515) @dependabot
- Bump release-drafter/release-drafter from 5 to 6 (#497) @dependabot
- Bump ruby/setup-ruby from 1.169.0 to 1.171.0 (#495) @dependabot