在代码签名过程中更新Xcode会产生错误“找不到磁盘上的代码对象”

我只是更新到Xcode的最新版本,并在运行我们的自动构build脚本时遇到错误(它们使用xcodebuildxcrun命令)。

### 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 

我在这里find了文档,列出并简要描述了错误,但没有关于如何解决这个错误的具体细节。

因为我花了太多的时间寻找解决scheme(如此),所以我会发布下面的答案,以防其他人遇到同样的问题。

值得注意的是,您可能需要更新指定codesign_allocate位置的环境variables:

 export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate" 

但是真正的解决scheme来自这里 :

 ln -s /usr/bin/codesign_allocate /Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate 

希望这可以节省一些时间…

在XCode 4.5(安装在/ Applciations / XCode4_5)上运行构build脚本时,出现了此错误,最近安装了XCode 5(位于/ Applications / XCode的主开发目录中),以便仍可以定位iOS 6 SDK一个更老的项目,当需要。

我以前通过导出CODESIGN_ALLOCATE环境variables,将https://stackoverflow.com/a/18768869/72176中提到的解决方法应用于我的构build脚本。

在这个问题的这个最近的例子中,我实际上通过删除旧的解决方法来修复它。 所以我的build议是:如果你最近得到这个错误,你以前已经应用了解决方法:尝试不使用它,看看是否有帮助!