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

Xcode13.4.1 CMake构建开启代码签名报IDEKit扩展点缺失如何解决

问题产生原因

那两条watchOS扩展点缺失的日志是Xcode 13.x全系列(含13.4.1)的已知冗余日志bug,只要通过命令行调用xcodebuild,无论工程是否包含watchOS相关目标,都会打印这两行内容,和CodeSign失败没有直接因果关系,不需要针对这部分日志做特殊修复。

真正触发构建失败的核心原因是:CMake生成Xcode工程时,仅配置XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "Yes"是不完整的签名配置。Xcode的代码签名流程必须匹配开发团队ID、签名身份等必填参数,缺失这些参数时CodeSign命令会直接返回非零退出码,触发构建失败。

修复步骤
  • 补全目标的CMake签名相关属性配置,不要单独开启签名允许开关。将以下配置添加到你的目标属性设置中,对应内容替换为你自己的开发者账号信息即可:
# 将your_app_target替换为你实际的应用目标名
set_target_properties(your_app_target PROPERTIES
    XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "Yes"
    # 替换为你苹果开发者账号对应的10位团队ID
    XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "YOUR_10_DIGIT_TEAM_ID"
    # 根据构建场景替换签名身份:开发阶段用"Apple Development",发布阶段用"Apple Distribution"
    XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Development"
    # 适配Xcode 13的entitlements格式要求,避免签名资源校验失败
    XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "--generate-entitlement-der"
    # 无watchOS适配需求时显式指定支持平台,从根源消除watchOS相关冗余日志
    XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "iphoneos iphonesimulator macosx"
    XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2"
)
  • 清理全部缓存后重新生成工程:先删除工程目录下的CMakeCache.txt文件和CMakeFiles文件夹,再重新执行CMake生成Xcode工程,避免旧缓存的错误配置残留。
  • 确认命令行工具绑定正确:如果是命令行执行构建,先执行sudo xcode-select -s /Applications/Xcode.app/Contents/Developer,确保当前系统绑定的命令行工具版本和你使用的Xcode 13.4.1一致,避免多Xcode版本混装导致的签名资源索引错误。

补充验证:补全配置后首次打开生成的xcodeproj文件,不要手动修改Xcode界面里的签名设置,直接触发构建即可。如果签名证书和团队ID配置正确,CodeSign步骤会正常执行,开头的watchOS相关日志不会影响最终构建结果。

内容的提问来源于stack exchange,提问作者Karan Dixit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:30:43