我正在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