我刚刚更新到最新版本的Xcode,并在运行我们的自动构建脚本时遇到错误(他们使用xcodebuild
和xcrun
命令)。
在### Codesigning '/Users/...
日志语句之后立即发生错误,如下所示:
Program /usr/bin/codesign returned 1 : [/var/folders/__/63j90nkn2lg18ct1nq791_nc0000gn/T/g5hbigh1tM/Payload/CurrentTarget.app: replacing existing signature
/var/folders/__/63j90nkn2lg18ct1nq791_nc0000gn/T/g5hbigh1tM/Payload/CurrentTarget.app: cannot find code object on disk
我发现文档here列出并简要描述错误,但没有关于如何解决它的细节。
因为我花了很长时间寻找解决方案(S.O.没有)我将在下面发布答案以防其他人遇到同样的问题。
值得注意的是,您可能需要更新指定codesign_allocate位置的环境变量:
export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate"
但真正的解决方案来自here:
ln -s /usr/bin/codesign_allocate /Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate
希望这能节省一些时间......
在XCode 4.5(安装在/ Applciations / XCode4_5)上运行构建脚本时出现此错误,最近安装了XCode 5(在/ Applications / XCode的主dev目录中),这样我仍然可以在iOS 6 SDK上定位需要时的旧项目。
我以前通过导出https://stackoverflow.com/a/18768869/72176环境变量将CODESIGN_ALLOCATE
中提到的变通方法应用到我的构建脚本中。
在最近这个问题的实例中,我实际上通过删除旧的解决方法来修复它。所以我的建议是:如果你最近收到此错误,并且之前已经应用了解决方法:尝试取消应用它,看看是否有帮助!
在更新Xcode 9.3之后,我的两个项目发生了cannot find code object on disk
错误。
案例1:发现问题是CODE_SIGN_IDENTITY -
。
修复是将-
更改为特定的东西。
在Xcode项目检查器中,“代码签名标识”变为Don't Code Sign
或某些代码签名标识。
因此,CODE_SIGN_IDENTITY
"-"
成为""
(不代码签名)或特定的代码符号标识。
案例2:使用Swift 4.1开发快照工具链时,解决方案是将.xcconfig
配置设置文件添加到Xcode项目中。默认的CODESIGN_ALLOCATE
设置为swift-4.1-DEVELOPMENT-SNAPSHOT- ... .xctoolchain / usr / bin路径,它不包含codesign_allocate
可执行文件。 .xcconfig
可以明确地为构建设置CODESIGN_ALLOCATE
。
example.xcconfig
// file: example.config
CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate