{"id":16831751,"url":"https://github.com/rodrigo-lima/xcswitch","last_synced_at":"2025-09-23T07:21:06.669Z","repository":{"id":137961242,"uuid":"104126204","full_name":"rodrigo-lima/xcswitch","owner":"rodrigo-lima","description":"Switch between Xcode versions","archived":false,"fork":false,"pushed_at":"2017-09-19T21:12:23.000Z","size":4,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-24T08:29:50.243Z","etag":null,"topics":["environment","xcode"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rodrigo-lima.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-19T20:40:22.000Z","updated_at":"2018-12-07T21:52:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"fd4238ef-982a-42ca-9e54-e6b69ca4008a","html_url":"https://github.com/rodrigo-lima/xcswitch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodrigo-lima%2Fxcswitch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodrigo-lima%2Fxcswitch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodrigo-lima%2Fxcswitch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodrigo-lima%2Fxcswitch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rodrigo-lima","download_url":"https://codeload.github.com/rodrigo-lima/xcswitch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244123015,"owners_count":20401514,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["environment","xcode"],"created_at":"2024-10-13T11:45:01.068Z","updated_at":"2025-09-23T07:21:01.615Z","avatar_url":"https://github.com/rodrigo-lima.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xcswitch\nSwitch between Xcode versions but keeping current Xcode version as `/Applications/Xcode.app`\n\nAll other versions will remain under `/Applications` with their corresponding versions appended to its name.\n\n```\n~ % ls -1d /Applications/Xcode*\n/Applications/Xcode.app         -- Current Version is 8.3.3\n/Applications/Xcode8.2.1.app    -- other Xcode's\n/Applications/Xcode9.0.app\n```\n\n## Why not 'xcode-select'?\nThat's the official and correct way of doing this, but I found out that some older projects still have (or generate) map files that depend on `Applications/Xcode.app` being **the** Xcode location.\n\nIf you `xcode-select` and point it to, for example, `/Applications/Xcode8.2.1.app` the build will probably fail and/or you'll spend 100 hours trying to figure out why things don't work as they should. Trust me, it happened before...\n\n## Usage\nWhen running the script without any arguments, it prints the current version and lists all other Xcode versions you have installed under `/Applications`.\n\n\u003e **Note:** when creating the list, the script strips out `/Applications/Xcode` and `.app` from the directory names, so you'll only see the version. This assumes you're using a similar naming convention as shown above. i.e. `Xcode8.2.1.app, Xcode9.0.app, etc.`\n\n```\n~ % ./xcswitch.sh\nXcode switcher -- Currently: [8.3.3]\n\n1) 8.2.1\n2) 9.0\nSelect Xcode version to use: (CTRL+C to quit)\n```\n\nIf you know the version you want to switch to, just type it as argument.\n\n```\n~ % ./xcswitch.sh 9.0\nXcode switcher -- Currently: [8.3.3]\n\nSwitching from: [8.3.3] - to: [9.0]\n...\nPassword:\nDouble check versions below:\nXcode 9.0\nBuild version 9A235\nApple Swift version 4.0 (swiftlang-900.0.65 clang-900.0.37)\nTarget: x86_64-apple-macosx10.9\n```\n\nYou might be asked for your user password as the script required `sudo` privileges.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodrigo-lima%2Fxcswitch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodrigo-lima%2Fxcswitch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodrigo-lima%2Fxcswitch/lists"}