【问题标题】:Cant import AppKit in ObjC-module of SwiftPM无法在 SwiftPM 的 ObjC 模块中导入 AppKit
【发布时间】:2018-01-13 13:50:37
【问题描述】:

我尝试使用以下代码将 AppKit 导入 Swift-Packet 模块的标头中:

#import <AppKit/AppKit.h>

但是编译器抛出了这个错误:

fatal error: 'AppKit/AppKit.h' file not found

我应该以某种方式在 Package 的 Package.swift 文件中将其指定为依赖项吗?

提前致谢

迈克尔

【问题讨论】:

    标签: objective-c import swift-package-manager


    【解决方案1】:

    请注意,Swift 包管理器 (SPM) 是为服务端 Swift 设计的,而不是为客户端设计的。具体来说,AppKit 可能没有移植到服务器端 Swift,因此您无法将 AppKit 与 SPM 一起使用。 AppKit 是 Objective-C 运行时的一部分。 SPM 在构建过程中不考虑 Objective-C 运行时。

    来自swift.org, Platform Support

    我们的目标是在所有平台上为 Swift 提供源代码兼容性,即使实际实现机制可能因平台而异。主要示例是 Apple 平台包含 Objective-C 运行时,这是访问 Apple 平台框架(如 UIKit 和 AppKit)所必需的。在其他平台上,例如 Linux,没有 Objective-C 运行时存在,因为它不是必需的。

    Swift 核心库项目旨在通过提供基本 Apple 框架(例如 Foundation)的可移植实现而不依赖于 Objective-C 运行时来扩展 Swift 的跨平台功能。尽管核心库处于早期开发阶段,但它们最终将为 Swift 代码在所有平台上提供改进的源代码兼容性。

    【讨论】:

      【解决方案2】:

      我刚刚通过在 Xcode 中链接这个框架解决了这个问题。 我不知道如何在 Package.swift 文件中指定它,但知道它有效。

      问候

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 2020-06-06
        • 2019-12-15
        • 2014-08-09
        • 2020-07-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多