Info.plist中的CFBundleVersion上传错误

Ada*_*m H 108 upload objective-c plist cfbundleidentifier

"您上传的二进制文件无效.Info.plist文件中的密钥CFBundleVersion必须包含比以前上传版本更高的版本."

当我上传我的应用程序时,我收到此错误.

我在iTunes Connect上将更新版本设置为1.2,并且还将.plist文件更新为1.2.

我不明白为什么我会收到这个错误.任何帮助,将不胜感激.谢谢.

Ada*_*dam 210

Apple的上传服务器中至少有一个已知的错误,它们已经修复超过12个月.需要注意的事项:

  1. Apple删除版本号内的任何前导零; 即"整个字符串"不被视为数字,而是将点之间的位视为单独的数字.例如,"1.02"被Apple视为"1.2".因此,对于Apple来说,1.02大于1.1
  2. Apple有时会感到"困惑",似乎会将您上传的应用与您之前上传的不同应用的版本进行比较.它发生在很多人身上,我自己也见过几次
  3. Apple应该比较"CFBundleVersion"(即"Bundle版本"而不是"Bundle versions string,short"); 不要混淆.
  4. 通常,唯一可行的解​​决方案是撞击前面的数字(例如"2.4"中的"2" - 将其增加到"3")
  5. 您上传的版本号与iTunes中显示的版本号无关 - 您可以在此处放置任何内容,这就是您的用户将看到的内容
  6. ...除非,如果您还在应用程序中报告"实际"版本号,用户将看到CFBundleVersion(通常,取决于您如何编码),而不是iTunes版本(我认为 - 无法访问你的应用程序内)

  • 第4点是最终为我工作的.谢谢你的提示. (2认同)
  • CFBundleVersion 在 xcode 4.5 中被标记为“Build”,而不是“Version”!版本最终在 Info.plist 文件中标记为“CFBundleShortVersionString”。因此,您确实需要为 Build 提供比以前更高的值。 (2认同)

The*_*imp 29

更新内部版本号.版本号很重要,但构建号会产生重大影响.例如,我的应用程序的初始版本为:

version #: 1.0
build #:   1.0
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试上传下一个版本时,即

version #: 1.1
build #:   1.0
Run Code Online (Sandbox Code Playgroud)

它不接受上传.只需将构建#增加到1.1即可接受上载.


Pat*_*non 9

如果不重新归档应用程序,Xcode 4会认为您要重新上载相同的版本.即使您更改Bundle版本并重建,上传也将失败.请记住在"产品"菜单中执行" 存档 "!


Kyl*_*yes 7

这里的许多答案最终帮助了我,但直到我看到Apple正在比较的确切"版本"数字.

  1. 转到iTunes Connect - >管理您的应用程序
  2. 选择要检查以前版本的应用程序
  3. 单击标记为查看详细信息的蓝色按钮
  4. 单击标记为二进制详细信息的链接
  5. 找到Bundle Version的值

即使我认为我提交的版本号为1.0.1,Apple存储的实际数字是101.上面的一些评论让我相信我需要将我的版本更改为2.0(20)或1.5(15)或1.2(12如你所见,这些都小于101.更新我的版本号102(没有点)修复了问题.


Pie*_*oet 6

本文指出,在app-store中看到的版本号不一定与包版本号相同.当您在iTunes中查看应用程序的详细信息时,会出现名为"二进制详细信息"的链接.该页面显示了捆绑包版本.我正在处理的其中一个应用程序是1.0版,但它的捆绑版本是2.0.上载1.1版的捆绑包失败,但2.1确实有效.

所以,有一个应用程序版本和一个捆绑版本.此问题与捆绑软件版本有关.


Gav*_*vin 5

似乎混淆是由数字格式引起的.捆绑版本不是小数.它是一个版本(或许可能构建)所以1.11实际上是"一点十一".因此1.11大于1.2.在这种情况下我使用1.20成功了.