Swiftpack.co - Package - RobotsAndPencils/xcodes

xcodes

Manage the Xcodes installed on your Mac

CircleCI

Installation

Homebrew (Preferred)

brew install robotsandpencils/made/xcodes

These are Developer ID-signed release builds and don't require Xcode to already be installed in order to use.

Other methods:

Download a release

Download the latest release from the Releases page. These are Developer ID-signed release builds and don't require Xcode to already be installed in order to use.

Using Mint
mint install RobotsAndPencils/xcodes
Build from source

Building from source requires Xcode 10.2 or later, so it's not an option for setting up a computer from scratch.

git clone https://github.com/RobotsAndPencils/xcodes
cd xcodes
make install
# or, if /usr/local/ isn't in your PATH
PREFIX=/your/install/directory make install

While installing, you may get the following output:

swift build
error: terminated(72): xcrun --sdk macosx --find xctest output:

If that occurs, it means you need to select a version of Xcode. You can do this with xcode-select or by choosing a Command Line Tools option in Xcode's preferences Locations tab.

Usage

E.g. xcodes install 10.1

You'll then be prompted to enter your Apple ID username and password. You can also provide these with the XCODES_USERNAME and XCODES_PASSWORD environment variables.

After successfully authenticating, xcodes will save your Apple ID password into the keychain and will remember your Apple ID for future use. If you need to use a different Apple ID than the one that's remembered, set the XCODES_USERNAME environment variable.

Commands

  • list: Lists the versions of Xcode available to download
  • install <version>: Downloads and installs a version of Xcode
  • installed: Lists the versions of Xcodes that are installed in /Applications on your computer
  • update: Updates the list of available versions of Xcode
  • version: Prints the xcodes version

Development

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.

Contact

Made with ❤️ by Robots & Pencils

Twitter | GitHub

Github

link
Stars: 69
Help us keep the lights on

Used By

Total: 0

Releases

0.6.0 - Jul 2, 2019

If you installed xcodes with homebrew you can upgrade with brew upgrade robotsandpencils/made/xcodes.

Changes

  • Improve prerelease version comparison (#55) @interstateone
  • Refactor to better define boundaries (#53) @interstateone
  • Swift 5 (#31) @interstateone

0.5.0 - Jun 11, 2019

If you installed xcodes with homebrew you can upgrade with brew upgrade robotsandpencils/made/xcodes.

Changes

  • Your Apple ID username is now remembered after a successful login. If you need to use a different Apple ID than the one that's remembered, set the XCODES_USERNAME environment variable. (#46) @thii
  • Improve Gatekeeper error message, because Xcode 11 beta 1 fails the Gatekeeper assessment. (#51) @interstateone
  • Support developer.apple.com/download redesign, fixing support for listing beta releases. (#49) @interstateone
  • Update xcodes main errors to be more user friendly. (#45) @MattKiazyk

0.4.0 - May 16, 2019

If you installed xcodes with homebrew you can upgrade with brew upgrade robotsandpencils/made/xcodes.

Changes

  • Apple ID username and passwords are now saved to your keychain after successfully authenticating. Failed authentications will prompt for your password in order to retry, and will also remove the password saved to the keychain for the Apple ID username. Thanks to @MattKiazyk for their work on this functionality! (#25, #32, #42)
  • Added an xcodes version command that prints the current version of xcodes itself. Thanks to @daveanderson for the feature suggestion! (#29)
  • xcodes developers can run make project to generate an Xcode project. Thanks to @thii for this addition! (#43)
  • @juankaram added installation instructions for Mint (#24)
  • The code signing certificate and identifier, and the application support directory have changed to reflect the move from https://github.com/interstateone to https://github.com/robotsandpencils. The application support directory will be automatically migrated if necessary. (#39)
  • xcodes has CI building and running tests now

0.3.1 - Mar 20, 2019

Changes

  • xcodes list now ignores pre-release identifiers in available Xcode versions when determining which Xcodes are installed. This fixes an issue where pre-release versions wouldn't show that they were installed in the output, but it also means that if a newer pre-release version is available than one that you have installed, it will still show as installed. For example, if you have 10.2.0-beta.4 installed, and 10.2.0-beta.5 becomes available, xcodes list will print the line 10.2 Beta 5 (Installed). I'd like to further improve this in the future, but I think this matches xcode-version's behaviour for now.

0.3.0 - Mar 20, 2019

Changes

  • When a download fails in a way that it can be resumed, xcodes will automatically attempt to resume the download up to 3 times. After the third time it will exit, but you can run the same command again and it will attempt to resume from where it left off.
  • Improve error response handling when signing in
  • Fix pre-release version parsing