Swift 包错误中缺少 PDFKit 符号

PDFKit symbols missing from Swift Package error

我正在尝试构建一个依赖于框架的 swift 包,但下游框架抛出错误。

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_PDFDocument", referenced from:
      objc-class-ref in Slice.swift.o
      objc-class-ref in Utility.swift.o
  "_OBJC_CLASS_$_PDFPage", referenced from:
      objc-class-ref in Slice.swift.o
      objc-class-ref in Utility.swift.o
ld: symbol(s) not found for architecture x86_64

下游框架单独构建时效果很好,但是当它作为依赖项添加到其他东西时就很痛苦了。

iOS 或 macOS SDK 中的 'PDFKit' 似乎未被 link 编辑。我怎么会 link 那?

我尝试将以下内容添加到我的代码中以查看是否会有所不同,但没有。

#if os(macOS) 
import Quartz.PDFKit
#else
import PDFKit
#endif

错误提示 PDFKit 需要在我的 Package.swift 文件中列出... ?

编辑

这里我手动select'PDFKit'错误就消除了。然而,这个 Xcode 的实例是用

构建的
swift package generate-xcodeproj

所以不需要手动更改...

swift forum I managed to find an answer using this API.

的帮助下

这是 Package.swift

中对我来说正确的用法

如何link系统framework/library在swift包

  targets: [
    .target(
      name: "SomeTarget",
      dependencies: [ ... ],
      linkerSettings: [
        .linkedFramework("PDFKit")
      ]
    ),
  ]

请注意,LinkerSetting 具有 .linkedFramework(..).linkedLibrary(..)