iTunes Connect 和 Xcode 8:您的应用程序已更改为无效的二进制文件

Posted

技术标签:

【中文标题】iTunes Connect 和 Xcode 8:您的应用程序已更改为无效的二进制文件【英文标题】:iTunes Connect and Xcode 8: your app has changed to invalid binary 【发布时间】:2016-09-12 20:20:57 【问题描述】:

上周,使用 Xcode 7,我能够毫无问题地上传。但是今天我收到消息,您的应用程序已更改为无效的二进制文件。

我已经看到现在 Xcode 8 添加了一个新图标 20x20 2x 和 3x。我添加了一个,但仍然收到错误。

有没有人遇到过类似的问题?

【问题讨论】:

很多用户最近遇到类似的错误,bitcode 是否开启?关闭位码,然后尝试从应用程序加载器上传 感谢您的信息,做到了,但结果相同 -> 二进制文件无效 就我而言,我浪费了很多时间,因为没有检查电子邮件。当您收到此类错误时,Apple 会向您发送带有描述的电子邮件。我有下一个:“这个应用程序试图在没有使用说明的情况下访问隐私敏感数据。应用程序的 Info.plist 必须包含一个 NSCameraUsageDescription 键,其中包含一个字符串值,向用户解释应用程序如何使用这些数据。” 你说得对,阅读邮件很重要:-)。就我而言,它是:此应用程序尝试在没有使用说明的情况下访问隐私敏感数据。应用的 Info.plist 必须包含一个 NSPhotoLibraryUsageDescription 键和一个字符串值,向用户解释应用如何使用这些数据。添加密钥后,应用程序顺利通过。 不客气!如果您接受它作为答案,那就太好了:) 【参考方案1】:

检查您的电子邮件!

就我而言,我浪费了很多时间,因为我没有检查我的电子邮件。当您收到此类错误时,Apple 会向您发送一封包含其描述的电子邮件。

例如,这是 Apple 发给我的:

“此应用尝试访问隐私敏感数据而无需使用 描述。应用的 Info.plist 必须包含 NSCameraUsageDescription 键,带有一个解释给 用户应用程序如何使用这些数据。”

【讨论】:

【参考方案2】:

经过几天的努力解决同样的问题后,我终于成功提交了我的应用程序,但只是在获得 Apple 开发人员支持的电话之后。

有几点要记住:

    确保为任何权利设置 Info.plist 描述键。这对于 ios 应用程序是必需的。我的是一个 macOS 应用程序,所以这不适用。

    如果您不能 100% 确定它们是否有效,请转到 iTunes Connect,并重新创建所有配置文件和代码签名证书。您可以为 Developer 和 Distribution 执行此操作。

    在 Xcode 中,为您的应用程序和任何构建目标关闭自动代码签名(您可以在完成步骤 #2 和 #4 后尝试在 Xcode 中进行自动代码签名,但这对我不起作用)。

    转到 Xcode 首选项,然后单击您的开发团队,在出现的工作表中,您应该会在新创建的(在 iTunes Connect 中)代码签名证书和配置文件旁边看到一些“下载”按钮。全部点击。因此,您不会在第 5 步中感到困惑,请删除此应用的所有其他陈旧配置文件和代码签名身份。

    在每个目标的构建设置中,确保代码签名的发布构建设置和配置文件设置为上述新创建的代码签名证书和配置文件。

    增加您的内部版本号。

    深度清理您的项目(Option-Shift-Command-K)。

    归档构建您的应用程序。

    在打开的 Organizer 中,选择新归档的应用程序,然后验证(它总是经过验证,但我以后仍然会得到 Invalid Binary)。

    导出构建并选择“Save for Mac App Store Deployment”或类似选项。

    出现提示时,使用您之前使用的相同配置文件并保存。

    在 Application Loader 中打开 .pkg,您可以从 Xcode > Open Developer Tool > Application Loader 菜单启动它。

我没有收到任何关于无效二进制问题的电子邮件。相反,我很幸运能够使用 iTunes Connect 设置我的 iPad,因此,就像时钟工作一样,我在上传应用程序的几分钟内收到通知:“你的应用程序......已更改为无效二进制文件。”

如果您没有收到这些无效二进制通知之一,这是一个好兆头。又过了 10-15 分钟,我检查了 iTunes Connect 门户,我终于可以添加上传的构建并提交审核。

【讨论】:

更新:直到今天,我们的应用已经发布了几个更新,没有问题。由于没有权利、代码签名或配置文件更改,上传总是给出“无效的二进制文件”。有些人认为这可能是 Xcode 8.2.1 的问题。我将删除并重新安装 Xcode。其他人通过在安装新版本之前删除 Xcode 取得了一些成功。

以上是关于iTunes Connect 和 Xcode 8:您的应用程序已更改为无效的二进制文件的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 8 打包上线 iTunes Connect 找不到构建版本

使用 xcode 8 构建版本 iTunes Connect 获取不到应用程序的状态

从 Xcode 管理器上传构建到 iTunes Connect 时出错

从 Xcode 7 和 Application Loader 上传到 iTunes Connect 失败

iOS-Xcode上传后iTunes Connect构建版本不显示

iTunes Connect 显示“准备上传”。尝试在 Xcode 中验证时,它说应用程序应该准备好在 iTunes Connect 中上传