Полностью автоматизированная установка XCode
Сначала войдите в систему на сайте загрузок Apple Developer и получите версию XCode.dmg, которая работает для вашей версии OSX. Возможно, вы захотите получить пару версий для поддержки различных платформ OSX (например, 10.10 Yosemite, 10.9 Mavericks и т. Д.). Загрузите dmg на файловый хост, к которому у вас есть доступ (например, Amazon S3, Dropbox, ваш провайдер общего хостинга и т. Д ...)
Измените DOWNLOAD_BASE_URL
в следующем сценарии и переименуйте dmgs соответствующим образом с номером версии и сборки или добавьте его в сценарий ниже:
#!/bin/bash
DOWNLOAD_BASE_URL=http://example.com/path/to/xcode/dmgs/
## Figure out OSX version (source: https://www.opscode.com/chef/install.sh)
function detect_platform_version() {
# Matching the tab-space with sed is error-prone
platform_version=$(sw_vers | awk '/^ProductVersion:/ { print $2 }')
major_version=$(echo $platform_version | cut -d. -f1,2)
# x86_64 Apple hardware often runs 32-bit kernels (see OHAI-63)
x86_64=$(sysctl -n hw.optional.x86_64)
if [ $x86_64 -eq 1 ]; then
machine="x86_64"
fi
}
detect_platform_version
# Determine which XCode version to use based on platform version
case $platform_version in
"10.10") XCODE_DMG='XCode-6.1.1-6A2008a.dmg' ;;
"10.9") XCODE_DMG='XCode-5.0.2-5A3005.dmg' ;;
*) XCODE_DMG='XCode-5.0.1-5A2053.dmg' ;;
esac
# Bootstrap XCode from dmg
if [ ! -d "/Applications/Xcode.app" ]; then
echo "INFO: XCode.app not found. Installing XCode..."
if [ ! -e "$XCODE_DMG" ]; then
curl -L -O "${DOWNLOAD_BASE_URL}/${XCODE_DMG}"
fi
hdiutil attach "$XCODE_DMG"
export __CFPREFERENCES_AVOID_DAEMON=1
sudo installer -pkg '/Volumes/XCode/XCode.pkg' -target /
hdiutil detach '/Volumes/XCode'
fi
Возможно, вас заинтересует установка инструментов командной строки XCode, а также обход лицензионного соглашения XCode:
curl -Ls https://gist.github.com/trinitronx/6217746/raw/58456d6675e437cebbf771c60b6005b4491a0980/xcode-cli-tools.sh | sudo bash
# We need to accept the xcodebuild license agreement before building anything works
# Silly Apple...
if [ -x "$(which expect)" ]; then
echo "INFO: GNU expect found! By using this script, you automatically accept the XCode License agreement found here: http://www.apple.com/legal/sla/docs/xcode.pdf"
expect ./bootstrap-scripts/accept-xcodebuild-license.exp
else
echo -e "\x1b[31;1mERROR:\x1b[0m Could not find expect utility (is '$(which expect)' executable?)"
echo -e "\x1b[31;1mWarning:\x1b[0m You have not agreed to the Xcode license.\nBuilds will fail! Agree to the license by opening Xcode.app or running:\n
xcodebuild -license\n\nOR for system-wide acceptance\n
sudo xcodebuild -license"
exit 1
fi
Альтернативный метод
Альтернативой является использование этого яблочного сценария, который я создал .
Для использования:
git clone https://gist.github.com/6237049.git
cd 6237049/
# Edit the script with AppleScript Editor to replace your APPLE ID and PASSWORD
osascript Install_XCode.applescript
Вас также может заинтересовать мой ответ здесь: Как загрузить и установить инструменты командной строки для Xcode .
Я бы порекомендовал другой метод вместо метода appleScript. Яблочный скрипт зависит от иерархии элементов пользовательского интерфейса, которая может не всегда оставаться неизменной для будущих версий приложения App Store для OSX. Это просто кажется мне хрупким. Установка XCode через командную строку через dmg, вероятно, является наиболее надежным способом.