错误 ITMS-9000: "冗余的二进制上传。已经存在一个版本为'1.0'的二进制上传,适用于列车'1.0'"

211
我正在尝试通过Xcode 5.1.1将我的构建上传到iTunes Connect,但它持续显示正在加载并且应用程序未能上传。因此,我尝试使用Application Loader进行上传,但出现以下错误: “ERROR ITMS-9000:“冗余二进制上传。已经存在版本号为'1.0'的二进制上传文件,供列车'1.0'使用。” 在iTunes上,应用程序状态为等待上传。有一次上传成功了,但状态没有反映,不允许再次上传。 另外,我刚刚检查了网站也发生了变化。不知道出了什么问题。 编辑:苹果新网站上没有提交审核按钮。但现在我可以看到那个按钮了。这解决了我的问题。我还建议使用Application Loader上传构建,因为比组织者更快。

8
苹果现在太疯狂了。Ituneconnect网站也改变了。我花了一个小时在这个网站上寻找更新我的应用程序的新版本。 - Sovannarith
@chhi,你能上传构建到iTunes吗? - Dhara
2
我也遇到了同样的问题。在发现问题并修复后,我不得不拒绝我的二进制文件,并尝试上传替换的二进制文件。我已经在苹果漏洞报告器中记录了它。(#18257715)。请前往报告该问题,以便他们能够优先处理。 - Brennan
10个回答

376
若每次上传到iTunesConnect的构建版本号递增,则可以将多个二进制文件上传到App Store Connect,只要每个上传的二进制文件的构建编号是唯一的(且更高)(选择目标,然后Xcode ->常规->构建,参见下图)。例如,在下面的图像中,上传的构建具有版本3.1.4(旧图像中为3.75),构建编号为1。因此,在上传此图像后,将构建增加至至少2或更高。然后,此二进制文件也可以上传到App Store Connect,因为它是根据构建编号较新的版本。 版本表示您向用户发布的应用程序的发布版本构建编号表示上传到商店的二进制文件的最终构建,即经过多次错误修复后的构建。
在Xcode 9之后,如果商店中已经有一个相同版本号的构建,则无法上传新的构建。因此,请检查您的构建编号并在不确定的情况下增加它。
编辑:使用1、2、3、4等数字作为构建号更为准确,但版本号必须递增,例如1.0->1.1->1.2等。如果提交了与先前相同版本号的二进制文件,则构建号必须高于先前提交的版本号,否则会出现错误。因此,如果提交了一个具有版本3.75的新二进制文件,并且已经提交了构建1,则下一个构建应该是2或更高,但版本仍然可以保持3.75。
建议采用新的方法,将构建号序列化: enter image description here 下面是与上面的图片相匹配的旧图像: Showing where to set the Build Version in XCode 当新二进制文件上传并处理后(处理时间约为5-20分钟,如果没有显示,请重新上传并等待),您可以选择新二进制文件并提交审核。在下面的图片中,您可以看到当前应用程序版本的“构建”部分中列出了旧版本和新版本的二进制文件(单击加号)。然后选择新二进制文件 -> 保存 -> 提交审核。(有时会在提交时出现错误,然后请稍候几分钟或上传新二进制文件)。

Showing list of binaries in iTunesConnect

如果您倾向于使用Xcode脚本自动执行此操作,以下是制作自动脚本以更新构建号的描述 更好的增加构建号的方法?


1
谢谢,我通过将我的构建号更改为使用格式YYYYMMDDhhmm来解决了这个错误,每次我推送新的构建到应用商店时,我都可以更新当前日期和时间。不过,我希望能够自动化构建号更改。 - Brennan
@Brennan 我添加了一个链接,其中包含自动增加构建号的说明。 - Sverrisson
@HannesSverrisson,对于我们这些已经在版本号中使用了三个部分的人,你有什么建议? - Simon
@Simon,抱歉我不知道。所以,我猜你唯一的方法就是重新审查你的编号策略。你可以将最后一部分的两个数字设为01,然后在十六进制中构建0A,然后最后一部分就是010A等等。 - Sverrisson
@dang 你无法从苹果服务器中删除第一个二进制文件,它仍然存在。您可以通过重新添加先前的二进制文件进行检查。 - Sverrisson
显示剩余7条评论

32

我不知道为什么人们在版本号中使用了浮点数

在我看来,标准的做法是在版本号中放置一个整数,并使用浮点数带点的字符串表示版本号。

即:

     Version: 1.0.0
     Build: 2

输入图像描述


5
我完全同意。所有那些在两个字段中都使用相同数字的人都没有抓住重点。版本号是您希望发布的公共版本号。构建号是内部的构建号码!每次构建应用程序进行测试时,它就会增加一次,因此您可以参考它来跟踪漏洞,这个号码会随着代码的改变而改变。这就是为什么TestFlight以其所列方式列出您的构建的原因。例如:版本1.0.0(2)。构建号的结构方式取决于您的公司。有时,测试阶段需要分别进行多个级别,因此使用浮点数也可以。 - Simon Tillson
我非常同意你的观点。如果你创建一个全新的项目,你会发现这是Xcode的默认策略。 - DawnSong

15

您只需要更改Build和版本号即可。

现有的商店版本为:1.1

上传新版本为:1.2(如果您使用5.1.1或更早的版本上传失败),则需要重新上传,因此新版本将是1.3。

现在登录iTunes Connect账户,在“Apps”下选择您的应用程序,进入“Build”部分,通过点击删除符号(-)来删除旧版,并再次通过点击添加符号(+)来选择最新的版本,然后点击“Done”,进行保存并提交审核。另外请查看附带的截图。 enter image description here


4
我想上传1.01版本而不是1.02。现在该怎么办? - Sam
我也遇到了同样的问题。虽然我有两个构建版本,但没有提交审核按钮。你在点击你的1.4构建版本后是否真的看到了提交审核按钮? - neelabh
@neelabh 是的,看起来正在等待审核。上传1.4版本后。 - Alpesh Patoliya
@user28,如果要更新版本,您需要更改版本号。将其设置为1.02即可。 - Alpesh Patoliya

13

在上传新版本之前,无法从iTunes Connect中删除旧版构建。 iTunes Connect界面对此操作并不高级。

但实际上,您不需要删除它(如果Apple喜欢,请让他们保留)。 您需要更改您的Build number(而不是Version number),然后再次上传。

例如,如果您有Version number 1.0和Build number 1.0,则将Build number更改为1.0.1,将Version number保持为1.0,然后上传即可- iTuned Connect将接受更新的构建。 其余部分都很明显。祝你好运!


1
问题在于一些库和框架使用构建号作为版本号。 - Genki

10

我注意到Apple需要很长时间才能准备好可提交的构建版本。在我上传我的构建版本之前,我尝试了几次才成功选择构建版本。由于同一构建版本多次存在于服务器上,我的构建版本因此无效,并收到“冗余二进制文件上传”邮件。

在我的情况下,我在Xcode中上传新的构建版本(带有新的构建编号)后,大约15分钟后就可以选择新的二进制文件。


当你收到“冗余二进制上传”时,你会怎么做?因为我也从苹果收到了类似的邮件,我的应用程序显示“等待审核”。 - Ekra
在我的情况下,我认为这就是原因,即使我已经等待了50分钟,仍然看不到我所有的上传内容在iTunes Connect的“构建”选项卡中...希望在接下来的几个小时内,我可以在版本选项卡上启用我的构建,以便我可以提交审核。 - d1jhoni1b
在我的情况下,这需要超过45分钟的时间,但这似乎是每次从XCode上传到iTunes Connect之间存在巨大延迟的主要原因。 - d1jhoni1b

10

我试图将构建号增加到3个小数点(例如1.5.1),但仍然出现了重复二进制错误。在我再添加一个小数点后(例如1.5.1.0),它就可以工作了!

我的设置屏幕截图如下:

http://i.stack.imgur.com/daKBA.png


1
еҜ№жҲ‘жқҘиҜҙпјҢеҸӘжңүдёүзә§зүҲжң¬еҸ·жңүж•ҲгҖӮе”ҜдёҖжіЁж„ҸеҲ°зҡ„жҳҜ1.1.0иў«и§Ҷдёә1.1гҖӮеӣ жӯӨпјҢжҲ‘дёҚеҫ—дёҚе°қиҜ•дҪҝз”Ё1.1.1иҖҢдёҚжҳҜ1.1.0гҖӮ - Adil Malik

9

我需要提醒你,几乎所有的答案(包括被接受的答案)都提倡非传统的编译版本编号方式。

这并不是什么关键问题,但是遵循传统的方式总是更好,所以我鼓励你查看这个答案,了解如何给你的编译版本进行编号。

是的,回答原问题,你只需要适当地增加你的编译版本号码。


5
我刚刚遇到了同样的问题。不幸的是,我创建了应用程序的版本1.0.1,并上传了一个具有相同版本的二进制文件,被拒绝作为无效文件。之后我无法从系统中拒绝二进制文件,所以我首先需要找出拒绝的原因,然后在iTunes Connect和新上传的二进制文件中将应用程序版本更改为1.0.2,并进行代码修复。现在它正在等待审查。
前三次尝试这样做时,二进制文件几乎立即被拒绝。花费了我大约两个小时来找出拒绝原因,即从“有效架构”中删除“arm64”。希望这会对你有所帮助。

4

我首先在iTunes Connect中增加了版本号。这使我能够上传新版本的二进制文件,没有遇到任何问题。


4
我想上传我的应用程序版本2.4,但遇到了这个错误消息。这是该版本的第一次上传,iTunesConnect上绝对没有任何二进制文件存在。
我可以通过将构建版本从2.4更改为2.4.0轻松解决此问题。不需要增加版本号。我猜iTunes只期望构建版本的三部分版本号。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接