Как установить xcode на mac os catalina

Обновлено: 04.07.2024

После выхода IOS 14.5 появилась серьезная проблема для тех, кто ведет разработку под macOS Catalina. Для нормальной работы нужен Xcode 12.5 которому нужна macOS Big Sur
А это, чаще всего, требует обновления железна.
Да, есть патчи для самого Xcode с подменой SDK, но мне этот путь крайне не нравится т.к. имеет очень большие ограничения и не особо пригоден для нормальной разработки.

Вопросов приходит все больше. Решил описать подробней.

Предлагаю проверенный (на мой взгляд самый удачный, на сегодня) способ установки macOS Big Sur на Mac 2010+
Лично проверено на macMini Late 2012 (Macmini 6,1), MacBook Air 11 Mid 2011 (MacBookAir 4,1), MacBookPro 15 Mid 2012 (MacBookPro9,1), Mac mini Mid 2010 (Macmini 4,1)
На всех аппаратах стоит SSD и 8/16 памяти (кроме Air. на нем 4 по понятным причинам)
Продолжаем тестирование на других аппаратах.

Что получите на выходе:
Mac с установленной и полностью работающей Big Sur. Сама система не имеет никаких отличий в функционале от установленной на официально поддерживаемом железе.

Отдельно хочу отметить для тех, кто читает не внимательно. Описанный способ установки касается только компьютеров Apple. У хакинтошей свой путь.

Какие есть нюансы:
- не будет работать графическое ускорение
- работа wifi адаптера на основной массе устройств станет возможна только после установки соответствующего патча. На время установки стоит использовать подключение по Ethernet
- работа USB на аппаратах 2010 и некоторых моделях 2011 года (более новых это не касается) станет возможна только после установки патча. Если это не ноут, то стоит использовать bt клавиатуру и мышь.
- обновление Big Sur ставятся не через дельта-обновления, а через полны апдейт системы. Это чуть дольше, но позволяет избежать многих проблем.
- нужно понимать, что сама система рассчитана на новые компы. на старых, особенно 2010-2011 будет притормаживать. Не критично, но.


ВАЖНО! Патч еще в разработке и могут быть не очень корректные действия. Сам не встречал, но все может быть.

ВАЖНО! Обязательно сделайте резервную копию с помощью Time Machine. Это защитит данные и упростит их восстановление.
ВАЖНО! Все дальнейшие действия вы делаете добровольно на свой страх и риск.

Что стоит сделать на последок:
Если у вас SSD не от самого Apple, то нужно принудительно включить режим TRIM
в терминале выполните команду

после ввода пароля, подтверждения действий и завершения процесса - компьютер будет перезагружен без особых предупреждений

Еще. Не рекомендую использовать FileVault. Но это касается не только патченной системы, но и любой обычной. Нет смысла себе создавать дополнительный гемор.

ВАЖНО! Не забывайте обновлять Patched Sur и mac os через него.

Начиная с macOS 10.15 Catalina разработчикам требуется заверять свои приложения и утилиты командной строки. Если с приложениями, распространяемыми через App Store все прозрачно, то распространение консольных утилит может вызвать сложности. В данной статье я покажу, как можно доставлять такие утилиты до конечных пользователей (будем проделывать все необходимые операции в терминале, а также автоматизируем эти действия двумя вариантами - через bash-скрипт и с помощью SPM executable).

Создание консольного приложения в Xcode

Для начала создадим проект предельно простой консольной утилиты, которая будет уметь выводить в консоль ascii-графику с грустным котиком:


Даем проекту название:


Можем задать произвольное название для компилированной утилиты (например, если проект назван с заглавной буквы, а утилита должна содержать только строчные буквы):


Нам также потребуется библиотека для удобной обработки команд из терминала Swift Argument Parser:


В файле main.swift подключим библиотеку Argument Parser и создадим главную команду:

Планируется, что нашей утилитой из терминала будут пользоваться так: sadcat show . AsciiCat.self - это как раз и будет субкомандой show . Реализуем субкоманду:

Все - демо-проект готов!

В процессе разработки удобно в схеме таргета передавать аргументы, которые мы планируем в будущем использовать в терминале:



Тогда, выполняя команду Run, можно сразу увидеть результат работы утилиты с переданными аргументами в консоли:


Релизную версию сборки утилиты командной строки можно собрать, выполнив из меню Xcode Product -> Archive :



В окне Window -> Organizer , щелкнув правой кнопкой мыши по архиву, можно посмотреть его расположение:




Путь к папке Products внутри архива нам еще потребуется.

Распространяем свое консольное приложение

Есть несколько возможных путей, как запустить консольную утилиту на стороннем компьютере (конечный пользователь) - вручную переместить утилиту в целевую папку и выдать соответствующие разрешения на ее исполнение, упаковать в заверенный pkg-инсталлятор и через Homebrew.

Путь 1 - Перемещаем скомпилированную утилиту в целевую папку

Итак, пользователь скачал вашу консольную утилиту. Чтобы запускать ее через терминал как sadcat show (т.е. без прописывания полного пути до исполняемой утилиты), ее нужно переместить в папку /usr/local/bin/ :

Также утилиту можно переместить простым перетаскиванием файла в Finder, открыв предварительно целевую папку: open /usr/local/bin/ .

Если сейчас попробовать выполнить команду sadcat show , мы увидим ошибку:

Необходимо выдать разрешение на выполнение утилиты:

Снова пробуем выполнить команду sadcat show , и видим ошибку:


Необходимо еще перейти в настройки macOS в раздел Защита и безопасность и разрешить использование утилиты:


Вот теперь можно пользоваться нашей утилитой из терминала:

Такой способ распространения консольной утилиты уж точно нельзя назвать user-friendly. Поэтому переходим ко второму способу (заверенный pkg-инсталлятор).

Путь 2 - Упаковка в заверенный pkg-инсталлятор

Прежде, чем приступать непосредственно к созданию инсталлятора, нужно создать два сертификата Developer ID Application и Developer ID Installer (если их у вас еще нет), а также Application Specific Password (вы должны быть участником Apple Developer Program):

Создаем два сертификата - Developer ID Application и Developer ID Installer. Их можно создать на портале Apple, или через Xcode: Xcode -> Preferences -> Accounts -> Manage Certificates

Keychain Item Name: Developer-altool

Account Name: электронная почта вашего аккаунта разработчика

Password: только что созданный вами Application Specific Password

Также нужно внести некоторые изменения в Xcode-проект:

Отключаем Automatically manage signing, задаем Bundle Identifier и в Signing Certificate обязательно выбираем Developer ID Application:


Убеждаемся, что значение параметра Hardened Runtime в Build Settings выставлено в Yes. Включение Hardened Runtime приведет к компиляции двоичного файла таким образом, что внешнему процессу будет сложнее инжектировать код. Это обязательное условие для успешного заверения ваших утилит сервером Apple:


Создаем pkg

Утилиту командной строки невозможно заверить, но можно заверить pkg, dmg или zip файл, внутри которых будет содержаться ваша утилита. pkg можно создать командой pkgbuild :

Два пояснения по опциям команды:

--sign - название вашего Developer ID Installer сертификата (можно посмотреть, выполнив в терминале команду % security find-identity -p basic -v)

--root - путь до корневой папки, внутри которой находится дерево каталогов. Это может быть папка Products внутри архива ( Product -> Archive ) или путь до папки, в которую Xcode билдит бинарник при выполнении команды xcodebuild install (расположение папки для второго варианта можно задать в Build Settings в параметре Installation Build Products Location, но, похоже, Xcode 12.5 не воспринимает значение этого параметра)

Заверяем pkg-установщик

У Xcode есть утилита командной строки xcrun altool , которую можно использовать для загрузки pkg-установщика на сервер Apple и последующего заверения:

--username - электронная почта вашего аккаунта разработчика

--password - пароль в связке ключей, который мы недавно создали для Application Specific Password

--asc-provider - это Team ID (десять символов). Если вы являетесь членом только одной команды, вам необязательно указывать его.

После успешного выполнения вышеприведенной команды, нам вернется RequestUUID (не потеряйте его). Сервер Apple продолжит процесс заверения pkg-установщика. Чтобы узнать статус заверения, нужно выполнять периодически команду:

Также статус заверения придет вам на почту.

Чтобы pkg-установщик можно было использовать и на offline-машинах, нужно сделать еще один шаг - прикрепить notarization ticket к pkg-файлу:

Автоматизируем действия (bash)

Скрипт я взял здесь. Он немного отличается от приведенного ниже, так как возможно Xcode 12.5 не учитывает параметр Installation Build Products Location в Build Settings (или проблема в моих кривых руках). Отличие в том, что в моем варианте используется путь до папки Products внутри собранного архива из Xcode:

Автоматизируем действия (swift)

Можно автоматизировать действия не на bash-скрипте, а на swift. Для этого нужно создать либо консольную утилиту в Xcode, либо с помощью исполняемого Swift Package Manager. Покажу основные моменты второго способа. Во-первых, нужно создать папку ( PkgAndNotarize для примера) для проекта (SPM создаст таргет с таким же именем, как и у папки), переместиться в нее в терминале через команду cd и создать исполняемый SPM:

В консоли вы увидите:

Уже сейчас можно сбилдить и запустить сгенерированный проект:

Нам также понадобится библиотека ArgumentParser (которую мы ранее уже использовали). Добавить зависимость нужно в файле Package.swift :

Далее в main.swift создаем команду, которая будет принимать одну опцию - путь до архива ( .xcarchive ):

Остальные переменные для работы утилиты можно положить в текстовый файл ( config ), попытка чтения которого будет производиться из текущей рабочей директории терминала. Конфиг может выглядеть, к примеру, так:

В функции run() реализуем ту же логику, которая была в bash-скрипте (ну и дополнительно парсер файла с конфигурацией). Я не буду полностью показывать код, только приведу функцию, которая позволяет выполнять консольные команды:

Стоит обратить внимание, что launchPath - это полный путь до консольной команды, например /usr/bin/pkgbuild . Полный путь можно посмотреть в терминале, выполнив type для интересующей команды, например:

Функция shell позволяет консольную команду, которая в терминале выглядит, к примеру, как:

в swift записать, как:

После реализации всех команд на swift, можно собрать релизную версию утилиты для автоматизации (билд будет находиться в папке .build ):

И далее переместить скомпилированную утилиту в /usr/local/bin/ .

Все! Можно воспользоваться только что собранной утилитой и заверить pkg-инсталлятор:


Путь 3 - Homebrew

В данной статье этот способ не будет рассмотрен. Но он мне видится как наиболее удобный именно для разработчиков и системных администраторов, но не для простых пользователей.


Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

1- Download XCode

Если у вас нет компьютера Mac OS, вы можете установить виртуальную операционную систему Mac OS​​​​​​​, работающую на VMWare (Или VirtualBox) это реальный способ, чтобы получить операционную систему Mac OS и можно установить XCode. Можете просмотреть инструкции здесь:

Заметьте, что версии XCode зависят от версии операционной системы Mac, поэтому удостоверьтесь, что ваша операционная система Mac является самой новой. В противном случае, в процессе установки, вы получите оповещение ошибки как ниже:


Обновление версии оперционной системы Mac совершенно бесплатно, это поможет вам лушче работать, поэтому я рекомендую вам обновить его.

В случае, если вы не хотите обновлять операционную систему, но хотите установить XCode, скачайте подходящую версию, которая возможно не самая новая.

XCode Minimum Mac OS Version
XCode 11.4.1 macOS Catalina 10.15.4
XCode 11.4 macOS Catalina 10.15.2
XCode 11.3.1
XCode 11.3
XCode 11.2.1 macOS Catalina 10.15
XCode 11.2
XCode 11.1
XCode 11
XCode 10.3 macOS 10.14.6
XCode 10.2 macOS 10.14.4
XCode 10.1 macOS 10.14.1
XCode 10 macOS 10.14
XCode 9.x macOS 10.13.2
XCode 8.x macOS 10.12
XCode 7.x OS X 10.11


Чтобы скачать XCode, пройдите по ссылке ниже:

Выберите подходящую версию XCode для вашей операционной системы.


После скачивания, вы получите файл XIP (Сжатый формат в MacOS), или файл DMG (Формат для установки в MacOS).


XIP это сжатый формат в MacOS, похожий на ZIP, он включает цифровую подпись (digital signature), которая помогает сохранить целостность и исходную информацию файла.

2- Установка XCode (XIP)

С XCode 8.x или новее, после скачивания, вы получите файл XIP, переместите в другую папку (Не в папку Downloads).


Кликните дважды чтобы открыть, Archive Utility у MacOS проверит электронную подпись (digital signature) и извлечет этот файл.



Кликните дважды на Xcode​​​​​​​, чтобы установить.



Дождитесь завершения установки и вы можете работать с ним.


3- Установка XCode (DMG)

С XCode 7.x или более ранней версии, установщик будет файлом DMG, кликните дважды на него, чтобы установить.



После установки и копирования XCode в Application, вам нужно его установить.

Favorite

В закладки

Откатился с macOS Big Sur на Mojave. Mac теперь просто летает

Разработчиков из Купертино часто ругают за постоянно растущие требования новых версий операционных систем к железу. Это заметно как на мобильных устройствах с iOS, так и на компьютерах с macOS.

Большая группа пользователей яблочной техники намеренно блокируют обновления операционной системы сразу же после покупки iPhone, iPad или Mac.

Если с обновленным смартфоном или планшетом уже ничего не поделаешь, то на Mac вполне реально сделать даунгрейд и установить более старую версию macOS. Именно это я и решил сделать со своим Mac mini 2018 года, который в последнее время меня совсем не радовал.

Зачем решил откатиться на Mojave


Просто устал бороться с косяками и недоработками macOS. Все лето просидел на тестовых версиях Big Sur и терпел глюки, понимая недостатки бета-версий.

Еле дождался финального релиза системы, с которым затянули аж до ноября, а после произвел чистую установку macOS.

Проблемы и глюки не исправились, а многие из них присутствуют и сейчас.

Во-первых, не работает синхронизация открытых вкладок в Safari через iCloud. iPhone и iPad с тем же Apple ID отлично видят вкладки друг друга, а Mac ни в какую не хочет видеть вкладки с мобильных устройств. Приходится вручную передавать нужные вкладки через AirDrop.

Проблема достаточно массовая, но купертиновцы ничего не предпринимают.

Во-вторых, периодически отваливается универсальный буфер обмена. Чиню все по этой инструкции.

С момента выхода финальной версии Big Sur четыре раза сталкивался с этой ошибкой.

В-третьих, Mac не сразу отображается в списке доступных для передачи по AirDrop устройств. Приходится ждать несколько секунд или повторно запускать передачу файлов.

Между другими устройствами передача файлов работает без проблем, как и работала с этим Mac до обновления операционной системы.

В-четвертых, Mac стал заметно дольше выходить из режима сна. Пробовал оставлять минимальное количество запущенных приложений, но это не помогает.

На накопителе достаточно места для гибернации, перепробовал разные параметры режима сна, все безрезультатно.

В-пятых, кулер компьютера стал чаще и сильнее раскручиваться даже без видимой нагрузки. Вскрывал корпус Mac mini для чистки от пыли, не особо помогло.

При этом я не пользуюсь специфическим ПО, на совместимость с которым часто жалуются пользователи после обновления.

Как установить macOS Mojave на Mac


1. Делаем актуальную резервную копию в Time Machine. Развернуть на Mojave ее не получится, бекап нужен на случай восстановления Mac до текущего состояния с установленной версией Big Sur.

2. Перезагружаем Mac с зажатым на клавиатуре сочетанием клавиш Shift-Option-Command-R. При таком режиме восстановления по сети компьютер загрузит установочные файлы операционной системы, с которой он поставлялся (или самое актуальное обновление для нее).

2. Если ваш Mac был выпущен до 2018 года, придется загрузить macOS Mojave вручную. Скачиваем установщик macOS Mojave из Mac App Store (потребуется около 6.5 Гб дискового пространства).

3. Создаем загрузочную флешку с macOS Mojave по нашей инструкции.

4. На компьютерах с чипом T2 включаем возможность загрузки с внешних накопителей.

5. Перезапускаем Mac с зажатой клавишей Alt(Option) и выбираем в качестве загрузочного диска флешку с macOS Mojave.

6. Следуем инструкциям мастера установки.

Будьте готовы к тому, что после даунгрейда операционной системы не получится загрузить бекап от более новой версии. Придется вручную произвести все настройки и загрузить необходимые приложения.

Каких фишек из Catalina и Big Sur не будет после даунгрейда

После возвращения к базовой операционной системе для моего Mac лишился сразу нескольких полезных фишек. Вот эти особенности системы заметны после перехода с macOS Big Sur:

1. Старый дизайн системы, который мы видели несколько лет вплоть до вышедшей в 2020 году macOS Big Sur.

К этому никаких претензий нет, привыкаешь буквально за 15 минут. Особой разницы между круглыми и квадратными иконками я не вижу, старый стиль оформления приложений особо не напрягает, а виджетами на Mac я вообще не пользуюсь (раньше хоть калькулятор удобный был).

2. Нет пункта управления, который собирает все системные индикаторы за одной иконкой строки меню.

Данной фишки никогда не было в macOS, так что привыкнуть к ней настолько, чтобы начать скучать, я еще не успел. При желании можно установить сторонний аналог с разными переключателями.

3. В Safari нет ряда новых фишек: стандартного блокировщика трекеров, анализа безопасности паролей, переводчика сайтов на системный язык (его нужно включать при помощи небольшой хитрости).

Нужной фишкой считаю только встроенный переводчик, но его легко можно заменить сторонним софтом.

А еще заметил вот аткие фишки, которые появились в macOS еще со времен Catalina.


4. У меня опять появился iTunes. Полтора года назад медиакомбайн разделили на три приложения: Музыка, Подкасты и TV. Функции для работы с подключенным iPhone и iPad перенесли в Finder.

Ни одним из трех указанных приложений на Mac я не пользуюсь, а мобильные гаджеты подключаю к компьютеру крайне редко. Из-за появления новой-старой иконки я не сильно расстроился.

5. Немного изменились стандартные приложения. Практически каждая программа имеет с десяток мелких фишек и изменений в дизайне, но они едва заметны.

Серьезнее всего переработаны Системные настройки. Некоторые пункты меню перенесены или названы иначе, в остальном все на своем месте.

6. В macOS Mojave нет встроенного архиватора. Для работы со сжатыми данными нужно установить давно известный The Unarchiver.

7. Немного не хватает фишки Экранное время. Учет проведенного в разных приложениях времени и установленные лимиты на каждую программу придется задавать через сторонние трекеры активности.

8. Нет режима SideCar для вывода изображения на подключенный iPad. Пользовался этой фишкой в некоторых сценариях пока не перешел на ультраширокоформатный дисплей.

Фишка хоть и работает стабильнее сторонних решений, но имеет существенные недостатки. Главное, к чему так и не смог привыкнуть, невозможность управлять приложениями касанием дисплея iPad. Сделать это можно только при помощи оригинального cтилуса Apple, а без него доступны только прокрутка страницы и функциональные кнопки под экраном.

Если такая возможность понадобится в дальнейшем, просто выберу одно из сторонних приложений.

9. В macOS Mojave нет поддержки Apple Arcade и Apple TV+. А ими кто-то вообще пользуется на Mac?

Как видите, за два года разработчики из Купертино предложили довольно скромный набор преимуществ. Зато при даунгрейде не будет серьезных проблем и лишений.

Как работает Mac на macOS Mojave


Великолепно! И это не временное улучшение после чистой установки операционной системы, а заметный ощутимый прирост производительности.

Сама система потребляет меньше ресурсов, чем более новые версии ОС. Это ощущается при работе с разными окнами, запуске приложений или выходе из режима сна.

Вот сравнение производительности компьютера на разных версиях macOS:



Сравнительный тест Geekbench 5 на MacOS Mojave (слева) и macOS Big Sur (справа)

Имеем примерно 10-процентный прирост производительности при даунгрейде ОС. Это заметно при рендеринга видео в Final Cut и работе с тяжелыми снимками в Photoshop.

Все описанные выше проблемы и глюки магическим образом пропали. Восстановилась нормальная работа вкладок Safari, универсального буфера обмена и AirDrop. Mac реже раскручивает систему охлаждения и работает она на заметно меньших оборотах в тех же сценариях использования.

Кроме этого вернулась поддержка 32-битных приложений. Уже давно нашел все необходимые аналоги, но вернуться к паре давно привычных утилит всегда приятно.

А еще больше нет необходимости устанавливать корявые плагины для поддержки формата webp в Photoshop. После обновления до Big Sur поддержка этого типа графики появилась в Safari и браузер часто загружал подобные картинки из сети.

Немного не хватает автоматической смены темы оформления, но это запросто решается при помощи автоматизации или сторонних утилит.

В очередной раз подтвердилась истина: лучшая операционная система для вашего Mac та, с которой он продавался.

В итоге считаю свой эксперимент вполне удачным. Могу смело рекомендовать всем, кто устал бороться с проблемами последних версий macOS, откатиться на более старые и стабильные релизы.

(38 голосов, общий рейтинг: 4.61 из 5)

Favorite

В закладки

Xcode

Чтобы установить Homebrew на macOS Catalina, у вас должен быть установлен Xcode. Вы можете получить его из Магазин приложений для Mac. Приложение большое и по какой-то причине загружается очень медленно, когда вы получаете его из Mac App store, так что вам придется немного подождать.

После его установки вам также необходимо установить для него инструменты командной строки. Чтобы установить инструменты командной строки, откройте Терминал и введите следующую команду.


Вы увидите запрос с просьбой подтвердить, что вы хотите установить инструменты, а также увидите лицензионное соглашение, с которым вы должны согласиться.

Инструменты командной строки устанавливаются не слишком долго. По завершении вы можете установить Homebrew.

Установить Homebrew

Откройте Терминал и выполните следующую команду.


Вам нужно будет подтвердить, что вы хотите установить Homebrew. Терминал покажет вам все изменения, которые он будет вносить, то есть новые каталоги, которые он создаст при установке. Подтвердите, что вы хотите его установить.



Если в какой-то момент вы захотите проверить установку Homebrew, вы можете запустить следующую команду в Терминале.

Команда вернет, какая версия Homebrew установлена ​​на вашем Mac.


Если вы хотите удалить Homebrew, вы можете запустить следующую команду в Терминале.

Homebrew имеет доступно тонны документации поэтому, если вы не знаете, как его использовать, просмотрите документацию. Приложения, которые вы можете установить через Homebrew, часто предоставляют команду, которую нужно запустить для их установки. В основном они поставляются со сценарием, который можно запустить через Homebrew, и этот сценарий позаботится об установке. Если доступен сценарий удаления, вы можете запустить его, чтобы удалить приложение.

Вы должны знать, что приложения, которые вы устанавливаете через Homebrew, все равно должны быть 64-битными, если вы устанавливаете их на Catalina. Homebrew не позволяет пользователям обойти 64-битную версию Catalina. От этого никуда не деться. В этой связи Homebrew пришлось обновиться до версии, совместимой с Catalina, поэтому маловероятно, что вы сможете установить ее более старые версии.

Читайте также: