我们设计了一个 Swift 包,其中包括 MapKit 扩展和一些执行一些地理计算的自定义 func
。预期用途是使用导入 Xcode 的单个 Swift 包来使用两个类:一个是自定义的,另一个是 MKMapView
的扩展。
是否可以创建一个包含两个或更多 target
的 Swift 包?如何正确更新 Package.swift
以支持多个目标?
import MapKitSwiftExtensions
import CustomGeospatialComputations
印象是 target
中的第二个 Package.swift
可以添加到 targets
数组中。
.library(
name: "MapKit Swift Extensions",
targets: ["MapKitSwiftExtensions", "CustomGeospatialComputations"]
)
但是当 CustomGeospatialComputations
添加到 targets
数组时,我收到此错误?:
无法找到产品“MapKit Swift Extensions”中引用的目标“CustomGeospatialComputations”
理想情况下,我希望使用此文件结构进行开发。
.
├── Package.swift
├── README.md
├── Sources
│ └── CustomGeospatialComputations
│ └── GeoComputations.swift
│ └── MapKitSwiftExtensions
│ └── MKMapView+Extensions.swift
这是有效的Package.swift
(没有CustomGeospatialComputations
)
// swift-tools-version:5.2
import PackageDescription
let package = Package(
name: "MapKit Swift Extensions",
products: [
.library(
name: "MapKit Swift Extensions"],
targets: ["MapboxSwiftExtensions"),
],
dependencies: [ ],
targets: [
.target(
name: "MapKitSwiftExtensions",
dependencies: []),
]
)
答案 0 :(得分:1)
根据错误消息,我很确定您忘记在清单的 CustomGeospatialComputations
数组中定义 targets
目标。您的完整清单应如下所示:
// swift-tools-version:5.2
import PackageDescription
let package = Package(
name: "MapKit Swift Extensions",
products: [
.library(
name: "MapKit Swift Extensions",
// Add the targets to your product.
targets: ["MapKitSwiftExtensions", "CustomGeospatialComputations"]),
],
dependencies: [ ],
targets: [
.target(
name: "MapKitSwiftExtensions",
dependencies: []),
// Define the target for the package.
.target(
name: "CustomGeospatialComputations",
dependencies: []),
]
)