DocC如何设置平台条件指令 解决iOS编译时macOS专属符号引用警告
解决方案
- 第一步给macOS专属的符号明确添加Swift可用性注解,在符号的声明处添加代码:
@available(macOS 10.15, *) @available(iOS, unavailable) // 原符号的声明代码,比如class、struct、func定义
该注解会明确告知DocC该符号仅在macOS平台下可用。
- 第二步在DocC文档中,将所有引用该符号的内容用DocC平台条件块包裹,Xcode 14及以上版本支持该原生语法:
#if os(macOS) // 所有涉及引用``Symbol``的文档内容都放在这里 #endif
编译iOS目标时,DocC会直接忽略条件块内的所有内容,不会尝试解析块内的符号引用,自然不会触发对应警告,依赖该包的上层应用也不会收到扩散的警告。
- 若使用Xcode 13及更早版本,或不需要保留符号的文档跳转能力,可以直接放弃
Symbol的自动链接语法,改为手动书写 Symbol 文本并标注仅macOS可用,也可以消除警告。 - 如果该符号所属的包目标本身仅支持macOS,需要在Package.swift的目标配置中明确指定支持的平台:
.target( name: "你的目标名", platforms: [.macOS(.v10_15)], // 其余配置 )
内容的提问来源于stack exchange,提问作者AirXygène
相关产品推荐
相关产品推荐

