的XCode 4.3代码签名错误

问题描述:

的Xcode 4.3之前,我用这个方法来提交申请到应用程序商店:的XCode 4.3代码签名错误

- 编译与被应用程序的构建设置 内配置了相应的签名证书的应用程序 - 分发使用Xcode内置的提交过程将应用程序导入应用程序商店或客户端。当我被要求选择签署该应用程序的签名证书时,我总是选择“不要辞职”。

但是,Xcode 4.3中不存在“不要辞职”选项。因此,我的应用程序已经辞职,并且最终会出现错误消息,说明代码签名验证失败。

有没有办法解决这个问题?

我发现代码签名的编译错误是由于Xcode 4.3中的一个bug造成的。正如许多其他人在Apple的开发人员论坛和我自己中指出的,如果您的应用程序包含映像包,Xcode会抱怨代码对您的应用程序进行签名的情况很多!所以,我删除了包含图像的包,并将这些图像作为单独的文件重新导入。我能够以这种方式编译Ad Hoc的应用程序,但它不能用该包进行编译。另外,就“不辞职”而言,我注意到即使应用程序已经在另一步骤中进行了代码签名,Xcode 4.3也变得非常聪明,不会重新签署具有相同证书的应用程序,即使它看起来不让你有机会不去!这就是我使用Ad Hoc构建进行验证的结果。我很快会尝试用生产版本。

因此,Xcode 4.3变得更智能一种方式,并且变成了另一种。 Apple需要用捆绑软件解决这个问题,好吧!

是的,有一种方法。在它使用默认的代码标记之前,它可以找到它并将其自动嵌入到您的应用程序中。现在它的窃听。

要解决这个问题,您需要经过获取新证书及其私钥/公钥的步骤。 3个步骤:

  1. 请务必前往应用程序>工具>钥匙串访问完全删除旧的证书和密钥。然后删除与您的开发者帐户关联的证书和私钥。

  2. 删除所有信息头Here后,为您的应用程序生成新的证书。下载并导入您的登录钥匙扣

3.在Xcode中打开您的项目。前往您的根项目文件夹>目标>构建设置,并附加新的正确证书以正确地为您的应用程序签名。

如果您不确定代码签名过程。要么去here,要么去分配下的dev provisioning profile,你有一些(REALLY OUTDATED)的例子来指点你的方式

+0

但是,这是否意味着必须重新生成推送通知证书?而且,由于在服务器中新的证书将被上传,是否会破坏已有应用程序与App Store的兼容性?我不认为预览版本没有默认任何东西,除非您已将其设置为自动选择。我没有那样做。我已经将生成设置更改为使用特定证书,而在归档时,我选择了“不重新签名”选项,因为它已经签名。 – csotiriou 2012-02-22 07:56:56

+0

是的,您将不得不重新生成推送通知,并且会破坏与App Store上现有应用程序的兼容性。我会选择不同的方法吗?是的,但经过近一周的斗争,以发布应用程序,由于这个小故障我没有选择。如果你的代码有它的plist文件,而你以前没有备份过,那么恢复到4.2也是行不通的。 (发现困难的方式)。 – rinzler 2012-02-26 03:05:57