在面向 iOS 15.0 的项目中“...仅在 iOS 13.0 或更高版本中可用”

Jam*_*len 5 xcode ios swift watchkit swiftui

我使用的是 Xcode 13.4,并使用“带有手表应用程序的 iOS 应用程序”项目模板创建了一个新的 SwiftUI 项目。主应用程序的目标设置为 iOS 15.5,手表目标设置为 WatchOS 8。一切都在模拟器上正常构建和运行。

我刚刚使用 Xcode 的菜单栏选项将watch-date-picker Swift 包(为 WatchOS 添加日期选择器的包)添加到我的项目中:File -> Add packages...

在此输入图像描述

现在我无法构建我的项目 - 我在添加的 watch-date-picker 包的代码中收到大量错误,抱怨各种事情都是only available in iOS 13.0 or newer. 我什至还没有尝试使用该库 - 我刚刚通过添加它File -> Add Packages。以下是包设置:

// swift-tools-version:5.5
import PackageDescription

let package = Package(
  name: "watch-date-picker",
  defaultLocalization: "en",
  platforms: [
    .watchOS(.v8)
  ],
  products: [
    .library(name: "WatchDatePicker", targets: ["WatchDatePicker"]),
  ],
  targets: [
    .target(name: "WatchDatePicker", dependencies: []),
    //.executable(name: "WatchDatePickerExamples", dependencies: ["WatchDatePicker"]),
  ]
)

Run Code Online (Sandbox Code Playgroud)

我很困惑为什么会收到此错误 - 据我所知,我的目标是所有内容的最新版本 - iOS 15.5 和 WatchOS 8.5。谁能解释为什么会这样以及我能做些什么来解决它?我错过了什么吗?我需要做些什么来告诉包只为 WatchOS 而不是 iOS 构建吗?我尝试过清理、删除派生数据、关闭 Xcode,但没有任何效果。谢谢!

在此输入图像描述

在此输入图像描述

在此输入图像描述

Che*_*eng 5

修改Package.swift

// swift-tools-version:5.5
import PackageDescription

let package = Package(
  name: "watch-date-picker",
  defaultLocalization: "en",
Run Code Online (Sandbox Code Playgroud)

// swift-tools-version:5.5
import PackageDescription

let package = Package(
  name: "watch-date-picker",
  platforms: [.iOS(.v15)],
  defaultLocalization: "en",
Run Code Online (Sandbox Code Playgroud)

我不懂为什么。但是,这是我迄今为止使用的解决方法。这个对我有用。


mat*_*att 0

添加包时,您可以说出它属于哪个目标。听起来您在添加此包时忽略了使该包成为 Watch 目标的一部分。

我建议完全删除该软件包并重新开始。