fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

Как использовать предварительную версию Swift с помощью инструментов командной строки

Как использовать предварительную версию Swift с помощью инструментов командной строки

В предыдущей статье, Как использовать предварительную версию Swift в Xcode, мы узнали, как использовать различные цепочки инструментов Swift в Xcode. В конце мы узнаем, что изменение версии Swift в Xcode не влияет ни на какие инструменты командной строки.

Выбор цепочки инструментов Swift в Xcode влияет только на IDE Xcode. Это не повлияет ни на какие инструменты командной строки.

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

Новый выпуск Xcode всегда поставляется с последней стабильной версией Swift, например, Xcode 12.5 поставляется со Swift 5.4, но поскольку Swift является открытым исходным кодом, ему не нужно ждать, пока Xcode выпустит новую версию.

Если вы хотите подготовить свое приложение к новым возможностям Swift, вы можете протестировать его с текущей версией Xcode с помощью метода из статьи Как использовать предварительную версию Swift в Xcode. Но если вы также хотите, чтобы оно работало с CI, вам нужно, чтобы ваши инструменты, например, Fastlane и xcodebuild тоже знали о новом инструментарии. И именно этому вы научитесь в этой статье.

Проверка текущей версии Swift

Большинство инструментов командной строки Xcode используют инструментальные цепочки Swift на основе текущего активного Xcode.

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

Вы получите версию, которая поставляется с текущим активным Xcode. В моем случае это Swift 5.4 из Xcode 12.5.

Вы можете найти путь к цепочке инструментов, выполнив xcrun –find swift . Вы должны получить /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift, который указывает на текущий активный Xcode.

Использование swif t-version покажет версию swift, которую использует терминал, но это не обязательно версия swift, которую видят инструменты командной строки.

Пример

Для демонстрации я создал новый проект с новыми возможностями Swift 5.5.

[SE-0307] Разрешить взаимозаменяемое использование типов CGFloat и Double . [SE-0296] Async/await.

Попытка собрать приведенный выше код с помощью инструментария Swift 5.4 приведет к ошибкам компиляции.

Swift 5.4 не знает о возможностях Swift 5.5.

Запуск xcodebuild , который использует инструментарий по умолчанию из текущего активного каталога разработчика (Swift 5.4 для Xcode 12.5), выдаст те же ошибки.

Вы можете убедиться, что цепочка инструментов, используемая Xcode и инструментами командной строки, не связана, изменив Swift Toolchain на Swift 5.5 в Xcode, используя метод, описанный в статье Как использовать предварительную версию Swift в Xcode.

Изменение Swift Toolchain на Swift 5.5 в Xcode приведет к тому, что ошибки в Xcode исчезнут, но xcodebuild по-прежнему будет выдавать ошибки.

Решения

Есть два способа изменить цепочку инструментов Swift для инструментов командной строки.

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

После экспорта можно выполнить команду без параметр а-toolchain .

Эти два метода – фактически одно и то же, но разные способы введения аргумента toolchain.

–toolchain : Указывает, какую инструментальную цепочку использовать для выполнения поиска. Если аргумент –toolchain не указан, то используемая цепочка инструментов будет взята из переменной окружения TOOLCHAINS, если она присутствует.

Где найти имя и идентификатор цепочки инструментов

В приведенных выше решениях вам необходимо указать ИМЯ или ИДЕНТИФИКАТОР инструментальной цепочки. Это можно найти, открыв файл Info.plist цепочки инструментов, на которую вы хотите сослаться.

В моем случае цепочка инструментов находится по адресу /Library/Developer/Toolchains .

Откройте /Library/Developer/Toolchains , и вы увидите, что там находится ваша цепочка инструментов. Мой – swift-5.5-DEVELOPMENT-SNAPSHOT-2021-06-02-a.xctoolchain .

Щелкните правой кнопкой мыши и выберите “Показать содержимое пакета”.

Вы увидите файл Info.plist. Откройте его.

Вы можете найти имя под ключом Aliases и идентификатор под ключом Bundle identifier.

В данном случае вы можете использовать как swift, так и org.swift.55202106021a в качестве имени toolchain.

Работа с CI

Самостоятельный CI

Если вы контролируете сервер CI, вам необходимо установить нужную вам цепочку инструментов Swift и задать переменную окружения, указывающую на эту цепочку инструментов, с помощью команды export.

CI с предустановленным инструментарием Swift

Если ваш сервер CI с предустановленной цепочкой инструментов Swift, просто добавьте команду export, и все готово.

Облачный CI

Если вы используете облачные CI-сервисы без контроля над инфраструктурой, вам придется программно загрузить инструментарий Swift до начала сборки.

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

Оговорка

Для отправки в App Store вы должны создать свое приложение, используя версию Swift, включенную в Xcode. Таким образом, то, что мы узнали сегодня, предназначено только для тестирования и подготовки приложения к работе с новыми функциями.

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

Как использовать предварительную версию Swift в Xcode 14 июн 2021

Как удалить Cocoapods из вашего проекта 06 Мар 2020

Как тестировать компоновку пользовательского интерфейса для разных языков с помощью псевдоязыков 17 Янв 2022

Маленькие большие улучшения в Xcode 14 07 Jun 2022

Полезные сочетания клавиш Xcode для модульного тестирования 02 Апр 2020

  • Развертка необязательных значений в XCTest с помощью XCTUnwrap 18 Nov 2019
  • Понравилось читать?
  • Если вам понравилась эта статья, вы можете подписаться на еженедельную рассылку. Каждую пятницу вы будете получать краткий обзор всех статей и советов, опубликованных на этом сайте. Никаких условий. Вы можете отказаться от подписки в любое время.
  • Не стесняйтесь следовать за мной в Twitter и задавать свои вопросы, связанные с этой статьей. Спасибо за чтение и до встречи в следующий раз.
  • Если вам нравятся мои статьи, пожалуйста, загляните на мой Patreon и станьте моим сторонником. Делиться статьей также очень полезно.
  • Первая часть из серии “Что нового в кнопке UIKit”. Знакомство с новой конфигурацией кнопки, структурой, которая формирует и стилизует вашу кнопку. С конфигурацией кнопки вам больше никогда не нужно создавать подкласс UIButton.

Новое в iOS 15, SwiftUI наконец-то поддерживает предварительный просмотр i

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *