Apple 从 Xcode 14.3 开始弃用了一些用于 macOS 屏幕捕获的 API。例如:
CGDisplayStream.showCursor
在 macOS 13.0-13.3 中被标记为已弃用:
但是,当我在 Xcode 14.3 中检查时,我发现这个属性是在 macOS 13 中引入的:
我该如何理解这一点? 13.0 中未引入。我从 macOS 10 开始就使用它。如果你在 Xcode 14.2 中检查相同的属性:
同样适用于
CGDisplayStream.init
和其他。有人对此有什么想法吗?
这似乎在 Xcode 15 中已修复。现在弃用注释包含正确的 macOS 版本。
我今天在将 Xcode 升级到 14.3 后也遇到了这个问题,看起来 Apple 已经找到了一种新方法来传达这些常量将很快被弃用,最好转移到
ScreenCaptureKit
框架或寻找替代方案。
我发现这个问题的唯一解决方法是将这些
Swift
实现转换为 Objective C
并使用 Xcode 14.3
编译代码,或者使用旧的 Xcode 14.2
构建二进制文件。当您将实现转换为 Objective C
并使用 Xcode 14.3
进行编译时,它仍然会向您发出警告,但代码可以正常工作。
不确定您会喜欢这种方法,但想分享。