iTunes Connect上的签名无效(无效二进制)

时间:2014-02-18 11:58:49

标签: ios xcode itunesconnect code-signing

我知道这是一个重复的问题,但在所有其他问题上我找不到解决方案,所以我重新发布问题并提供更多细节。

我使用xcode5iOS7上的应用归档Release Scheme,并更正Provisioning Distribution

这就是屏幕:

这是Project

enter image description here

这是Target

enter image description here enter image description here

我尝试做很多不同的资产,我确定我的Building Archive已经Release,但iTunesConnect的答案每次都是相同的:

  

亲爱的开发人员,

     

我们发现您最近交付的一个或多个问题   “MyApp的”。要处理您的交付,必须满足以下问题   纠正:

     

签名无效 - 请确保您已使用a签署了您的申请   分发证书,而不是临时证书或开发   证书。验证Xcode中的代码签名设置是否正确   在目标级别更正(覆盖项目中的任何值)   水平)。此外,请确保您正在上传的捆绑包已构建完毕   在Xcode中使用Release目标,而不是模拟器目标。如果你是   某些代码签名设置是正确的,请选择“全部清除”   Xcode,删除Finder中的“build”目录,然后重建你的   释放目标。

     

更正这些问题后,请转到“版本详细信息”页面   然后单击“准备上传二进制文件”。继续提交   进程直到应用程序状态为“等待上传”。那你可以   提供纠正的二进制文件。

     

此致

     

App Store团队

Invalid Binary

我变得疯狂地理解如何解决这个问题,任何机构都有想法这样做?

感谢。

****测试回复****

enter image description here

Athority Screen  是正确的

enter image description here

3 个答案:

答案 0 :(得分:8)

在Xcode中,在目标级别执行以下操作:

  1. 首先选择Release配置的配置文件。 (对于Any SDK) 配置文件必须与应用的Bundle ID匹配(如“常规”标签中所示)。
  2. 在代码签名标识中,点按Any iOS SDK的子菜单,并确保选择Automatic。如果你看不到下面的内容。
  3. 全部清除存档
  4. 选择CodeSign标识:

    在第2步中,如果您无法选择Automatic,则表示AppID与应用的Bundle ID之间可能没有匹配项。 AppID由您选择的配置文件指向。

    如果是这种情况,请登录开发人员门户网站,确保您使用的配置文件指向正确的AppID。

    要在提交之前验证.ipa或.app,请尝试使用这些命令。 然后查看打印输出,看看是否所有看起来都正确。还要验证到期日期。

    $cd <where the app is>
    $unzip *.ipa
    $cd Payload
    $codesign -d --entitlement - *.app
    $codesign --verify -dvvv *.app
    $security cms -D -i *.app/embedded.mobileprovision
    

答案 1 :(得分:2)

在Apple开发者支持中,我看到了Invalid Signature二元拒绝原因的另外两个常见原因,

  1. 包含特殊字符的可执行文件(即非数字和非字母)。要解决此问题,请将Xcode目标的产品名称构建设置从“$ {TARGET_NAME}”更改为仅包含字母/数字字符的字符串。让我知道这是否是问题的原因(以及有问题的字符),因为我提交错误报告来修复我在这里找到的每个实例。

  2. Apple Double Files(“双文件”),它是将Xcode项目复制到非HFS +格式化硬盘驱动器上或从非HFS +格式化硬盘驱动器复制的。检查这是否导致您的拒绝:

  3. 一个。在此处运行应用诊断:How do I check if my application's signature has been corrupted?

    B中。然后使用以下命令检查命令行输出:List of Signature Verification Failure Root Causes。双文件被诊断为以下消息:

    resource missing: my.app/._.*
    

    ℃。来自文档:

      

    前缀为“._”的文件被认为是AppleDouble文件   将未压缩的Xcode项目文件夹复制到一个   非HFS +格式化磁盘。必须使用删除AppleDouble文件   'dot_clean'命令。 Xcode项目文件夹是参数   dot_clean如下图所示。注意:您可以拖动Xcode项目   文件夹从Finder进入终端窗口以自动填充它   进入命令的路径。

            dot_clean /path/to/My_Xcode_Project
    

    (如果终端找不到dot_clean实用程序,请通过Xcode&gt;首选项&gt;下载下载可选的命令行工具)

    d。在Xcode项目上运行dot_clean后,创建一个新的应用档案(通过Xcode&gt; Product&gt; Archive),重新提交提交。

    要防止双重文件,请务必使用Finder将Xcode项目文件夹压缩为.zip,然后再将其传输到非HFS +格式的硬盘驱动器。

答案 2 :(得分:2)

现在必须包括以下架构。

armv7 armv7s arm64 i386 x86_64

试试这个。