您上传的二进制文件无效。签名无效,或者未使用Apple提交的证书签名

时间:2010-02-15 13:41:49

标签: iphone xcode itunes

您上传的二进制文件无效。签名无效,或者未使用Apple提交的证书签名

收到此错误消息.. 从2天开始.. 尝试了所有谷歌搜索.. 它还在那里

6 个答案:

答案 0 :(得分:12)

经过两天的解决这个问题,我的解决方案是确保没有两个文件只有大写字母不同。因此,应用程序内同一目录中的Foo.png和foo.png会导致此错误。

以下是我在这两天内从不同网站收集的内容:

  • 检查构建日志“ProcessingProductPackaging”和“CodeSign”中的决赛步骤
  • 确保您不会意外包含任何.svn目录或类似的
  • 确保您在发布模式的项目设置中拥有正确的分发配置文件,并且不会被目标设置覆盖
  • 在您的pbxproj文件中
  • ,检查发布模式的PROVISIONING_PROFILE和CODE_SIGN_IDENTITY行,或删除它们并在项目设置中再次设置正确的配置文件
  • 使用Finder的压缩而不是终端的zip命令
  • 检查codesign -vvvv MyApp.app
  • 的输出
  • 检查codesign -dvvvv MyApp.app
  • 的输出
  • 检查代码的输出--verify -vvvv -R ='anchor apple generic和certificate 1 [field.1.2.840.113635.100.6.2.1]是否存在且证书leaf [field.1.2.840.113635.100.6.1.4]存在'MyApp.app
  • 如果使用Safari上传无效,请尝试使用Firefox
  • 图标必须为57x57
  • 使用应用程序上传器获取更多信息性错误消息
  • 您上传的zip路径中的任何位置都不得有空格或特殊字符
  • 检查您的钥匙串:您是否有与私钥相关联的分发证书?
  • 确保在构建
  • 时将Active SDK设置为设备而不是模拟器
  • 打开带有显示内容的.app文件,检查它是否包含一个带有您的分发配置文件的UUID的embedded.mobileprovision文件,以及一个带有CodeResources的文件夹_CodeSignature
  • 确保捆绑标识符与AppID匹配。对于AppID XYZ.com.mycompany。*有效的包标识符是com.mycompany.myappname
  • 构建在Mac扩展文件系统上,而不是fat32
  • 尝试从XCode,空缓存(XCode菜单 - >空缓存)中删除配置文件,重新启动XCode,再次添加配置文件

答案 1 :(得分:5)

如果您已按照http://developer.apple.com/iphone/manage/distribution/index.action中的说明操作,那么我可以提出以下可能导致此错误的事项:

  • 用于签名的证书/密钥/配置文件不正确
  • 证书已过期
  • 拉链已破损(如果你没有按照说明中的说法制作拉链,它会包含一些符号链接会被破坏)
  • 您的应用包中有entitlements.plist文件

答案 2 :(得分:2)

升级到Xcode 4之后,我的Distribution版本与“Scheme”配置中的Release版本混淆了。我能够通过以下方式解决问题:

  1. 在Xcode 4中,转到产品>管理方案......
  2. 选择目标/方案,按编辑按钮
  3. 选择存档操作
  4. 将版本配置从发布更改为分发
  5. 上传到iTunes Connect后,Apple收到Apple的“无效二进制”和“无效签名”消息。检查并仔细检查我的配置,证书和其他构建设置,并且可能无法找到问题。猜猜我的存档方案是为了构建发布而不是发布而设置的。非常蹩脚,非常令人沮丧!

答案 3 :(得分:1)

我通过在我的权利plist中添加两个新密钥来修复此问题 - application-identifier和keychain-access-groups:

<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>T9YRD11G97.com.duncancampbell.fontagious</string>
    <key>get-task-allow</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>T9YRD11G97.com.duncancampbell.fontagious</string>
    </array>
</dict>
</plist>

我在配置文件中从AppID获得了“T9YRD11G97”,在iTunesConnect中从BundleID获得了“com.duncancampbell.fontagious”。

希望这有帮助。

答案 4 :(得分:0)

这部分过程非常令人沮丧。对不起,你已经花了两天时间,但听起来你已经很近了。

要继续Lauri的回复,您是否验证了构建分发应用程序的说明中“验证成功分发构建”部分中的信息?

具体检查您是否在构建中包含了正确的“embedded.mobileprovision”文件,并验证应用程序是否使用正确的证书进行了签名?

答案 5 :(得分:0)

对我而言,我的项目名称中的空格导致无效的签名错误。当我检查构建日志时,我查看了涉及分发证书的行,我看到文件路径中有一个空格。删除项目名称中的空格会修复它,希望这可以为某些人节省很多麻烦。