0

我正在开发一个针对所有 Apple 操作系统(macos、ios、watchos、tvos)的 Objective-C 库。我使用的一些 Apple API 只能从特定版本的操作系统开始使用。我确实使用以下方法保护我的接口定义和操作系统版本相关代码:

API_AVAILABLE(macos(10.11), ios(9.0), watchos(2.0), tvos(9.0))

但是,我的模块导入似乎也导致我的库的基于 Cocoapods 的构建失败。例如,如果 OSLog 模块仅在根据上述 API_AVAILABLE(...) 规范开始的操作系统中可用,我确实需要@import OSLog;使用类似于上述 API_AVAILABLE(...) 的 #if 预编译器条件来保护它。

假设我的假设是正确的,我应该怎么做呢?

4

1 回答 1

1

我认为以下应该有效:

#if __has_include(<os/log.h>)
  #include <os/log.h>
#endif
于 2021-04-17T17:17:01.793 回答