Ошибка анализа файла манифеста в диспетчере пакетов Swift с пользовательским путем - PullRequest
0 голосов
/ 17 октября 2019

Я нахожусь в процессе создания библиотеки для использования в нескольких быстрых приложениях. Я хочу, чтобы моя библиотека была легко установлена ​​через менеджер пакетов Swift. Я создал пустое приложение Swift и попытался использовать диспетчер пакетов Swift для автоматической установки этой библиотеки из репозитория Github.

Когда я впервые попытался загрузить репозиторий с помощью менеджера пакетов, я получил сообщение о том, что яМне нужно было указать путь к моей исходной папке, используя свойство path, поэтому я добавил строку

path: "Sources"

, чтобы указать каталог.

Это мой пакет. файл в корневом каталоге моего проекта

// swift-tools-version:5.1
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription

let package = Package(
    name: "TestProject",
    products: [
        // Products define the executables and libraries produced by a package, and make them visible to other packages.
        .library(
            name: "TestProject",
            targets: ["TestProject"]),
    ],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
    ],
    path: "Sources",
    targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages which this package depends on.
        .target(
            name: "TestProject",
            dependencies: []),
        .testTarget(
            name: "TestProjectTests",
            dependencies: ["TestProject"]),
    ]
)

После добавления path: "Sources" в мой код я получил две новые ошибки

Тип 'Любой' не имеет члена'library'

и

Не удалось проанализировать файл манифеста

Я не уверен, что вызывает эти ошибки, как этот код(минус добавленная мной строка) была сгенерирована Swift.

1 Ответ

1 голос
/ 17 октября 2019

Вы указываете path с целью, а не со всем пакетом.

Итак, перейдите к:

.target(
    name: "TestProject",
    dependencies: []),

и измените его на:

.target(
    name: "TestProject",
    dependencies: [],
    path: "Sources"),

Возможно, вам потребуется сделать то же самое, чтобы testTarget указывал на свои тестовые источники (по умолчанию он смотрит на Tests/ относительно корня пакета.

...