Skip to content

Instantly share code, notes, and snippets.

@rnapier
Last active March 18, 2022 01:17
Show Gist options
  • Save rnapier/3370649 to your computer and use it in GitHub Desktop.
Save rnapier/3370649 to your computer and use it in GitHub Desktop.
Links Xcode SDKs from the /SDKs directory (which you maintain yourself)
#!/usr/bin/python
# fix-xcode
# Rob Napier <robnapier@gmail.com>
# Script to link in all your old SDKs every time you upgrade Xcode
# Create a directory called /SDKs (or modify source_path).
# Under it, put all the platform directories:
# MacOSX.platform iPhoneOS.platform iPhoneSimulator.platform
# Under those, store the SDKs:
# MacOSX10.4u.sdk MacOSX10.5.sdk MacOSX10.6.sdk MacOSX10.7.sdk MacOSX10.8.sdk
#
# After upgrading Xcode, just run fix-xcode.
import argparse
import subprocess
import os
source_path = "/SDKs"
parser = argparse.ArgumentParser()
parser.add_argument('xcodePath', help='path to Xcode', nargs='?')
args = parser.parse_args()
if args.xcodePath:
dest_path = args.xcodePath
else:
dest_path = subprocess.check_output(["xcode-select", "--print-path"]).rstrip()
if not dest_path.endswith("/Contents/Developer"):
dest_path += "/Contents/Developer"
for platform in os.listdir(source_path):
subprocess.call("sudo ln -sf %(source_path)s/%(platform)s/* %(dest_path)s/Platforms/%(platform)s/Developer/SDKs" % locals(), shell=True)
@jpmhouston
Copy link

Included on this page are commands to use for altering the Info.plist. Integration into the script should be straightforward, hmm, maybe except for parsing the version number out of the SDK path.

@macfanr
Copy link

macfanr commented Sep 24, 2020

This not work for xcode12

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment