Swift: что такое файл.swift-версии?
Я вижу, что многие проекты имеют этот файл в корневом каталоге:
.swift-версия
Вот несколько примеров:
https://github.com/hackiftekhar/IQKeyboardManager
https://github.com/Alamofire/Alamofire
https://github.com/TheMindStudios/SwiftyPlayer
Мой вопрос в том, какова цель этого файла и для чего он используется?
Ответы
Ответ 1
Это похоже на практику файла версии.ruby, который инструктирует диспетчера версий, такого как rvm, выбрать конкретную версию ruby. Но что он делает в случае быстрой, я не уверен. Вот два связанных сценария, с которыми я столкнулся:
- Кажется, что этот флаг используется cocoapods для установки некоторых настроек уровня цели на контейнерах. См:
Выпуск Cocoapods
Этот запрос на извлечение cocoapod также может дать некоторую подсказку
- Другое место, с которым я столкнулся, это 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 или в ваше собственное репозиторий.