Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 应用提交:无效二进制-无效签名_Ios_Xcode_App Store_Updates_Code Signing - Fatal编程技术网

Ios 应用提交:无效二进制-无效签名

Ios 应用提交:无效二进制-无效签名,ios,xcode,app-store,updates,code-signing,Ios,Xcode,App Store,Updates,Code Signing,我正在尝试向iOS应用商店提交更新。我正在从Buzztouch应用程序转变为Sprite Kit应用程序。我能够归档Xcode项目并提交它。该应用程序进入Upload Received状态,但大约一分钟后,它变为无效二进制,我收到一封电子邮件,上面说: 签名无效-请确保您已使用分发证书而不是临时证书或开发证书对应用程序进行签名。验证Xcode中的代码签名设置在目标级别(覆盖项目级别的任何值)是否正确。此外,请确保您正在上载的捆绑包是使用Xcode中的发布目标而不是模拟器目标构建的。如果您确定您的

我正在尝试向iOS应用商店提交更新。我正在从Buzztouch应用程序转变为Sprite Kit应用程序。我能够归档Xcode项目并提交它。该应用程序进入Upload Received状态,但大约一分钟后,它变为无效二进制,我收到一封电子邮件,上面说:

签名无效-请确保您已使用分发证书而不是临时证书或开发证书对应用程序进行签名。验证Xcode中的代码签名设置在目标级别(覆盖项目级别的任何值)是否正确。此外,请确保您正在上载的捆绑包是使用Xcode中的发布目标而不是模拟器目标构建的。如果您确定您的代码签名设置是正确的,请在Xcode中选择“Clean All”,删除Finder中的“build”目录,然后重新生成您的发布目标

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

我已经清理了构建目录,重建了我的发布目标,并多次创建了新的配置文件。所有代码签名标识都设置为iOS开发者。代码签名和配置文件一直让我有点困惑,我可能会犯一些明显的错误

我已经尝试提交了50多次!我觉得这很令人沮丧,因为我给苹果发了电子邮件,他们给我回了电话,但这只是一个指向开发中心的链接,上面有代码签名信息。我也花了很多时间在互联网上寻找解决方案,但目前还没有一个好的解决方案可以解决这个问题

我能想到的唯一一件事要么是因为我正在从一个应用程序更改,要么是因为它是精灵工具包

以下是我的代码签名截图:

  • 在“代码签名身份”下,确保您已为“发布”方案选择了分发证书

  • 在“资源调配配置文件”下,确保选择分发资源调配配置文件(不是临时配置文件)

  • 存档和分发,确保提交时选择了相同的证书(输入iTunesConnect信息后)


  • 您的问题与签名相关失败,因为您的应用程序未使用最近的分发证书进行签名。检查以下步骤:

    1) 检查您的
    bundle标识符
    ,如下图所示列出供应配置文件。因为它也会导致这个问题

    2) 在构建应用程序时,您可能未使用
    正确的证书。只需在配置门户中删除您的证书,创建新证书并在Xcode中更新它们

    3) 从图片中,您没有选择正确的资源调配配置文件。转到管理器/配置文件/刷新,并允许Xcode获取最新的配置文件。请参见屏幕截图以了解如何执行此操作

    选择正确的配置文件。

    选择正确的代码符号。

    4) 清理了你的项目

    5) 只需清洁所有目标
    。您甚至可以转到
    /Users/%USERNAME%/Library/Developer/Xcode/DerivedData
    并删除其中的所有目录


    完成上述所有操作后

    菜单栏 尝试产品->归档

    然后从组织机构尝试辞职和提交

    窗口->组织者 选择archive,然后按distribute(但我相信您会知道它是如何工作的)

    显然,如果您不能做到这一点,那么很可能您的签名证书确实出了问题,更具体地说,您的包标识符很可能是罪魁祸首


    另一种选择是,您的应用程序使用尚未在developer.apple.com/ios上为应用程序id设置的服务,如游戏中心、推送通知等。祝您好运查看您的发布图像。它们是否相互冲突,就像两张图片同名一样。因为我在10分钟内解决了类似的问题。

    这就是我在Mac App Store遇到类似问题时所做的:

  • 重新生成应用程序的分发和开发证书(从苹果开发者证书网站)
  • 下载这两个证书并将它们拖到Xcode的图标上(不确定是否有任何影响,但在多次提交失败后,我相当迷信)
  • 从Xcode重新刷新证书和标识。
  • 打开Xcode的首选项
  • 转到“帐户”选项卡
  • 单击我的帐户
  • 单击刷新按钮
  • 生成归档文件
  • 提交应用程序,并在向导提示的中途某处单击“刷新签名身份”
  • 作为参考,这里是我与签名相关的内置设置。上一次我提交应用程序时,它就工作了(过去两天一直处于“等待审查”状态,所以我猜它通过了所有的自动测试)


    在Apple开发者支持中,
    无效签名的另外两个常见原因是二进制拒绝原因

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

  • Apple双文件(“双文件”),是将未压缩的Xcode项目复制到非HFS+格式硬盘驱动器或从该硬盘驱动器复制Xcode项目而产生的。要检查这是否导致拒绝,请执行以下操作:

  • A.在此处运行应用程序诊断:

    B.然后使用以下消息检查命令行输出:。双文件被诊断为具有以下消息
    resource missing: my.app/._.*
    
            dot_clean /path/to/My_Xcode_Project