#swift-package-manager
#swift-package-manager
Вопрос:
Есть ли способ определить зависимость, Package.swift
которая указывала бы на последнюю фиксацию определенной ветви или даже просто на определенный идентификатор фиксации (точно так же, как это возможно с Carthage)?
Допустим, у меня есть репозиторий библиотеки, где я хотел бы расширить и внести некоторые изменения, а затем иметь возможность протестировать их в зависимом проекте.
Комментарии:
1. Это должно быть возможно с помощью buildMetadataIdentifiers . Но пока мне не повезло.
Ответ №1:
Начиная с Swift 4, вы можете использовать .branch()
и .revision()
, как описано в PackageDescription.md .
Комментарии:
1. Вот пример: .package(url: » github.com/somePackage «, .филиал («развивать»))
Ответ №2:
Это возможно.
- Перейдите к проекту
- Перейдите на вкладку «Зависимости пакетов»
- Дважды щелкните пакет, ветвь которого вы хотите изменить
- Укажите ветвь / фиксацию.
Комментарии:
1. В случае фиксации Xcode требует, чтобы мы указали весь хэш, а не только первые 8 символов.
Ответ №3:
Пока нет, но команда swiftpm работает над этим. Теперь вы должны указать версию пакета при объявлении зависимости.
import PackageDescription
let package = Package(
name: "Example",
dependencies: [
.Package(url: "https://github.com/somePackage", "1.0.0")
]
)
В будущем это станет возможным, обсуждалось добавление блокировки версий, но это еще не принято и не реализовано.
Для вашего варианта использования вы можете разветвить репозиторий, внести изменения, протестировать их, а затем добавить тег версии в свой форк. Теперь гораздо проще вносить изменения с помощью редактируемых пакетов.