【问题标题】:Invalid Signature (Invalid Binary) on iTunes ConnectiTunes Connect 上的无效签名(无效二进制)
【发布时间】:2014-03-18 03:58:51
【问题描述】:

我知道这是一个重复的问题,但在所有其他问题上我都找不到解决方案,所以我重新尝试发布更多详细信息的问题。

我在xcode5 上存档我的应​​用程序iOS7Release Scheme 并更正Provisioning Distribution

那是屏幕:

这是Project

这是Target

我尝试做很多不同的资产,我确信我的Building Archive 是在ReleaseiTunesConnect 的答案每次都是一样的:

尊敬的开发者,

我们发现您最近交付的一个或多个问题 “我的应用程序”。要处理您的交货,以下问题必须 更正:

无效签名 - 确保您已使用 分发证书,而不是临时证书或开发 证书。验证 Xcode 中的代码签名设置是 在目标级别正确(覆盖项目中的任何值 等级)。此外,请确保您上传的捆绑包已构建 在 Xcode 中使用 Release 目标,而不是 Simulator 目标。如果你是 确定您的代码签名设置正确,请在 Xcode,删除Finder中的“build”目录,然后重建你的 发布目标。

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

问候,

App Store 团队

还有Invalid Binary

我疯了,想知道如何解决这个问题,任何人有想法这样做吗?

谢谢。

****测试响应****

Athority 屏幕 是正确的

【问题讨论】:

  • 你有没有试过他们所说的一切,如果你有它会解决问题。我会假设你错过了一些东西或误解了他们在说什么。此外,它们的图像毫无意义,因为您已经制作了它,因此我们实际上无法看到正在使用的配置文件的类型。
  • 我添加了新屏幕,我说我尝试了很多不同的设置,而不是全部;)
  • 不要编辑问题以显示解决方案,添加解决方案作为答案,目前我不知道你在问什么
  • 同意,请不要编辑问题,而是回答您自己的问题。
  • 看看这个answer

标签: ios xcode app-store-connect code-signing


【解决方案1】:

现在它必须包含以下架构。

armv7 armv7s arm64 i386 x86_64

试试这个。

【讨论】:

    【解决方案2】:

    在 Apple 开发者支持中,我发现了另外两个导致 Invalid Signature 二进制拒绝原因的常见原因,

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

    2. 将未压缩的 Xcode 项目复制到非 HFS+ 格式的硬盘驱动器或从非 HFS+ 格式化的硬盘驱动器中生成的 Apple 双文件(“双文件”)。要检查这是否导致您被拒绝:

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

    B.然后检查命令行输出:List of Signature Verification Failure Root Causes。双重文件的诊断信息如下:  

    resource missing: my.app/._.*
    

    C.来自文档:

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

            dot_clean /path/to/My_Xcode_Project
    

    (如果终端找不到 dot_clean 实用程序,请通过 Xcode > Preferences > Downloads 下载可选的命令行工具)

    D.在您的 Xcode 项目上运行 dot_clean 后,创建一个新的应用存档(通过 Xcode > Product > Archive),重新尝试提交。

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

    【讨论】:

    • 谢谢!对于 (1),可能值得一提的是,您可以通过在 plist 文件中显式设置 CFBundleDisplayName 来在应用程序的显示名称中包含特殊字符:stackoverflow.com/a/8115312/188926
    【解决方案3】:

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

    1. 首先选择发布配置的配置文件。 (对于Any SDK) 配置文件必须与应用的 Bundle ID 匹配(您可以在“常规”标签中看到)。
    2. 在代码签名身份中,点击Any iOS SDK 的子菜单并确保选择Automatic。如果您在下方看不到。
    3. 全部清除存档

    选择 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
    

    【讨论】:

    • 我做了所有事情,但继续出现同样的错误(我确定配置文件点可以更正 appId)cms+k 清理全部删除所有存档,但仍然继续说 Invalid Binary T_T
    • 感谢您的更新,添加结果屏幕,我认为是正确的,但有相同的响应... Invalid Binary T_T
    • 好的,这就是 Embedded.mobileprovisioning 的输出。现在从 codesign 命令的输出中,验证标识符是否匹配,并使用移动配置文件的名称查找“Authority=” - 是您使用的那个吗?
    • 是的...添加屏幕
    猜你喜欢
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    相关资源
    最近更新 更多