Укажите ветвь зависимости или идентификатор фиксации в пакете Swift PM.swift

#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. Перейдите к проекту
  2. Перейдите на вкладку «Зависимости пакетов»
  3. Дважды щелкните пакет, ветвь которого вы хотите изменить
  4. Укажите ветвь / фиксацию.

Выберите ветвь или фиксацию здесь

Комментарии:

1. В случае фиксации Xcode требует, чтобы мы указали весь хэш, а не только первые 8 символов.

Ответ №3:

Пока нет, но команда swiftpm работает над этим. Теперь вы должны указать версию пакета при объявлении зависимости.

 import PackageDescription

let package = Package(
    name: "Example",
    dependencies: [
        .Package(url: "https://github.com/somePackage", "1.0.0")
    ]
)
  

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

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