使用SonarQube Xcode构建包装器时遭遇代码签名相关错误
解决build-wrapper执行xcodebuild时libinterceptor.dylib代码签名错误
这个问题本质是macOS的代码签名安全机制阻止了未签名的libinterceptor.dylib动态库被加载到经过苹果官方签名的xcodebuild相关进程中。下面是几个实用的解决办法:
方案一:为libinterceptor.dylib添加临时自签名
找到错误提示中libinterceptor.dylib的实际路径(比如./build-wrapper-macosx-x86/libinterceptor.dylib),然后用系统自带的codesign工具给它加一个临时自签名:
codesign --force --sign - /path/to/your/libinterceptor.dylib
这里的-代表使用临时的自签名证书,不需要开发者账号或正式证书,足以绕过系统的签名校验限制。
方案二:构建时禁用项目代码签名
如果你的项目本身启用了代码签名,在执行xcodebuild时可以临时禁用签名,这样构建进程不会触发严格的签名校验,允许加载未签名的拦截库:
build-wrapper-macosx-x86 --out-dir ./bw_output xcrun xcodebuild CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
这个参数只会影响本次Sonar分析的构建过程,不会改变项目的默认签名配置。
方案三:适配Apple Silicon架构(针对M1/M2芯片Mac)
如果你用的是苹果自研芯片的Mac,注意build-wrapper-macosx-x86是x86架构的工具,可能需要通过Rosetta运行:
- 找到终端应用,右键选择「显示简介」
- 勾选「使用Rosetta打开」,重启终端后再执行build-wrapper命令
- 也可以检查SonarQube工具包是否提供了
build-wrapper-macosx-arm64版本,直接使用对应架构的工具会更顺畅
内容的提问来源于stack exchange,提问作者Werner Altewischer
相关产品推荐
相关产品推荐

