Swift: что такое файл.swift-версии?

Я вижу, что многие проекты имеют этот файл в корневом каталоге:

.swift-версия

Вот несколько примеров:

https://github.com/hackiftekhar/IQKeyboardManager

https://github.com/Alamofire/Alamofire

https://github.com/TheMindStudios/SwiftyPlayer

Мой вопрос в том, какова цель этого файла и для чего он используется?

Ответ 1

Это похоже на практику файла версии.ruby, который инструктирует диспетчера версий, такого как rvm, выбрать конкретную версию ruby. Но что он делает в случае быстрой, я не уверен. Вот два связанных сценария, с которыми я столкнулся:

  1. Кажется, что этот флаг используется cocoapods для установки некоторых настроек уровня цели на контейнерах. См:

Выпуск Cocoapods

Этот запрос на извлечение cocoapod также может дать некоторую подсказку

  1. Другое место, с которым я столкнулся, это swiftenv. Это прекращается, как rvm (или nvm), что может помочь вам управлять несколькими версиями swift.

Это не точный ответ. Но я надеюсь, что он предоставит некоторую информацию.

Ответ 2

Похоже, это способ маркировать Pods как Swift и указать версию для использования. Также кажется, что это приведет к генерации CocoaDocs в Swift (как только CocoaDocs поддерживает это).

См. Файл CHANGELOG CocoaPods.

Ответ 3

В приведенных вами примерах файл .swift-version используется CocoaPods, но, начиная с CocoaPods 1.4.0, вы больше не должны использовать файл .swift-version. swift_version атрибут swift_version чтобы указать версию Swift. Проверьте этот пример файла .podspec для CocoaPods 1.6.0.beta.2:

Pod::Spec.new do |s|
  #other attributes
  s.swift_version = '4.2'
end

Здесь вы можете найти более подробную информацию о выпуске CocoaPods 1.4.0. Проверьте раздел Swift Версия DSL.

Более того, поскольку CocoaPods 1.7.0.beta.1 вы получите предупреждение, если попытаетесь использовать файл .swift-version, см. Эту ссылку для получения дополнительной информации.

Ответ 4

--swift-version=VERSION вы можете использовать параметр --swift-version=VERSION. Например:

pod repo push your-specs $ PROJECT_NAME.podspec --swift-version = 4.0

Ответ 5

Это определяет версию Swift, используемую во время линтинга. Linting проверяет сборки библиотеки на всех платформах, на которые она претендует. Линтирование может быть выполнено отдельно (pod lib lint) или обязательно перед отправкой новой версии pod в cocoapods-trunk или в ваше собственное репозиторий.