Xcode 15 构建问题:iOS 模拟器目标的 Objective-C 模块“AppKit”错误

Xcode 15 Build Issue: Objective-C Module 'AppKit' Error for iOS-Simulator Target

提问人:Richard Topchii 提问时间:10/30/2023 更新时间:10/30/2023 访问量:82

问:

在 Xcode 14.x 中运行以下命令:Package.swift

swift build -Xswiftc -warnings-as-errors -Xswiftc “-sdk” -Xswiftc “$(xcrun --sdk iphonesimulator --show-sdk-path)” -Xswiftc “-目标” -Xswiftc“x86_64-apple-ios15.0-simulator”

但是,使用 Xcode 15+ 时,我收到以下错误:

错误:无法构建 Objective-C 模块“AppKit”导入 AppKit

在以下行中:

#if canImport(AppKit)
  import AppKit
#elseif canImport(UIKit)
  import UIKit
#endif

如果我将代码更改为以下内容:

#if os(macOS)
  import AppKit
#elseif os(iOS)
  import UIKit
#elseif os(tvOS) || os(watchOS)
  import UIKit
#endif

我仍然收到错误:

错误:无法加载“UIKit”导入 UIKit 的基础模块

问题

  1. 为什么出于某种原因,当我只调用构建时,启动 Xcode 15 时构建系统会尝试构建/定位macOSAppKitiOS-Simulator
  2. 关于如何解决问题的任何提示?

注意

此命令有效:

swift 构建 -Xswiftc -warnings-as-errors

这个也成功构建并测试了包:

SWIFT测试

ios appkit swift-package-manager xcode15

评论

1赞 benc 10/31/2023
除了对构建系统进行通常的增量(和一些隐藏的更改)外,苹果似乎还努力清理 Xcode 中的平台处理(可能是因为它们加入了混合。我不怎么使用 line 命令,但我认为您应该研究项目文件如何定义。尝试创建一个 new-Xcode15 项目,并进行比较。visionOScanImport
0赞 Richard Topchii 10/31/2023
构建问题在两者和语句中都是可重现的。但是,使用命令,两者都没有问题。canImportif osxcodebuild
0赞 benc 10/31/2023
哦对不起,我现在明白你的意思了......我以为我之前提到过这一点,但我现在要断言......一般来说,您无法将 AppKit 完整地集成到 iOS 环境中。即使它让你以前,我认为这是不合适的。
0赞 Richard Topchii 11/1/2023
我不是想这样做。请看一下,如何使用 if 语句保护导入。AppKit
0赞 benc 11/2/2023
好吧,我认为可能有一个更基本的问题......如果您同时使用两个代码片段,而不是将一个代码片段替换为另一个代码片段,则会出现哪个错误?(我的猜测是错误会首先发生。UIKit

答: 暂无答案