Swift包管理器:依赖项iOS版本

Swift包管理器:依赖项iOS版本,swift,xcode11,swift-package-manager,corestore,Swift,Xcode11,Swift Package Manager,Corestore,我正在尝试用xCode11 beta 7构建具有外部依赖性()的swift包。我的包是针对iOS11+的,它在包中声明。swift: // 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

我正在尝试用xCode11 beta 7构建具有外部依赖性()的swift包。我的包是针对iOS11+的,它在
包中声明。swift

// 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: "Storages",
    platforms: [.iOS(.v11)],
    products: [
        // Products define the executables and libraries produced by a package, and make them visible to other packages.
        .library(
            name: "Storages",
            targets: ["Storages"]),
    ],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        .package(url: "https://github.com/JohnEstropia/CoreStore.git", from: "6.3.0")
    ],
    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: "Storages",
            dependencies: [.product(name: "CoreStore")]),

        .testTarget(
            name: "StoragesTests",
            dependencies: ["Storages"]),
    ]
)
但是,当我在未指定iOS版本的情况下构建it依赖关系时,会出现兼容性错误:
“'uniquencessconstraints'仅在iOS 9.0或更高版本中可用”


我怎样才能修好它?看起来是xCode11错误,但我不确定。

我不确定是不是xCode错误,但是使用Swift Package Manager和xCode 11时,您必须在使用可用的检查时明确指定iOS版本。无论库是否针对iOS 10+而不是

if #available(macOS 10.11, *) {
    info.append(("uniquenessConstraints", self.uniquenessConstraints))
}
你应该使用

if #available(macOS 10.11, iOS 9.0, *) {
    info.append(("uniquenessConstraints", self.uniquenessConstraints))
}
已发布拉取请求:

首先,您需要添加一个
平台
参数,并用支持的平台版本填写它。然后,您需要清除主机应用程序中的衍生数据。之后,再次尝试添加spm框架


我也遇到过同样的情况,一开始我没有添加平台参数,它在我的主机应用程序中给了我太多“'xxx'仅在iOS 9.0或更高版本中可用”错误。希望这能为您解决问题。

在我的机器上,将
平台:
参数添加到清单中解决了这个问题。例如:

let package = Package(
    name: "MyLibrary",
    platforms: [.iOS("13.0")],
    // ...