签名无效 - 代码对象根本没有签名 [英] Invalid Signature - Code object is not signed at all

查看:548
本文介绍了签名无效 - 代码对象根本没有签名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我能够通过Xcode 6.3.2完全提交我的应用程序。验证和分析完美传递。一旦它成功提交到应用程序商店,我收到了来自Apple的电子邮件:

Im able to submit my app through Xcode 6.3.2 perfectly fine. Validation and analyzing pass perfectly. Once it successfully submits to the app store though I get an email from Apple:

亲爱的开发者,
我们发现了您最近交付的一个或多个问题对于App。要处理您的交付,必须纠正以下问题:
签名无效 - 代码对象根本没有签名。请确保您已使用分发证书签署了您的申请,而不是临时证书或验证Xcode中的代码签名设置在目标级别是否正确(覆盖项目级别的任何值)。此外,确保您上传的软件包是使用Xcode中的Release目标而不是模拟器构建的。如果您确定您的代码签名设置正确,请在Xcode中选择全部清除,删除Finder中的build目录,然后重建您的发布目标。有关详细信息,请参阅 https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html
Once这些问题已得到纠正,然后您可以重新更新已更正的二进制文件。

"Dear developer, We have discovered one or more issues with your recent delivery for "App". To process your delivery, the following issues must be corrected: Invalid Signature - Code object is not signed at all. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose "Clean All" in Xcode, delete the "build" directory in the Finder, and rebuild your release target. For more information, please consult https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html Once these issues have been corrected, you can then redeliver the corrected binary."

我已尝试重新下载分发证书,重新生成分发配置文件,添加--deep签署其他代码签名标志的代码。我甚至检查了捆绑名称等,everthing是字母数字。我能够在5月22日提交罚款,现在6月3日一切都破了。

I have tried redownloading the distribution cert, regenerating the distribution provisioning profile, added "--deep" to the code signing "Other Code Signing Flags." I even checked the bundle name etc, everthing is alpha numeric. I was able to submit fine on May 22nd, now on June 3rd everything breaks.

没有任何意义,任何帮助都会受到赞赏!

Doesnt make any sense, any help would be appreciated!

UPDATE&解决方案:

虽然我没有很好地解释为什么在上周突然发生这种情况,但我今天早上终于找到了解决办法。

While I don't have a good explanation of why this suddenly has happened within the last week, I finally found a solution this morning.

我开始使用一个新项目并提交给应用程序商店,只提供标识符和正确的版本和内部版本号,处理正常。之后,我开始拼接任何不属于我自己的代码的资产,直到我收到无效的二进制电子邮件。我把它缩小到Hockey App SDK(嵌入式框架),导致问题甚至不再被使用,所以我将它从项目中删除(问题解决了)。令人不安的是,在验证或提交过程中我没有任何失败,根据github,这个目录和内容在一年内没有变化,这让我相信Apple在服务器方面有所改变。

I started with a new project and submitted to the app store with nothing but the identifier and correct version and build numbers, which processed fine. After that I started piecing in any assets that wasnt my own code until I got the "Invalid Binary" email. I narrowed it down to the Hockey App SDK (embedded framework) which was causing the issue and not even being used anymore so I removed it from the project (problem solved). The disturbing part is that nothing fails on my end during validation or submission and according to github this directory and content hasn't changed in a year, which leads me to believe something changed server side at Apple.

我确实看到很多帖子都是谷歌说框架需要签名等等,当使用Xcode 6和iOS 8时,它似乎是标准,这就是为什么我认为它可能是这些方面的东西。

I did see a lot of posts via google saying that frameworks needed signed etc and when using Xcode 6 and iOS 8 it seems to be the standard which is why I assumed it might be something along these lines.

我不确定这对我有多大帮助,因为我正在为iOS构建,本文是参考Mac,但是HockeyApp解释为了分发到应用程序商店,您需要在此处使用您自己的身份对框架进行签名:

Im not sure how helpful this is as I was building for iOS and this article is in reference to Mac, but HockeyApp explains in order to distribute to the app store you need to sign the framework with your own identity here:

http://support.hockeyapp.net/kb/client-integration-ios-mac-os-x / hockeyapp-for-mac-os-x

如果有人对此有任何技术性说明或为什么这突然改变我喜欢更好地理解这一点。

If anyone has anymore technical notes on this or why this suddenly changed Id love to understand this better.

推荐答案

我花了3天时间进行调试。

This took me 3 days to debug.

最后,这是由于我创建的外部框架(我称之为X),我是通过carthage导入的。 X有自己的依赖关系,它也通过carthage导入。为了链接这些框架,它在构建设置中有一个名为框架搜索路径的路径设置为框架的位置。由于某种原因,这个框架中的这个标志导致了问题中指定的问题。我最终使用Git子模块导入了X的依赖项,因此我不必设置框架搜索路径标志。我导出框架并手动将其添加到我提交给AppStore的项目中。然后它奏效了。

In the end it was due to an external framework I created (lets call it X) that I was importing via carthage. X had its own dependencies that it was importing via carthage as well. In order to link these frameworks it had a path in the build settings called Framework Search Paths set to the location of the frameworks. For some reason it was this flag in this framework that was causing the problem specified in the questions. I eventually imported X's dependencies with Git submodules so that I didn't have to set the Framework Search Paths flag. I the exported the framework and manually added it to my project I was submitting to the AppStore. Then it worked.

这篇关于签名无效 - 代码对象根本没有签名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆