You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

默认Documentation Target构建失败,Objective-C垃圾回收不再支持求解决

解决appledoc因Objective-C垃圾回收不支持导致的构建失败问题

这个报错的核心原因很明确:你使用的旧版appledoc是基于Objective-C垃圾回收(GC)机制编译的,而现在的macOS和Xcode已经完全移除了对Objective-C垃圾回收的支持,所以运行appledoc时直接触发崩溃,导致Build Phase的脚本执行失败。

下面是具体的修复步骤:

1. 替换为维护版的appledoc

官方原版的appledoc已经停止维护多年,依赖的GC机制早已被淘汰。你需要安装一个社区维护的fork版本,这些版本已经移除了GC依赖,适配了新系统:

  • 如果用Homebrew安装,执行以下命令:
    brew install tomaz/appledoc/appledoc
    
  • 如果你习惯手动编译,可以从GitHub上克隆最新的维护分支(比如tomaz/appledoc),然后用Xcode编译安装,确保生成的appledoc二进制是基于ARC而非GC的。

2. 更新Build Phase中的脚本路径

安装完成后,需要修改你Documentation Target里的Shell脚本,确保调用的是新安装的appledoc路径:

  • 原来的脚本里写的是/Applications/appledoc,Homebrew安装的话,Intel Mac的路径通常是/usr/local/bin/appledoc,M1/M2 Mac则是/opt/homebrew/bin/appledoc
  • 修改后的脚本示例:
    /usr/local/bin/appledoc --verbose xcode $SOURCE_ROOT/$PROJECT_NAME
    

3. 再次清理并构建

做完上述修改后,再执行一次Xcode > Product > Clean Build Folder...,然后重新构建Documentation Target,应该就能解决问题了。

补充说明

你之前尝试的Clean、清空DerivedData、重启Xcode这些操作,只能解决缓存相关的问题,但无法解决appledoc本身依赖废弃机制的根本性问题,所以必须替换为适配新系统的版本才行。

内容的提问来源于stack exchange,提问作者meaning-matters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:33:00