iPhone的Codesign对象文件格式无效或不合适

我不小心删除了我的目标在Xcode。

所以我创build了一个完全相同的名字。 在目标设置我再次select正确的代码标识身份

但现在我不能编译的设备了。 只要我想build立,我得到:

CodeSign build/Release-iphoneos/myApp.app ....somestuff.... /Volumes/XCodeProj/myApp/build/Release-iphoneos/myApp.app: object file format invalid or unsuitable Connad /usr/bin/codesign failed with exit code 1 

我已经试图清理目标。 什么可能导致这个问题,以及如何解决?

也可能是您的安装问题。 Symlinking到最新的codesign_allocate在我的情况下解决了这个问题:

 sudo mv /usr/bin/codesign_allocate /usr/bin/codesign_allocate_old sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin 

在Mountain Lion中,您可以尝试在协调之前运行此操作:

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

确保目标的info.plist中的“Executable Name”(CFBundleExecutable)条目与您的目标设置中指定的“Product Name”匹配。

当我试图从terminal进行编码时,我遇到了这个问题。 我在卸载Xcode 3.0之后安装了Xcode 4.4。 看看在Xcode偏好下载,注意到命令行工具尚未安装。 我安装了这个之后,我的问题就解决了。 我猜这个解决scheme的问题比较复杂,但是这可能是未来用户在开始深入之前需要检查的问题。

对我来说,这是升级到XCode 4.5后发生的。

该解决scheme只是去首选项/下载并安装最新的命令行工具。

我有同样的问题,并尝试了各种各样的build设设置GCC4.0,searchpath等等,原来是与我的情况下的构build设置无关的问题是我在目标名称,即我是一个点针对v3.0 SDK,所以我打电话给目标Granade3.0。

我开始了一个名为“Grenade3zero”的全新项目,从原始中导入源代码,修复appdelegate的名称以匹配项目名称等等。build和go第一次加载到设备上,模拟器也很好, 。 看起来有些字符在目标名称中是非法的!

以为我会加我的解决scheme,以解决这个问题…我已经挣扎了几个星期,这个问题…已经检查了所有上述解决scheme,并改变更多。

我的解决scheme是在目标生成build settings

我有两个选项, armv6armv7 。 我把它改回到normal一个单一的条目,它build立了!

建立设置

emcmanus答案为我工作,但由于Xcode 4.3现在安装在应用程序文件夹,我删除旧的/开发文件夹,我不得不改变pathcodesign_allocate:

 sudo mv /usr/bin/codesign_allocate /usr/bin/codesign_allocate_old sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin 

我尝试了所有上述无济于事。 我的工作是将以下内容添加到我的构build脚本:

export CODESIGN_ALLOCATE =“/ Applications / Xcode.app / Contents / Developer / usr / bin / codesign_allocate”

我在研究我的问题时遇到了这篇文章: http : //mobiledevelopertips.com/mac-osx/code-signing-error-object-file-format-unrecognized-invalid-or-unsuitable.html

在开始签名过程之前,请先运行Mountain Lion作为第一个命令。

对于Xcode 4.x:export CODESIGN_ALLOCATE =“/ Applications / Xcode.app / Contents / Developer / usr / bin / codesign_allocate”

对于XCode 5:export CODESIGN_ALLOCATE =“/ Applications / Xcode.app / Contents / Developer / Toolchains / XcodeDefault.xctoolchain / usr / bin / codesign_allocate”

在Mountain Lion和Xcode 5.xx上运行的Jenkins中没有任何命令行实用程序也遇到类似的问题。 因为命令行实用程序现在与Xcode 5.1.x捆绑在一起

以下工作

sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate /usr/bin/

  1. 转到“生成设置”
  2. 转到“构build选项”选项卡
  3. 在构build选项选项卡的内部,find“debugging信息格式”,并将其值从“DWARF”更改为“带有dSYM文件的DWARF”。 应该在下拉菜单中。

它应该为你们工作。

如果您的应用在目标版本设置的“产品名称”中包含特殊字符,请将其删除。

例如,将“Mat的应用程序”重命名为“Mats应用程序”,它将生成。 你当然可以在显示名称中有特殊字符。

我也有同样的问题,原因是我的应用程序目标被链接到一个静态库,并没有提供自己的源文件(所有来源都在库中,应用程序目标只提供资源)。 一旦我将库中的某个源移出到应用程序目标,就修正了代码符号错误。

我认为这是由Xcode DP之一(开发人员预览)造成的。 它可以改变默认的Xcode.apppath到Xcode DP。

所以,U可以通过xcode-select --print-path来检查Xcode xcode-select --print-path

如果U得到了一些错误的目录,那么U可以通过xcode-select --switch来改变path

检查这个线程。 更改xcrun开发人员path

最好使用xcrun来find正确版本的codesign_allocate,因为它可以是不同的,取决于它是OS X二进制还是iOS。

这也允许苹果改变各种工具的位置而不会破坏你的脚本。

使用类似于:

export CODESIGN_ALLOCATE=$(xcrun --sdk iphoneos --find codesign_allocate)

当我试图用我的公司从不同于苹果的根证书颁发机构购买的数字证书签署我的OS / X(不是iOS)应用程序时,我会遇到错误。 每当我通过Safari下载证书时,都会出现这个问题。 使用Firefox下载证书帮助我摆脱了错误。