No description
Find a file
2021-01-19 23:01:49 -07:00
.github Try a different method of building the appcast site 2021-01-19 18:43:18 -07:00
AppCast Build and publish appcasts with GitHub Pages 2021-01-18 21:56:23 -07:00
com.robotsandpencils.XcodesApp.Helper Xcode wants to change the Info.plist 2021-01-19 22:20:07 -07:00
HelperXPCShared Add install functionality 2021-01-07 21:25:07 -07:00
Scripts Fix Scripts/increment_build_number.sh 2021-01-19 22:22:40 -07:00
Xcodes Increment build number 2021-01-19 22:22:24 -07:00
Xcodes.xcodeproj Bump version to 1.0.1 2021-01-19 22:19:40 -07:00
XcodesTests Replace print/dump/NSLog with os.log Logger 2021-01-16 13:14:27 -07:00
.gitignore Add a packageRelease.sh script to help automate the generation of release assets 2021-01-18 19:16:36 -07:00
DECISIONS.md Psych, switch "default" to "active", add justification 2020-12-30 22:06:39 -07:00
icon.png Add icon, screenshot and features list to README 2021-01-14 20:18:07 -07:00
LICENSE Update LICENSE 2021-01-19 23:01:49 -07:00
R&PLogo.png Elaborate in README, add DECISIONS 2020-12-22 20:22:44 -07:00
README.md Remove . in tag name in release steps 2021-01-19 22:23:29 -07:00
screenshot.png Add icon, screenshot and features list to README 2021-01-14 20:18:07 -07:00

Xcodes.app

The easiest way to install and switch between multiple versions of Xcode.

If you're looking for a command-line version of Xcodes.app, try xcodes.

CI

Features

  • List all available Xcode versions from Xcode Releases' data or the Apple Developer website.
  • Install any Xcode version, fully automated from start to finish. Xcodes uses aria2, which uses up to 16 connections to download 3-5x faster than URLSession.
  • Just click a button to make a version active with xcode-select.
  • View release notes, OS compatibility, included SDKs and compilers from Xcode Releases.

Installation

Xcodes.app is currently only provided as source code that must be built using Xcode.

Development

You'll need macOS 11 Big Sur and Xcode 12 in order to build and run Xcodes.app.

If you aren't a Robots and Pencils employee you'll need to change the CODE_SIGNING_SUBJECT_ORGANIZATIONAL_UNIT build setting to your Apple Developer team ID in order for code signing validation to succeed between the main app and the privileged helper.

Notable design decisions are recorded in DECISIONS.md. The Apple authentication flow is described in Apple.paw, which will allow you to play with the API endpoints that are involved using the Paw app.

xcode-install and fastlane/spaceship both deserve credit for figuring out the hard parts of what makes this possible.

Releasing a new version

Follow the steps below to build and release a new version of Xcodes.app. For any of the git steps, you can use your preferred tool, but please sign the tag.

# Update the version number in Xcode and commit the change, if necessary

# Increment the build number
scripts/increment_build_number.sh

# Commit the change
git add Xcodes/Resources/Info.plist
git commit -asm "Increment build number"

# Tag the latest commit
# Replace $VERSION and $BUILD below with the latest real values
git tag -asm "v$VERSIONb$BUILD" "v$VERSIONb$BUILD"

# Push to origin
git push --follow-tags

# Build the app
scripts/package_release.sh

# Notarize the app
scripts/notarize.sh "test@example.com" "@keychain:altool" MyOrg Product/Xcodes.zip

# Go to https://github.com/RobotsAndPencils/XcodesApp/releases
# Edit the latest draft release
# Set its tag to the tag you just pushed
# Set its title to a string with the format "$VERSION ($BUILD)"
# Polish the draft release notes, if necessary
# Attach the zip that was created in the Product directory to the release
# Publish the release

Contact

Made with ❤️ by Robots & Pencils

Twitter | GitHub