【问题标题】:PDFKit symbols missing from Swift Package errorSwift Package 错误中缺少 PDFKit 符号
【发布时间】:2021-03-30 00:50:07
【问题描述】:

我正在尝试构建一个依赖于框架的 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”似乎未链接。我将如何链接它?

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

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

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

编辑

如果我在此处手动选择“PDFKit”,该错误就会消除。然而,这个 Xcode 实例是用

构建的
swift package generate-xcodeproj

因此不需要手动更改内容...

【问题讨论】:

标签: dependencies symbols swiftpm


【解决方案1】:

swift forum 的帮助下,我设法使用this API 找到了答案。

【讨论】:

    【解决方案2】:

    这是我在 Package.swift 中的正确用法

    如何在swift包中链接系统框架/库

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 2012-04-18
      • 2016-06-04
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多