开发中,我们或许会引入一些不支持编译模拟器的第三方库,iOS用真机调试比较麻烦,其实我们可以通过条件编译的方式区分模拟器或者真机:
OC版:
#if TARGET_IPHONE_SIMULATOR //模拟器
#elif TARGET_OS_IPHONE //真机
#endif
Swift版:
// 操作系统
#if os(macOS) || os(iOS)
// CPU架构
#elseif arch(x86_64) || arch(arm64)
// swift版本
#elseif swift(<5) && swift(>=3)
// 模拟器
#elseif targetEnvironment(simulator)
// 可以导入某模块
#elseif canImport(Foundation)
#else
#endif