如何将Objective-C中的模块导入条件设置为最低操作系统版本



我正在Objective-C中开发一个库,该库针对所有苹果操作系统(macos、ios、watchos、tvos(。我使用的一些苹果API只能从某个操作系统版本开始使用。我确实用保护我的接口定义和操作系统版本相关代码

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

然而,我的模块导入似乎也会导致我的库的基于Cocoapods的构建失败。例如,如果OSLog模块仅在根据上述API_available(…(规范的版本启动的操作系统中可用,则我确实需要使用类似于上述API_available的#if预编译条件来保护@import OSLog;

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

我认为以下应该有效:

#if __has_include(<os/log.h>)
#include <os/log.h>
#endif

最新更新