【问题标题】:XCode fails to validate due to invalid version in info plist由于 info plist 中的版本无效,XCode 无法验证
【发布时间】:2018-08-10 18:57:47
【问题描述】:

这快把我逼疯了。我已经完成了应用商店中应用的新版本。当前出售的版本是 1.68。我希望我的新版本是 1.8。我在我的应用程序的所有正确位置都有新版本(我已经检查了几十次)。但是在我创建存档后,它无法验证,因为我的 info.plist CFBundleShortVersionString [1.8] 中的版本不高于先前批准的版本 [1.68]。我不是数学专业的,如果我错了,请纠正我,但我很确定 1.8 实际上大于 1.68。我在 iTunes Connect 上为新的 1.8 版本创建了一条记录,它正坐在那里等我上传应用程序。我已经尝试了很多其他版本和内部版本号组合,具有讽刺意味的是,如果我将它设置为 1.69,它验证就好了。我也尝试过清理、删除派生数据、完全重新启动一切等。这不是我第一次更新这个应用程序。我以前制作新版本从来没有遇到过任何问题。有什么想法吗?

【问题讨论】:

  • 8 小于 68
  • 我想我会分别查看这些数字。我的意思不是版本 1,8 ,而是版本 1 subversion 8 什么的。所以这里 68 大于 8,所以你得到了错误。这是我的猜测。我想 1.80 不会给你错误

标签: ios xcode version archive


【解决方案1】:

查看CFBundleShortVersionString上的文档:

发布版本号是一个由三部分组成的字符串 句点分隔的整数。第一个整数代表主要修订 到应用程序,例如实现新功能或主要功能的修订 变化。第二个整数表示实现较少的修订 突出的特点。第三个整数代表维护版本 修订。

为了确定哪个版本更高,现在将这些整数插槽中的每一个与其对应的版本进行比较。在您的情况下,第一个整数相等(“1”和“1”),对于您的第二个整数,“68”被(正确地)识别为大于“8”。

由于 Apple 忽略了前导零,我认为在保持“1.8”感觉的同时,您可以得到的最接近的值将一直到“1.80”。

【讨论】:

  • 好的,这是有道理的。它解释了为什么 1.68 会验证而 1.7 不会。我错误地将第二个数字视为小数,显然不是。它没有解释为什么 2.0 在我今天早些时候尝试时无法验证。为了避免未来的版本变得丑陋,数量更大,并且由于应用程序发生了一些重大更改,我决定升级到 2.0.0,并且验证很好。
【解决方案2】:

您不应该使用这样的版本代码 对于次要版本,它应该像 1.6.8 & 对于主要版本,它应该像 1.8.0 &如果您要上传可在试飞中使用的构建,请说 1.8.0 & 它可能有问题,你想再次上传 1.8.0 版本,那么你应该更新版本号

【讨论】:

    猜你喜欢
    • 2022-10-20
    • 2022-08-11
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 2021-01-06
    相关资源
    最近更新 更多