Swift Package Manager: Target может получить доступ к зависимости другого Target - PullRequest
0 голосов
/ 09 января 2019

У меня есть следующий Package.swift файл:

import PackageDescription

let package = Package(
    name: "MultiTargetTest",
    products: [
        .executable(
            name: "MultiTargetTest",
            targets: ["MultiTargetTest"]),
    ],
    dependencies: [
        .package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", from: "4.0.0")
    ],
    targets: [
        .target(
            name: "MultiTargetTest",
            dependencies: ["SwiftyJSON", "IndependentTarget"]),
        .target(
            name: "IndependentTarget",
            dependencies: []),
        .testTarget(
            name: "MultiTargetTestTests",
            dependencies: ["MultiTargetTest"]),
    ]
)

Здесь я не хочу никакой зависимости от цели IndependentTarget, но фактически в коде я могу без проблем импортировать SwiftyJSON в IndependentTarget цель.

Вот моя структура кода:

enter image description here

Здесь Demo.swift находится в IndependentTarget, и у меня есть доступ к SwiftyJSON framework.

Как определить цель IndependentTarget, чтобы она не имела доступа к зависимостям в другой цели?

Обновление: я заметил, что впервые при запуске swift build выдает ошибку, но после этого работает нормально.

Вот скриншот:

enter image description here

...