我正在开发一个针对所有 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 预编译器条件来保护它。
假设我的假设是正确的,我应该怎么做呢?